Existent Unreal Plugin
v0.1.0
v0.1.0
  • 👋Welcome
  • Overview
    • 💡What we do
    • ✨Features
    • 📕Glossary
    • 🐞Bug Reports & Feature Requests
    • ❓FAQ
    • 🗒️Release Notes
      • Existent v0.0.1 Release Notes
      • Existent v0.0.2 Release Notes
      • Existent v0.1.0 Release Notes
  • Learning Existent
    • 🛠️Hardware Setup
    • 🖥️Getting Started
      • Installing Unreal Engine
      • Installing Existent Plugin
      • Setting Up a New Project
        • Setup Wizard
        • Manual Setup
      • Installing your License Key
      • Adding Tracked Objects
        • Using Vive Ultimate Trackers
        • Outside-in (Optitrack/Vicon) Setup
          • Aligning HMDs with outside-in systems
          • 3D Print an Alignment Tool
          • Creating Digital Twins/Props
    • 🎭Backstage Mode
    • 📼Session recording & playback
    • 🌉RealityBridge
  • GUIDES
    • 📦Building and packaging a project
    • 🖐️Grip Authoring
      • Creating a pose and entering edit mode
      • Interface Overview
      • Controls
      • Pose Edits
      • Operations
    • 🎛️Control Panel
      • Trackers Tab
      • Level Tab
      • Alignment Tab
      • Server Tab
      • Recordings Tab
    • 👨‍💼Customising Player Avatar
      • Mappings
        • Hand Bone Mappings
        • Body Bone Mappings
        • Tracker Mappings
      • Animation Blueprint
      • Assign assets to Player
  • Resources
    • 🔬Classes/Components
      • ExistentStage
      • ExistentSpace
      • ExistentVehicle
      • ExistentPlayer (Pawn)
      • ExistentPlayerAnimInstance
      • ExistentGameModeBase
      • ExistentTrackerComponent
      • ExistentGrabComponent
      • ExistentGripComponent
      • ExistentHandComponent
      • ExistentTrackingConfidenceComponent
    • 📃Existent API
      • 🔬BP Nodes
        • AsyncTask_RealityBridgeInitialised
          • AddDelegate_Bind_Event_to_Initialised
          • ClearDelegate_Unbind_all_Events_from_Initialised
          • Initialised
        • ExistentAlignmentComponent
          • BeginSampling
          • BeginSamplingNoDelay
          • HasValidOffset
        • ExistentAnimationLibrary
          • GetBoneLength
          • GetChildrenBones
          • GetMixamoBodyMappingsMatchConfig
          • GetMixamoHandMappingsMatchConfig
          • GetRefSkeletonBoneComponentTransform
          • GetRefSkeletonBoneLength
          • GetUE4BodyMappingsMatchConfig
          • GetUE4HandMappingsMatchConfig
          • GetUE5BodyMappingsMatchConfig
          • GetUE5HandMappingsMatchConfig
          • SetAnimInstanceClass
        • ExistentBodyBoneMappings
          • GetBodyBones
          • GetBoneName_ByBodyBone
          • GetExcludedExistentBodyBones
          • GetSpineBoneNames
        • ExistentBodyCalibration
          • AddArmsLength
          • AddCalibration
          • AddEyeHeight
          • AddFriendlyName
          • AddHandSize
          • AddLegLength
          • AddShoulderWidth
          • DeleteAllCalibrations
          • DeleteCalibration
          • GetArmsLength
          • GetCalibration
          • GetCalibrations
          • GetCalibration_ByFriendlyName
          • GetEyeHeight
          • GetFriendlyName
          • GetHandSize
          • GetLegLength
          • GetShoulderWidth
        • ExistentBoneMappingsBase
          • AreBoneMappingsValid
          • GetExcludedBoneNames
          • GetHandBones
          • GetInvalidBoneMappings
          • GetMappedBones
          • GetMeshRotation
          • IsHandBone
        • ExistentFootEventsInterface
          • OnFootDown
          • OnFootUp
        • ExistentGrabComponent
          • AddDelegate_Bind_Event_to_On_Grip_Attach
          • AddDelegate_Bind_Event_to_On_Grip_Detach
          • AddDelegate_Bind_Event_to_On_Grip_Transfer
          • ClearDelegate_Unbind_all_Events_from_On_Grip_Attach
          • ClearDelegate_Unbind_all_Events_from_On_Grip_Detach
          • ClearDelegate_Unbind_all_Events_from_On_Grip_Transfer
          • GetAttachmentStateString
          • OnGripAttach
          • OnGripDetach
          • OnGripTransfer
        • ExistentGripComponent
          • AddDelegate_Bind_Event_to_On_Player_Object_Drop
          • AddDelegate_Bind_Event_to_On_Player_Object_Pickup
          • ClearDelegate_Unbind_all_Events_from_On_Player_Object_Drop
          • ClearDelegate_Unbind_all_Events_from_On_Player_Object_Pickup
          • GetWristOffset
          • GetWristRotation
          • IsEnabled
          • IsParentMoving
          • OnPlayerObjectDrop
          • OnPlayerObjectPickup
          • ProjectComponentTransformOnCircleGripShape
          • ProjectComponentTransformOnCylinderGripShape
          • ProjectComponentTransformOnGripShape
          • SetEnabled
        • ExistentHandBoneMappings
          • GetBoneRotation
          • GetBoneRotation_ByBone
          • GetCapsuleTraceModifiers
          • GetExcludedExistentBones
          • GetGripBone
        • ExistentHandComponent
          • GetBoneComponentTransforms
          • GetBoneWorldTransforms
          • GetExistentPlayer
          • GetGrabComponent
          • GetTrackingStatus
          • GetTransformFromWristTracker
          • GetWristBoneWorldTransform
          • IsWristTrackerDataValid
          • SetBoneMappings
          • SetHandTrackingEnabled
          • SetTrackerMappings
          • SetWristTransform
        • ExistentHandDataFilterComponent
          • AddDelegate_Bind_Event_to_On_Calculated_Data
          • ClearDelegate_Unbind_all_Events_from_On_Calculated_Data
          • OnCalculatedData
        • ExistentHandLibrary
          • DrawHandBoneWorldTransforms
          • GetBoneIndex
          • GetBoneLocation
          • GetBoneLocations
          • GetBoneRadius
          • GetBoneRotation
          • GetBoneTransform
          • GetCloseHandTransforms
          • GetFingerFromBone
          • GetFingerParentBones
          • GetHandTrackingStatus
          • GetHandXRDeviceID
          • GetHMDName
          • GetOpenHandTransforms
          • GetParentBone
          • GetParentBoneSpaceCloseHandTransforms
          • GetParentBoneSpaceOpenHandTransforms
          • IsBoneSupported
          • IsHandTrackingEnabled
          • LogHandBoneWorldLocations
          • LogHandBoneWorldRotations
          • UpdateBoneInPose
        • ExistentLibrary
          • CapsuleTraceMultiForObjects
          • CapsuleTraceSingleForObjects
          • DrawSampleArray
          • ExistentBodyBoneToString
          • ExistentBoneToString
          • ExistentFingerToString
          • ExistentHandToString
          • GetControllerOrientationAndPosition
          • GetControllerTrackingStatus
          • GetMatchString
          • SavePlayerData
          • SetBackstageModeEnabled
          • StringToExistentBodyBone
          • StringToExistentBone
          • TransformSampleToWorld
        • ExistentMathLibrary
          • AverageOfFloatArray
          • GetAngleFromVectors
          • GetCompDirectionFromPosAxis
          • GetRotatorMax
          • GetWeightsFromAlpha
          • IsRotatorLessThan
          • LineBoxIntersection
          • MedianOfFloatArray
        • ExistentPawn
          • AddDelegate_Bind_Event_to_On_Current_Space_Changed
          • ClearDelegate_Unbind_all_Events_from_On_Current_Space_Changed
          • GetCurrentSpace
          • GetSpaceTransform
          • IsAReplicatedClient
          • OnCurrentSpaceChanged
          • SetCurrentSpace
        • ExistentPlayer
          • AddDelegate_Bind_Event_to_On_Object_Drop
          • AddDelegate_Bind_Event_to_On_Object_Pickup
          • ApplyCalibrationSettings
          • ClearDelegate_Unbind_all_Events_from_On_Object_Drop
          • ClearDelegate_Unbind_all_Events_from_On_Object_Pickup
          • GetEquippedProps
          • GetHeadTransform
          • IsHandCollider
          • OnObjectDrop
          • OnObjectPickup
          • SetBackstageModeEnabled
          • SetCheckHandsCollidingWithStageEnabled
        • ExistentPlayerAnimInstance
          • GetFootTrackerTransform
          • GetHandComponent
          • IsSimulating
          • SetLeftBoneWorldTransforms
          • SetRightBoneWorldTransforms
          • UpdateCalibrationSettings
        • ExistentPlayerController
          • SaveCurrentTrackerInfoToOverrideSet
        • ExistentSessionRecording
          • AddDelegate_Bind_Event_to_On_Playback
          • ClearDelegate_Unbind_all_Events_from_On_Playback
          • GetCurrentRecordingDurationSecs
          • GetPlaybackTimeFraction
          • OnPlayback
        • ExistentSpace
          • SetMobility
        • ExistentTrackerComponent
          • AddDelegate_Bind_Event_to_On_Current_Space_Changed
          • AddDelegate_Bind_Event_to_On_Tracking_Lost
          • AddDelegate_Bind_Event_to_On_Tracking_Resumed
          • ClearDelegate_Unbind_all_Events_from_On_Current_Space_Changed
          • ClearDelegate_Unbind_all_Events_from_On_Tracking_Lost
          • ClearDelegate_Unbind_all_Events_from_On_Tracking_Resumed
          • GetCurrentSpace
          • GetId
          • GetTrackerRelativeTransform
          • GetTrackerWorldTransform
          • GetTrackingIDs
          • GetTrackingStatus
          • OnCurrentSpaceChanged
          • OnTrackingLost
          • OnTrackingResumed
          • Server_SetId
          • SetCurrentSpace
        • ExistentTrackerMappings
          • ApplyTrackerOffsetToTrackerTransform
          • GetFootTrackerDelta
          • GetFootTrackerOffset
          • GetHandTrackerDelta
          • GetHandTrackerOffset
        • ExistentTrackingConfidenceComponent
          • GetConfidenceValue
          • GetConfidenceValueByType
          • GetDistanceConfidenceValue
          • GetFingersConfidenceValues
          • GetFingersOcclusionConfidenceValue
          • GetOcclusionConfidenceValue
          • GetStillHandConfidence
          • GetVelocityConfidenceValue
          • GetWristConfidenceValue
          • PrintAllConfidenceValues
          • PrintBonesOcclusionConfidence
          • PrintConfidence
          • PrintDistanceConfidence
          • PrintFingersConfidence
          • PrintFingersOcclusionConfidence
          • PrintStillHandConfidence
          • PrintVelocityConfidence
          • PrintWristConfidence
          • SetForcedConfidenceValue
        • ExistentUMGWindowComponent
          • CloseWindow
          • OpenAsWindow
          • OverrideManualDpiScalingWindowSize
          • SetManualDpiScaling
        • ExistentVehicle
          • AddDelegate_Bind_Event_to_On_Arrived_at_Destination
          • AddDelegate_Bind_Event_to_On_Drive
          • AddDelegate_Bind_Event_to_On_Reverse_Direction
          • ClearDelegate_Unbind_all_Events_from_On_Arrived_at_Destination
          • ClearDelegate_Unbind_all_Events_from_On_Drive
          • ClearDelegate_Unbind_all_Events_from_On_Reverse_Direction
          • Drive
          • GetCurrentSpeed
          • GetMaxSpeed
          • OnArrivedAtDestination
          • OnDrive
          • OnReverseDirection
          • ResetToSource
          • ReverseDirection
          • SetIsPaused
        • ExistentViveTrackingSystem
          • RecordOrigin
        • K2Node_IsRealityBridgeInitialised
          • UK2Node_IsRealityBridgeInitialised
        • K2Node_RealityBridgeReceiveEvent
          • UK2Node_RealityBridgeReceiveEvent
        • K2Node_RealityBridgeSendEvent
          • UK2Node_RealityBridgeSendEvent
        • K2Node_RealityBridgeUnbindEvent
          • UK2Node_RealityBridgeUnbindEvent
        • RealityBridge
          • AddDelegate_Bind_Event_to_On_Reality_Bridge_Initialised
          • ClearDelegate_Unbind_all_Events_from_On_Reality_Bridge_Initialised
          • GetInitialised
          • Initialise
          • OnRealityBridgeInitialised
        • RoundProgressBar
          • SetPercent
  • Tutorials & Examples
    • 📚Tutorials
