Найти тему

Терминология Unreal Engine

Оглавление

В этой статье описаны наиболее часто используемые термины при работе с Unreal Engine. Если вы задаетесь вопросом: «Кто такой актер?» или «Что такое компонент?» эта статья ответит на ваши вопросы и на многие другие.

В этой статье используются некоторые концепции программирования, в частности классы и подклассы. В C++ класс — это шаблон кода, который содержит переменные и поведение и может быть расширен. Подкласс — это класс, который наследует часть или весь код и функциональность родительского класса.
Все классы C++, упомянутые на этой странице, относятся к Unreal Engine.

Project – Проект

Проект Unreal Engine 5 содержит все содержимое вашей игры. Он содержит несколько папок на вашем диске, таких как Blueprints и Materials. Вы можете называть и организовывать папки внутри проекта по своему усмотрению. Панель «Обозреватель контента» в редакторе Unreal показывает ту же структуру каталогов, что и в папке «Проект» на вашем диске.

С каждым проектом связан файл .uproject. Файл .uproject позволяет создавать, открывать или сохранять проект. Вы можете создавать любое количество различных проектов и работать над ними параллельно.

Blueprint – План, Чертеж или Визуальный сценарий

Система визуальных сценариев Blueprint — это полноценная система сценариев игрового процесса, которая использует интерфейс на основе узлов для создания элементов игрового процесса из Unreal Editor. Как и во многих распространенных языках сценариев, он используется для определения объектно-ориентированных (ОО) классов или объектов в движке. Когда вы используете Unreal Engine, вы часто обнаруживаете, что объекты, определенные с помощью Blueprint, в просторечии называются «Blueprints».

Object – Объект

Объекты — это самый базовый класс в Unreal Engine. Другими словами, они действуют как строительные блоки и содержат множество необходимых функций для ваших ресурсов. Почти все в Unreal Engine наследует (или получает некоторую функциональность) от объекта.

В C++ UObject — это базовый класс всех объектов; он реализует такие функции, как сборка мусора, поддержка метаданных (UPrperty) для предоставления переменных редактору Unreal и сериализация для загрузки и сохранения.

Class – Класс

Класс определяет поведение и свойства конкретного актера или объекта в Unreal Engine. Классы являются иерархическими, то есть класс наследует информацию от своего родительского класса (то есть класса, из которого он был производным или «подклассом») и передает эту информацию своим дочерним элементам. Классы можно создавать в коде C++ или в Blueprints.

Actor – Актер

Актер — это любой объект, который можно поместить на уровень, например камера, статическая сетка или начальная локация игрока. Актеры поддерживают 3D-преобразования, такие как перемещение, вращение и масштабирование. Они могут быть созданы (порождены) и уничтожены с помощью кода игрового процесса (C++ или Blueprints).

В C++ AActor является базовым классом всех актеров.

Casting – Кастинг

Кастинг — это действие, которое берет Актера определенного класса и пытается обращаться с ним так, как если бы он принадлежал к другому классу. Кастинг может быть успешным или неудачным. Если приведение прошло успешно, вы сможете получить доступ к функциональным возможностям, специфичным для класса, на актере, к которому вы выполняете приведение.

Например, предположим, что вы создаете игру, в которой у вас есть несколько типов томов, которые могут по-разному влиять на персонажа игрока. Одним из таких томов является «Огонь», который со временем уменьшает здоровье игрока. Когда игрок пересекается с каким-либо Томом на уровне, вы можете использовать этот Том в режиме «Огонь», чтобы попытаться получить доступ к его функции «нанести вред здоровью игрока».

Если заклинание успешно, то есть если игрок стоит в огне, здоровье игрока начинает уменьшаться.

Если каст не удался, то есть если игрок находится в любом другом томе, его здоровье не пострадает.

Приведение отличается от простой проверки того, принадлежит ли актер к заданному классу, которая возвращает двоичный ответ (да или нет), но не позволяет вам взаимодействовать с какими-либо конкретными функциями этого класса.

Component – Компонент

Компонент — это часть функциональности, которую можно добавить к Актеру.

Когда вы добавляете Компонент к Актеру, Актер может использовать функциональные возможности, предоставляемые Компонентом. Например:

  • Компонент Spot Light заставит вашего Актера излучать точечный свет.
  • Компонент вращающегося движения заставит вашего актера вращаться.
  • Аудиокомпонент даст вашему актеру возможность воспроизводить звуки.

Компоненты должны быть прикреплены к Актеру и не могут существовать сами по себе.

Pawn – Пешка

Пешки являются подклассом Актера и служат внутриигровым аватаром или персонажем (например, персонажами в игре). Пешками может управлять игрок или игровой ИИ как неигровые персонажи (NPC).

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

Character – Персонаж

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

Player Controller – Контроллер игрока

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

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

Связанный класс C++ — PlayerController.

AI Controller – ИИ-контроллер

Точно так же, как у контроллера игрока есть пешка, представляющая игрока в игре, у ИИ-контроллера есть пешка, представляющая неигрового персонажа (NPC) в игре. По умолчанию пешки и персонажи получают базовый ИИ-контроллер, если только ими не владеет Контроллер игрока или им не приказано не создавать для себя ИИ-контроллер.

Связанный класс C++ — AIController.

Player State – Состояние игрока

Состояние игрока — это состояние участника игры, например игрока-человека или бота, имитирующего игрока. Неигровой ИИ, существующий как часть игрового мира, не имеет состояния игрока.

Некоторые примеры информации об игроке, которую может содержать состояние игрока, включают:

  • Имя
  • Текущий уровень
  • Здоровье
  • Счет
  • Несут ли они в настоящее время флаг в игре «Захват флага».

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

Связанный класс C++ — PlayerState.

Game Mode – Игровой режим

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

  • Как игроки присоединяются к игре.
  • Можно ли поставить игру на паузу.
  • Любое поведение, специфичное для игры, например условия победы.

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

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

Связанный класс C++ — GameMode.

Game State – Состояние игры

Состояние игры — это контейнер, в котором хранится информация, которую вы хотите передать каждому клиенту в игре. Проще говоря, это «Состояние игры» для всех, кто связан с ней.

Некоторые примеры того, что может содержать Game State:

  • Информация о счете игры.
  • Независимо от того, начался матч или нет.
  • Сколько ИИ-персонажей появится в зависимости от количества игроков в мире.

В многопользовательских играх на компьютере каждого игрока имеется один локальный экземпляр Game State. Локальные экземпляры состояния игры получают обновленную информацию от экземпляра состояния игры на сервере.

Соответствующий класс C++ — GameState.

Brush – Кисть

Кисть — это актер, описывающий трехмерную фигуру, например куб или сферу. Вы можете размещать кисти на уровне, чтобы определить геометрию уровня (они известны как бинарное разделение пространства или кисти BSP). Это полезно, например, если вы хотите быстро заблокировать уровень.

Volume – Объем

Объемы — это ограниченные трехмерные пространства, которые используются по-разному в зависимости от наложенных на них эффектов. Например:

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

Level – Уровень

Уровень — это определенная вами игровая область. Уровни содержат все, что игрок может видеть и с чем взаимодействовать, например геометрию, пешек и актеров.

Unreal Engine сохраняет каждый уровень в виде отдельного файла .umap, поэтому иногда их называют «Картами».

Мир

Мир — это контейнер для всех уровней, составляющих вашу игру. Он управляет потоковой передачей уровней и созданием динамических актеров.

Источник (перевод): https://dev.epicgames.com/documentation/en-us/unreal-engine/unreal-engine-terminology