Existent Unreal Plugin
v0.0.2
v0.0.2
  • πŸ‘‹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
  • Learning Existent
    • πŸ“˜High-Level Overview
    • πŸ› οΈHardware Setup
    • πŸ–₯️Getting Started
      • Installing Unreal Engine
      • Installing Existent Plugin
      • Setting Up a New Project
      • Creating your first Map
        • Duplicating the Starter Level
        • Creating and Configuring the Stage
      • Setting up Player Pawns & Animations
      • Running the Experience
    • 🎭Backstage Mode
    • πŸ“ΌSession recording & playback
    • πŸŒ‰RealityBridge
  • GUIDES
    • πŸ‘¨β€πŸ’ΌCustomising Player Avatar
      • Mappings
        • Hand Bone Mappings
        • Body Bone Mappings
        • Tracker Mappings
      • Animation Blueprint
      • Assign assets to Player
    • πŸ›‘οΈ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
    • πŸ–οΈGrip Authoring
      • Creating a pose and entering edit mode
      • Interface Overview
      • Controls
      • Pose Edits
      • Operations
  • Resources
    • πŸ”¬Classes/Components
      • ExistentStage
      • ExistentSpace
      • ExistentVehicle
      • ExistentPlayer (Pawn)
      • ExistentPlayerAnimInstance
      • ExistentGameModeBase
      • ExistentTrackerComponent
      • ExistentGrabComponent
      • ExistentGripComponent
      • ExistentHandComponent
      • ExistentTrackingConfidenceComponent
      • ExistentAlignmentComponent
      • IExistentAlignmentSubject
      • ExistentUMGWindowComponent
    • πŸ“ƒ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
          • GetRefSkeletonBoneComponentTransform
          • GetRefSkeletonBoneLength
          • SetAnimInstanceClass
        • ExistentBodyBoneMappings
          • GetBodyBones
          • GetBoneName_ByBodyBone
          • GetExcludedExistentBodyBones
          • GetMeshForwardVector
          • GetMeshRightVector
          • GetMeshRotation
          • GetMeshYawRotation
          • 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
          • 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
          • GetWristOffset
          • GetWristRotation
          • IsEnabled
          • IsParentMoving
          • 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
          • GetCurrentSpace
          • GetSpaceTransform
          • IsAReplicatedClient
          • 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
        • ExistentTrackerComponent
          • GetCurrentSpace
          • GetId
          • GetTrackerRelativeTransform
          • GetTrackerWorldTransform
          • GetTrackingIDs
          • GetTrackingStatus
          • 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
          • ClearDelegate_Unbind_all_Events_from_On_Arrived_at_Destination
          • Drive
          • GetCurrentSpeed
          • GetMaxSpeed
          • OnArrivedAtDestination
          • ResetToSource
          • ReverseDirection
        • 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
  • Why a grip edit mode?
  • What is the grip edit mode?
  1. GUIDES

Grip Authoring

Learn about existent grip authoring tools

PreviousCreating Digital Twins/PropsNextCreating a pose and entering edit mode

Last updated 11 months ago

Before getting started it’s advisable to familiarise yourself with the following concepts: and .

The grip edit mode offers tools to support the authoring of grip poses used by the ExistentGripComponent and the overall grab system.

Why a grip edit mode?

When creating a tracked object, custom grips are essential to make handling the object feel natural. While the ExistentGripComponent and the ExistentHandSolver can let you generate dynamic poses you will get the best results by providing authored poses.

An authored pose in this context is an animation sequence that has at least one frame of data. There are several means to create an animation sequence to use as a grip pose, however, all the available solutions introduce friction. The grip edit mode aims at improving authoring the grip poses workflow.

What is the grip edit mode?

In essence, the grip edit mode is a blueprint editor custom mode that lets you create and edit grip poses directly while working on a tracked object.

Using this mode you can manipulate the hand bones of a grip preview mesh and generate a custom pose. Aside from manipulating the bones you can also adjust the grip component itself to better align the grip pose with the tracked object. Finally the grip edit mode allows to save the edits made on the grip preview mesh to an animation sequence.

πŸ–οΈ
ExistentGrabComponent
ExistentGripComponent