Cave: Руководство по началу работы

Back to Learn

Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

Компоненты определяют, что может делать сущность.

Сущность — это контейнер. Компоненты — это функции, которые присоединены к этому контейнеру.

image.png

В этом уроке вы познакомитесь с основными типами компонентов, которые встретите в начале работы. Пока нет необходимости запоминать все опции. Главная цель — понять шаблон:

> Когда сущности нужна функция, обычно добавляют компонент, который эту функцию обеспечивает.

Сущности строятся из компонентов

Новая сущность может быть очень простой.

Затем при добавлении компонентов она становится функциональнее:

  • Добавьте Transform Component, и сущность получит положение в 3D мире.
  • Добавьте Mesh Component, и она станет видимой.
  • Добавьте Rigid Body Component, и она сможет сталкиваться с объектами мира.
  • Добавьте Python Component, и она сможет выполнять игровой код.
  • Добавьте Logic Bricks Component, и она сможет выполнять визуальную логику.
  • Добавьте Audio Player Component, и она сможет воспроизводить звук.

Это обычный рабочий процесс в Cave: создание сущностей путем комбинирования компонентов.

Например:

Объект, который вы хотите Варианты компонентов
Факел Transform, Mesh, Light, Audio Player.
Дверь Transform, Mesh, Rigid Body, Logic Bricks или Python.
Игрок Transform, Character, Camera, Animation, Python.
Пик-ап здоровья Transform, Mesh, Rigid Body триггер, Logic Bricks или Python.

Вместо того чтобы искать специальный тип объекта для каждого случая, вы создаете объект, который вам нужен.


Основные компоненты

Некоторые компоненты настолько распространены, что вы будете видеть их постоянно.

Компонент Основное назначение
Transform Component Хранит позицию, вращение и масштаб.
Camera Component Определяет камеру.

Transform Component

Transform Component хранит позицию, вращение и масштаб.

image.png

Большинство 3D сущностей зависят от него, так как им нужно существовать в пространстве. Когда вы перемещаете, вращаете или масштабируете сущность в 3D-виде, вы изменяете ее трансформ.

Многие другие компоненты зависят от трансформа:

  • Свет нуждается в позиции.
  • Сетка нуждается в позиции.
  • Камера нуждается в позиции.
  • 3D-звуковой источник нуждается в позиции.

Camera Component

Camera Component определяет вид камеры.

image.png

Используется, когда сущность должна выполнять роль игровой камеры.

Камеры применяются для:

  • игр от первого лица.
  • игр от третьего лица.
  • видов сверху.
  • меню.
  • кат-сцен.
  • специальных видов.

В сцене есть камера по умолчанию, но геймплейные камеры обычно — это сущности с Camera Component. Это упрощает их перемещение, вложенность, анимацию, скриптование и переключение во время игры.


Графические компоненты

Графические компоненты контролируют то, что видит игрок.

Компонент Назначение
Mesh Component Видимые 3D объекты.
Light Component Локальные источники света.
Particle Component Визуальные эффекты из множества мелких частиц.
Animation Component Воспроизведение скелетной анимации.
Animation Socket Component Присоединение дочерних сущностей к анимированным костям.

Mesh Component

Mesh Component отображает сетку с помощью материала.

image.png

Используйте для:

  • предметов окружения.
  • стен.
  • персонажей.
  • дверей.
  • оружия.
  • элементов окружения.
  • всего видимого.

Обычно у компонента сетки есть ссылка на mesh-ассет и материал. Сетка задает форму, а материал — внешний вид поверхности.

Light Component

Light Component добавляет локальное освещение в сцену.

image.png

Используйте для:

  • ламп.
  • факелов.
  • магического света.
  • светящихся предметов.
  • прожекторов.

Солнечный свет и окружающее освещение влияют на всю сцену. Light Component добавляют свет в конкретные места.

Particle Component

Particle Component создает повторяющиеся визуальные элементы и эффекты.

image.png

Используйте частицы для:

  • дыма.
  • искр.
  • пыли.
  • огня.
  • ветра.
  • обломков.
  • магических эффектов.

Частицы удобны, потому что не нужно создавать каждый маленький элемент как отдельную сущность. Один Particle Component может создавать и управлять множеством мелких визуальных элементов.

Animation Component

Animation Component воспроизводит скелетную анимацию.

image.png

Работает с арматурами и анимационными ассетами, может управлять воспроизведением, смешиванием, слоями и финальной позой.

Используйте для:

  • анимированных персонажей.
  • анимированных существ.
  • скелетных предметов.
  • любых импортированных анимированных сеток, использующих кости.

Animation Socket Component

Animation Socket Component прикрепляет дочернюю сущность к конкретной кости анимированной родительской сущности.

image.png

Используйте для:

  • мечей.
  • оружия.
  • щитов.
  • шлемов.
  • рюкзаков.
  • предметов в руках.

Вместо ручного обновления положения предмета каждый кадр, сокет следует за выбранной костью.


Физические компоненты

Физические компоненты управляют столкновениями и физическим движением.

Компонент Назначение
Rigid Body Component Столкновения, физические объекты, триггеры.
Character Component Движение игрока и NPC.
Physics Constraint Component Соединение физических тел.

Rigid Body Component

Rigid Body Component придает сущности физическое поведение.

image.png

