Keep your place in this quest

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

Entity Templates — это система переиспользуемых сущностей в Cave.

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

image.png

Если вы знакомы с другими движками, вы можете представить Entity Templates как подобие системы prefab в Cave. Если вы новичок в игровых движках, можете думать о них как о рецептах для переиспользуемых объектов.

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

Что такое Entity Templates?

Entity Template — это ассет, который хранит структуру сущности.

Он может включать:

  • Корневую сущность (каждый шаблон ДОЛЖЕН иметь ровно одну корневую сущность).
  • Дочерние сущности.
  • Компоненты.
  • Настройки компонентов.
  • Ссылки на ассеты.
  • Свойства.
  • Теги.

Когда вы размещаете шаблон в сцене, Cave создаёт экземпляр этого шаблона.

Экземпляр использует шаблонный ассет как основу, что позволяет сохранить внутреннюю структуру при существовании объекта в конкретной сцене.

Почему Entity Templates важны

Многие игровые объекты состоят не из одной модели.

Например, предмет для подбора может включать:

  • Видимую модель.
  • Триггер.
  • Свет.
  • Частичный эффект.
  • Звук.
  • Логику, выдающую награду.

Шаблон позволяет хранить всю эту структуру вместе.

Используйте Entity Templates для таких объектов, как:

  • Игроки.
  • Враги.
  • Подбираемые предметы.
  • Двери.
  • Пули.
  • Транспортные средства.
  • Порталы.
  • Зоны урона.
  • Реквизит.
  • Элементы интерфейса.
  • Переиспользуемые игровые объекты.

Шаблоны экономят время и делают повторяющиеся объекты одинаковыми. Если все аптечки созданы из одного шаблона, вы можете улучшить шаблон один раз и сохранить проект организованным.

Создание Entity Template

Вы можете создать Entity Template из Asset Browser или повысить сущность из сцены в шаблон, кликнув по ней правой кнопкой в Scene Graph или нажав Ctrl + T.

Распространённый рабочий процесс такой:

  1. Создайте сущность в сцене.
  2. Добавьте необходимые компоненты и дочерние объекты.
  3. Настройте параметры.
  4. Преобразуйте её в Entity Template.
  5. Повторно используйте этот шаблон в той же или других сценах.

Однако, если вы уверены, что собираетесь переиспользовать объект, например игрока, врагов, бонусы, лучше сразу создать шаблон — через Asset Browser или повысив в шаблон.

В Scene Graph меню быстрого редактирования позволяет повысить сущность в шаблон. Сочетание клавиш — Ctrl + T.

Asset шаблона и экземпляр шаблона

Важно различать ассет шаблона и размещённый экземпляр.

Понятие Значение
Asset шаблона Настройка переиспользуемого объекта, хранящаяся в Asset Browser.
Экземпляр шаблона Размещённая копия этого шаблона в сцене.

Asset определяет структуру объекта.

Экземпляр — это появление этой структуры в конкретной сцене.

Редактирование Entity Template

Шаблоны редактируются как собственные ассеты.

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

Ключевая мысль:

> Шаблон владеет своей внутренней иерархией.

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

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

Например, если вы откроете шаблон Enemy и добавите в него дочерний Health Bar, все экземпляры этого шаблона получат обновлённую структуру.

Почему дочерние объекты в шаблоне не редактируются напрямую в сцене

При размещении экземпляра шаблона в сцене внутренние дочерние объекты всё ещё принадлежат шаблону.

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

Например, если шаблон врага содержит:

Enemy
  Body Mesh
  Detection Area
  Health Bar

Все эти дочерние объекты нужно редактировать внутри шаблона, а не как отдельные объекты сцены.

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

Размещение шаблона в сцене

После создания шаблона вы можете разместить его в сцене.

Например, можно перетащить шаблон из Asset Browser в 3D View.

Когда шаблон размещается:

  • Он появляется в Scene Graph как экземпляр шаблона.
  • Cave использует другой цвет (зелёный) для экземпляров шаблонов.
  • Экземпляр сохраняет связь с ассетом шаблона.

image.png

С точки зрения рабочего процесса, это один из самых быстрых способов строить уровни. Создайте дверь, врага или реквизит один раз и размещайте экземпляры там, где надо.

Локальная настройка экземпляров шаблона

Экземпляры шаблонов всё же можно настраивать локально:

image.png

Основной способ — через свойства, открытые корневой сущностью шаблона.

Так достигается полезный баланс:

  • Структура остаётся переиспользуемой.
  • Каждый размещённый экземпляр может иметь свои значения.

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

Примеры локальных свойств шаблона

Полезные локальные свойства включают:

Свойство Пример использования
Здоровье врага Сделать одного врага слабее или сильнее.
Скорость врага Создать медленных и быстрых вариантов.
Количество урона Использовать один и тот же вредный объект с разным уровнем опасности.
Целевой уровень портала Направлять каждый портал в разную сцену.
Значение подбираемого предмета Сделать монеты, драгоценные камни или награды разной стоимости.
Состояние двери (заперта/открыта) Использовать один и тот же шаблон двери для разных состояний.
Текст в UI Использовать один виджет интерфейса с разными надписями.

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

Примеры шаблонов в стартовых проектах

Стартовые проекты могут включать несколько полезных шаблонов в зависимости от выбранных опций.

Вы можете найти такие примеры, как:

  • Шаблон игрока.
  • Шаблон врага.
  • Шаблон урона.
  • Шаблон портала.
  • Шаблон транспортного средства.
  • Переиспользуемые игровые элементы.

Стоит их изучить: открыть, посмотреть иерархию, исследовать компоненты и доступные свойства.

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

Когда стоит использовать Entity Templates

Создавайте шаблон, если объект:

  • Повторяется много раз.
  • Используется в нескольких сценах.
  • Состоит из нескольких компонентов.
  • Имеет несколько дочерних сущностей.
  • Должен вести себя последовательно.
  • Полезен как переиспользуемый игровой элемент.

Хорошие кандидаты:

  • Враги.
  • NPC.
  • Оружие.
  • Пули.
  • Коллекционные предметы.
  • Двери.
  • Контрольные точки.
  • Ловушки.
  • Порталы уровней.
  • Транспорт.
  • Разрушаемый реквизит.
  • Элементы интерфейса.
  • Повторно используемые части дизайна уровней.

Чем чаще вы переиспользуете объект, тем ценнее становится шаблон.

Когда не стоит использовать шаблон

Не все объекты должны быть шаблонами.

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

Например:

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

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

Простое правило для шаблонов

Если ловите себя на копировании одной и той же настройки сущности более одного раза, подумайте о создании Entity Template.

Эта привычка сэкономит вам много времени и поможет держать проект чище по мере роста.