This page has been translated automatically.
UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
FAQ
编程
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
应用程序接口
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes
注意! 这个版本的文档是过时的,因为它描述了一个较老的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

  • A PlayerActor class to edit players via API
  • A set of samples located in the 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.

Editing a Player Actor

In the Player Actor tab, you can adjust the bit-masks, viewing frustum parameters and also the following parameters of the player actor:

A Player Actor Tab
Last update: 2018-08-10
Build: ()