Найти в Дзене
Аня про Unreal Engine

Что такое Actor, Pawn и Character в Unreal Engine

Всем привет! Давайте представим, что мы разрабатываем игру про птицеферму и у нас есть множество ассетов: куры, яйца, цыплята, курятник, кормушки, заборы, ворота, сетка-рабица, тележки, мешки с кормом, камни, кусты, деревья и много-много всего. Все это можно разместить на сцене, а значит, все это акторы (Actors). Actor — это базовый класс всех объектов, которые могут существовать в игровом мире. Актор может включать в себя различные компоненты (Components), которые определяют его внешний вид, поведение и взаимодействие с окружением. Например, забор состоит из Static Mesh Component, а лампочка может иметь сразу несколько компонентов: Static Mesh Component (корпус лампы), Point Light Component (свет), Audio Component (звук). И лампа, и забор — это акторы. Они просто существуют в мире, но сами по себе ничего не делают, если их логика не прописана вручную. Иерархия Актора и его подклассов выглядит так: Pawn — наследник Актора, может управляться игроком или ИИ. Сам по себе Pawn не умеет ход

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

Actor — это базовый класс всех объектов, которые могут существовать в игровом мире. Актор может включать в себя различные компоненты (Components), которые определяют его внешний вид, поведение и взаимодействие с окружением. Например, забор состоит из Static Mesh Component, а лампочка может иметь сразу несколько компонентов: Static Mesh Component (корпус лампы), Point Light Component (свет), Audio Component (звук). И лампа, и забор — это акторы. Они просто существуют в мире, но сами по себе ничего не делают, если их логика не прописана вручную.

Иерархия Актора и его подклассов выглядит так:

-2

Pawn — наследник Актора, может управляться игроком или ИИ. Сам по себе Pawn не умеет ходить, бегать или прыгать, эти возможности нужно реализовать вручную через компоненты (MovementComponent) или блюпринты.

Подклассы Pawn:
DefaultPawn — базовый Pawn со сферической коллизией, статическим мешем и MovementComponent, который обеспечивает полет без гравитации. Часто используется для свободного перемещения.
SpectatorPawn — наследник DefaultPawn, также имеет сферическую коллизию и MovementComponent, но без меша (невидим). Подходит для обзора сцены, наблюдателя.

Различия между Pawn, DefaultPawn и SpectatorPawn (кликните, чтобы увеличить скрин)
Различия между Pawn, DefaultPawn и SpectatorPawn (кликните, чтобы увеличить скрин)

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

Character — наследник Pawn, предназначенный для управления персонажами, которые ходят, бегают, прыгают, стреляют и т.д.
У Character есть:
— CapsuleComponent для коллизий,
— SkeletalMeshComponent для скелета и анимации,
— CharacterMovementComponent для сложных движений (бег, прыжки, плавание).

То есть Character — это почти готовый игровой персонаж, нужно только добавить скелет, анимации и логику поведения.

Скрины ниже помогают увидеть, как с каждым уровнем наследования объект получает все больше возможностей. Так, в Pawn, в отличие от Actor, можно выбрать того, кто будет им управлять: игрок (Auto Possess Player) или ИИ (Auto Possess AI и AI Controller Class). У него можно задать, на какой высоте находятся «глаза» персонажа (Base Eye Height) и определить, будет ли он поворачиваться вслед за контроллером (Use Controller Rotation Pitch/Yaw/Roll). В Character, же в свою очередь, можно настроить физику (Physics), тень (Lighting), симуляцию одежды и тканей (Clothing), и конечно же различные движения: прыжок, падение, плавание, полет и т.д. (Character Movement, Character Movement: Walking, Character Movement: Jumping / Falling, Character Movement: Gravity, Character Movement: Swimming, Character Movement: Flying).

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

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

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

Кратко:
— если объект должен выполнять сложные движения, использовать физику и анимации, выбирайте Character;
— если поведение простое, выбирайте Pawn;
— если объект не управляется, а является частью окружения — это Actor.