ExistentPlayer (Pawn)
Last updated
Last updated
ExistentPlayer represents a participant in the application that is wearing a HMD, and optionally, has some or all of their body represented within the experience. It inherits from ExistentPawn which represents any type of pawn that can belong to a space.
inherit from ExistentPlayer: If you want to create a pawn for a player wearing a HMD
inherit from ExistentPawn: if you want to create an alternative type of Pawn, such as a screen-based avatar or spectator camera
Both classes contain the property CurrentSpace which represents the space that the pawn is currently contained within. At all times, the transform of the pawn must match the transform of the pawn’s current space.
Existent manages the pawn’s transform, don’t alter it directly.
ExistentPlayer is a container for many of the components that are discussed elsewhere in this document:
Key components:
Top Level Component: This is where body, hand and tracker mappings assets are specified. Make sure that each of these is specified.
Player Body: This is a standard skeletal mesh component that should contain the skeletal mesh of the player avatar. You should also be sure to set the Animation Blueprint of this component to link it to the player body system.
HMDRoot (and HMDReferenceTracker): This is an Alignment component that is capable of alignment - storing and setting the HMD offset so that the HMD origin matches the external tracking system origin (See alignment). The HMDReferenceTracker component is a tracker component that should reference the alignment tool (if you are using one).
Body and Hand Colliders: These are simple colliders that you can script to create simple collision behaviours for characters. The Body Collider is a capsule which wraps the characters head then extends directly down to the floor where it terminates. Use this collider to trigger behaviour when a player enters a certain area. Note that this is a simple collider that doesn’t adjust the pose of the player. The Hand Colliders are simple sphere colliders attached to the hands of the player - you can use these to attach behaviours based on the rough proximity of player hands.
Tracker Components: These are standard tracker components that are used to obtain transforms for player limbs which drive the player body system. See above for info on the HMDReferenceTracker.
Grab Components: Use the properties in these components to adjust how the player’s hands interact with the grab system. (See ExistentGrabComponent).
Hand Components: Use these components to configure the use of finger tracking data (See ExistentHandComponent)
To make a new player avatar, create it via the 'Player' step in the setup wizard, or create one manually following the steps described here.
Multiplayer support: ExistentPlayer automatically replicates body poses and current space assignment. If you add additional functionality to your players ensure that you use regular replication/RPC methods to replicate this state across all instances of the game.