This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Полезные советы
Программирование на C#
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров узла
Setting Up Materials
Setting Up Properties
Освещение
Landscape Tool
Sandworm (Experimental)
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
UnigineScript
C++
C#
Унифицированный язык шейдеров UUSL
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Player Actor

A player actor is a player with a rigid physical body, which is approximated with a capsule and has physical properties. Unlike all other players that can move in any direction, the player actor can only walk on the ground.

The viewing orientation of a player actor in space is defined by 2 angles - theta and phi - and by the up vector that usually coincides with the Z axis:

  • When changing the theta angle, the vertical view direction of the player actor changes.
  • When changing the phi angle, the horizontal view direction and the basis of the player actor change.

Player Actor Approximated with Capsule

Notice
As any transformation of a player forces it to recalculate its inner state (position, direction, angles and so on), the up direction of the player's viewport may become "negative forward". And then transformation will be recalculated by using this direction, causing flip of the player's basis. To avoid such flipping, the theta and phi angles should be recalculated by using the current viewing orientation of the player.

If you need a player actor to go up and down a staircase smoothly, without getting stuck on each stair, you should carefully adjust the radius of the capsule that approximates the player. Or you can approximate the staircase with a plane: in this case, the capsule can be of any radius.

The height of the player's capsule should also be set correctly to avoid getting stuck in a doorway.

A player actor can be used to create a first person view. Also a player actor can be used in pair with player persecutor to create a 3rd person view (see the corresponding samples in the SDK).

See also#

  • The PlayerActor class to manage the player actor via API
  • A set of samples located in the <UnigineSDK>/data/samples/players/ folder:
    • actor_00
    • actor_01
    • actor_02

Calculating Collisions#

When a player actor is not simulated as a rigid body, a simple dummy body with a capsule shape is used to calculate collisions:

  1. All contacts with the shape are found.
  2. The player actor is pushed out of objects it collided with along the contact normal (the global penetration factor is also taken into account here). Effectively, it's a sum of all normal vectors of found contacts.
  3. The velocity change is calculated: the initial velocity vector is projected onto each contact normal (the dot product is calculated) and the result is subtracted from the initial velocity.

Creating an Actor#

To create an actor camera, do the following:

  1. On the Menu bar, choose Create -> Camera -> Actor.

  2. Place the camera somewhere in the world and specify the required parameters via the Parameters window.

Editing a Player Actor#

In the Player Actor section of the Node tab, you can adjust common camera parameters: bit masks, viewing frustum parameters, and post-process materials, as well as actor-specific physical parameters of the camera described below.

Player Actor parameters

Physical parameters#

Physical Toggle on and off the player actor's rigid body. Enabled Physical allows interacting with the environment as a physical object.
Physical Mass The player actor's physical mass. If g (Earth's gravity) equals to 9.8 m/s^2, and 1 unit equals to 1 meter, the mass is measured in kilograms.
Physical Mask A bit mask defining the player actor's interaction with physicals.
Physics Intersection Mask A bit mask defining the player actor's physics intersection with other objects.
Collision Toggle on and off the player actor's ability to collide with other objects.
Collision Mask A bit mask defining nodes the player actor is able to collide with.
Collision Radius The radius of the player actor's capsule.
Collision Height The height of the player actor's capsule.
Min Velocity The default velocity of the player actor.
Max Velocity The velocity of the player actor used when the actor runs.
Min Theta The minimum theta angle (zenith angle, also known as pitch angle) that determines how far upward the player can look.
Max Theta The maximum theta angle (zenith angle, also known as pitch angle) that determines how far downward the player can look.
Acceleration The player actor's acceleration.
Damping The player actor's velocity damping with the time.
Turning The velocity of the player actor's turning action.
Jumping The jumping coefficient. The greater the value, the higher the player actor jumps.
Max Step Height The maximum step height. The value defines the maximum height of a surface to which the player can make a step. It can be used for walking up and down the stairs and stepping over curbs.
Phi The phi angle (azimuth angle, also known as yaw angle). This angle determines the horizontal viewing direction, i.e. left or right.
Theta The theta angle (zenith angle, also known as pitch angle). This angle determines the vertical viewing direction, i.e. upward and downward. The value is clamped between the minimum and the maximum theta angle.
View Direction X, Y, and Z values of the vector defining where the player actor's view is directed.
Ground A flag indicating that the actor currently stands on the ground surface. This flag is used to set actor state, i.e. play the corresponding skinned animation of standing/walking instead of being in the air.
Ceililng A value indicating if the actor touches the ceiling surface with its head.
Num Contacts The number of contacts, in which the player's capsule participates.
Last update: 24.11.2020
Build: ()