Powered by GitBook
On this page
  • Tracking System
  • World Settings
  • Game Mode
  • Map
  • Duplicate map
  • New map
  • Default map
  • Player Pawn
  • Bone Mappings
  • Animation Blueprint
  • 5 Point Tracking
  • 3 Point Tracking
  1. Learning Existent
  2. Getting Started
  3. Setting Up a New Project

Manual Setup

Manually setup a new project

PreviousSetup WizardNextInstalling your License Key

Last updated 10 months ago

Tracking System

Right click anywhere in the content browser then navigate to Existent and create a tracking system asset based on the tracking system you will work with.

Open Project Settings → Existent Settings and update the default tracking system to point at the newly create asset.

World Settings

Open Project settings -> General Settings then update the World Settings class to Existent World Settings. Restart the editor when prompted.

Game Mode

Create a new game mode which inherits from Existent Game Mode Base.

Open Project Settings -> Maps & Modes and set the Default Game Mode to the newly created game mode asset.

Map

You can either duplicate the MAP_StarterLevel which can be found inside Existent Content -> Maps or create a brand new map.

Duplicate map

To duplicate the MAP_StarterLevel make sure to enable Show Engine Content and Show Plugin Content in the content browser settings.

Then navigate to Existent Content -> Maps and drag & drop MAP_StarterLevel onto the folder where you want to duplicate it. Make sure to click on Copy here.