Используйте для:

  • статических столкновений.
  • динамических объектов.
  • физических предметов.
  • объектов-призраков и триггеров.

Например, стена может иметь статическое физическое тело, чтобы игрок не мог пройти сквозь нее. Подвижный ящик — динамическое, чтобы реагировать на силы.

Character Component

Character Component предназначен для персонажного движения.

image.png

Используйте для игроков или NPC, которым нужно:

  • ходить.
  • прыгать.
  • скользить по стенам.
  • преодолевать уклоны.
  • двигаться как персонаж, а не как свободный физический объект.

Часто это лучший старт для управляемого персонажа, чем обычное rigid body.

Physics Constraint Component

Physics Constraint Component соединяет rigid body между собой.

Полезен для более сложных физических конструкций, например:

  • петель.
  • соединений.
  • мостов.
  • систем в стиле ragdoll.
  • связанных физических объектов.

Сразу не понадобится, но полезно знать. Позже поможет с дверями на петлях, подвешенными объектами и механическими деталями.


Компоненты мира и игры

Некоторые компоненты помогают строить мир или представлять игру игроку.

Компонент Назначение
Terrain Component Открытые ландшафты и отредактированная поверхность.
Audio Player Component Звуки, музыка, амбиент и 3D аудио.
UI Element Component Текст, кнопки, панели, интерфейсы и меню.

Terrain Component

Terrain Component создает и редактирует ландшафт.

image.png

Используется для открытых уровней, пейзажей, холмов, долин, дорог и больших поверхностей земли.

У ландшафта есть собственные инструменты редактирования, о которых рассказано позже.

Audio Player Component

Audio Player Component воспроизводит звуки и музыку.

Подходит для:

  • музыки.
  • амбиентных звуков.
  • звуковых эффектов.
  • 3D позиционного звука.
  • звуков UI.

Аудио можно запускать также через скрипты, Logic Bricks, таймлайны, UI и анимационные колбеки.

UI Element Component

UI Element Component создает элементы интерфейса игры.

image.png

Используется для:

  • текста.
  • кнопок.
  • панелей.
  • меню.
  • индикаторов здоровья.
  • элементов HUD.

UI в Cave тоже строится из сущностей, поэтому он может использовать иерархию, компоненты, свойства и логику, как и остальные части игры.


Компоненты логики

Компоненты логики управляют поведением сущностей.

Компонент Назначение
Python Component Многократное поведение на Python для геймплея.
Python Code Component Небольшой встроенный Python код.
Logic Bricks Component Визуальное скриптование через графы.
State Machine Component Поведение, основанное на состояниях.

Python Component

Python Component прикрепляет Python скрипт к сущности.

image.png

Используйте для переиспользуемой логики, например:

  • поведение дверей.
  • поведение врагов.
  • взаимодействия.
  • логика интерфейса.
  • игровые правила.
  • кастомные системы.

Python Code Component

Python Code Component хранит небольшие встроенные фрагменты Python прямо в компоненте.

image.png

Используйте для быстрых тестов, локального небольшого поведения или прототипов.

Для большой и переиспользуемой логики лучше использовать Python Script пакет вместе с Python Component.

Logic Bricks Component

Logic Bricks Component прикрепляет Logic Bricks ассет к сущности.

image.png

Logic Bricks — это визуальная система скриптинга в Cave. Она позволяет создавать поведение, соединяя узлы, вместо написания кода напрямую.

image.png

Используйте для триггеров, простых взаимодействий, поведения UI и игровых событий, которые удобнее понять визуально.

State Machine Component

State Machine Component прикрепляет иерархическую машину состояний к сущности.

image.png

Машины состояний полезны для поведения, которое имеет чёткие состояния, такие как:

  • Ожидание.
  • Ходьба.
  • Преследование.
  • Атака.
  • Бегство.
  • Смерть.

Они особенно полезны для врагов, NPC и структурированной игровой логики.


Компоненты транспортных средств

В Cave также есть компоненты, связанные с транспортными средствами.

Вы можете увидеть их, если сгенерируете стартовый контент для транспортных средств.

Компонент Назначение
Vehicle Component Превращает физический объект в транспортное средство.
Wheel Component Определяет поведение колеса для транспортного средства.

Vehicle Component работает с rigid body и колесными компонентами.

Wheel Component включает поведение колеса, такое как подвеска, управление рулём, радиус колеса и определение, является ли колесо передним.

Практические рецепты для компонентов

Вот несколько простых способов понять состав компонентов:

Цель Рецепт компонентов
Видимый статический объект Transform + Mesh.
Прочная стена Transform + Mesh + Rigid Body.
Двигающийся игрок Transform + Character + Python + Camera.
Факел с атмосферой Transform + Mesh + Light + Audio Player.
Кнопка в меню UI Element + Python или Logic Bricks.
Поведение врага Character + Animation + State Machine или Python.

Это не строгие правила. Это отправные точки.

По мере создания большего количества объектов вы будете быстрее выбирать правильные компоненты для задачи.

Другие компоненты

В Cave есть более специализированные компоненты, чем те, что рассматриваются в этом уроке.

Это нормально.

Вам не нужно знать все компоненты прежде, чем сделать свою первую сцену. Пока сосредоточьтесь на полезном паттерне: сущность становится полезной, когда к ней добавляют нужные компоненты.