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
  • Project Creation
  • Enable Existent Plugin
  • Packaged build setup
  • Stage
  1. Learning Existent
  2. Getting Started

Setting Up a New Project

Steps to create and setup a new project

PreviousInstalling Existent PluginNextSetup Wizard

Last updated 10 months ago

Project Creation

Launch Unreal Engine and create a new project. We recommend using the 'Virtual Reality' template (in the 'Games' tab) as it comes with rendering settings suitable for VR, however you may choose a different template that better suits your needs if you’re comfortable adjusting the rendering settings yourself.

Enable Existent Plugin

In order to use the Existent plugin, you need to enable it. With your new project open in the Unreal Editor, navigate to Edit β†’ Plugins from the top menu, search for β€œExistent”, and check the box next to the plugin, then restart the editor as prompted.

Packaged build setup

To support building a packaged executable (required e.g. for multiplayer projects), open Project Settings β†’ Packaging and add the path '/Existent/UMG' in 'Advanced β†’ Additional Asset Directories to Cook', as shown in the screenshot below.

Stage

  • Adding Obstacles: In case there are immovable objects in your playable area (e.g. pillars, staircase), you need to specify them in the Obstacles section in your Stage asset file. For the best results, you’ll need custom meshes that accurately represent the objects in your physical space, although you may approximate them with simple meshes such as cubes or cylinders. Adjust the transform of the obstacles to align them with where they’re located in the physical space. The obstacles will be highlighted when the players approach them for safety reasons.

  • Setting the Default Stage: Once your Stage is complete, designate it as the project's default Stage in Project Settings β†’ Game β†’ Existent Settings under the Stage category. This will make it so the new Spaces you create will automatically refer to this Stage.

There are two way to keep setting up your project, you can either use the Existent Setup Wizard or setup the project manually.

We recommend using the Setup Wizard

Stage Creation: Create a new stage to define the playable area for your project by following the steps .

πŸ–₯️
here
Create project