Open the newly created map then in the world settings set the default space to the actor default space.

If the world settings tab is missing you can find it under Window -> World Settings

New map

While focused on the editor's viewport press CTRL + N, this will bring up the new level window. Choose a level.

Once the new level opens make sure to save it.

Using the add to project menu from the toolbar add an Existent Space to your level.

In the world settings set the default space to the actor existent space.

If the world settings tab is missing you can find it under Window -> World Settings

Default map

Whether you created the new map from scratch or duplicated it, open Project Settings -> Maps & Modes then set the Editor Startup Map and Game Default Map to the map asset you just created.

Player Pawn

Right click anywhere in the content browser and select Blueprint Class then under All Classes select ExistentPlayer.

Open the existent game mode you created and update the Default Pawn to point at the newly created existent player blueprint class.

Open the player blueprint and update the Player Body to use the skeletal mesh of your choice. The default SKM_Emmanuel_Emanu-L is based on the UE5 skeleton.

Bone Mappings

Right click anywhere in the content browser then navigate to Existent and create three assets of type Hand Bone Mappings, Body Bone Mappings and Tracker mappings.

Open the Body Bone Mappings and select the skeletal mesh you are working with. Use the Skeletal Mesh Rotation Delta to make the preview mesh point face towards the red arrow on the floor. Click auto-fill bone mappings and select the skeleton type you are working with.

If there are bones that have not been mapped click auto-fill excluded bones. Validate that all assigned bones are correct.

Adjust the Head Delta to fix the head rotation.

Repeat the same process for the hand bone mappings and adjust the bone rotations to fix the fingers rotation.

Open the tracker mappings. Select the body bone mappings and hand bone mappings created.

Select the device mesh name based on the tracking system you are using then click and transform each tracker based on how they will be worn by the user. Click on the headset and transform it to make your mesh wear the device.

Open the player blueprint and update all the bone mappings assets.

Animation Blueprint

The existent hand anim node requires to specify a open and close hand pose for your skeletal mesh. This section assumes you have created these assets already.

Right click anywhere in the content browser then navigate to Animation and select Animation Blueprint. Choose the skeleton you are working with and select Existent Player Anim Instance as the parent class.

Set the player blueprint Player Body anim class to the animation blueprint you created.

5 Point Tracking

Open the animation blueprint and create the following graph.

3 Point Tracking

Open the animation blueprint and create the following graph.

Head and Hands

Open the animation blueprint and create the following graph.

We will briefly cover how to create bone mappings in this section but you should refer to under for a more in depth explanation.

🖥️
Mappings
Customising Player Avatar
Create tracking system
Update tracking system
Update world settings
Create game mode
Update game mode
Content browser settings
Copy map
Set default space
Create new map
Save map
Add existent space
Set existent space as default
Update default map
Create player pawn
Update game mode
Set player mesh
Create bone mappings
Auto fill bone mappings
Update head rotation in body mappings
Update bone rotation in hand mappings
Set bone mappings in tracker mappings
Update tracker mappings
Assign bone mappings
Create new animation blueprint dialog
5 Point node chain
Existent Root node
Existent Hand nodes
3 Point node chain
Existent Hand nodes
Modify bone nodes
Head and Hands nodes chain
Existent Hand nodes