gitextract_c23nrrk_/ ├── .gitattributes ├── .github/ │ └── ISSUE_TEMPLATE/ │ └── bug_report.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Config/ │ ├── Android/ │ │ └── AndroidEngine.ini │ ├── DefaultDeviceProfiles.ini │ ├── DefaultEditor.ini │ ├── DefaultEngine.ini │ ├── DefaultGame.ini │ └── DefaultInput.ini ├── Content/ │ └── HandGameplay/ │ ├── Audio/ │ │ ├── GrabSound.uasset │ │ ├── LAST_TestAudio_Release01.uasset │ │ ├── LAST_TestAudio_Release02.uasset │ │ ├── LAST_TestAudio_Release03.uasset │ │ ├── ReleaseSound.uasset │ │ ├── SoundAttenuationForSpatialization.uasset │ │ ├── generic_grab_01.uasset │ │ ├── generic_grab_02.uasset │ │ ├── generic_grab_03.uasset │ │ ├── generic_grab_04.uasset │ │ ├── impacts/ │ │ │ ├── sfx_impact_primary_block_01.uasset │ │ │ ├── sfx_impact_primary_block_02.uasset │ │ │ ├── sfx_impact_primary_block_03.uasset │ │ │ ├── sfx_impact_primary_block_04.uasset │ │ │ ├── sfx_impact_primary_block_05.uasset │ │ │ ├── sfx_impact_primary_block_06.uasset │ │ │ ├── sfx_impact_primary_block_07.uasset │ │ │ ├── sfx_impact_primary_block_Cue.uasset │ │ │ ├── sfx_impact_secondary_block_01.uasset │ │ │ ├── sfx_impact_secondary_block_02.uasset │ │ │ ├── sfx_impact_secondary_block_03.uasset │ │ │ ├── sfx_impact_secondary_block_04.uasset │ │ │ ├── sfx_impact_secondary_block_05.uasset │ │ │ ├── sfx_impact_secondary_block_06.uasset │ │ │ ├── sfx_impact_secondary_block_07.uasset │ │ │ ├── sfx_impact_secondary_block_08.uasset │ │ │ ├── sfx_impact_secondary_block_09.uasset │ │ │ ├── sfx_impact_secondary_block_10.uasset │ │ │ ├── sfx_impact_secondary_block_11.uasset │ │ │ ├── sfx_impact_secondary_block_12.uasset │ │ │ ├── sfx_impact_secondary_block_13.uasset │ │ │ └── sfx_impact_secondary_block_Cue.uasset │ │ ├── laser/ │ │ │ ├── LaserSound.uasset │ │ │ ├── sfx_laser_end.uasset │ │ │ ├── sfx_laser_lp.uasset │ │ │ └── sfx_laser_start.uasset │ │ ├── mus_showcase_hands01.uasset │ │ └── sfx_ambient_outdoor_forest_ambix.uasset │ ├── Blueprints/ │ │ ├── HandsCharacter.uasset │ │ └── HandsGameMode.uasset │ ├── Environment/ │ │ ├── DustMotes/ │ │ │ ├── DustMotes_mat.uasset │ │ │ ├── DustMotes_system.uasset │ │ │ ├── DustMotes_vfx.uasset │ │ │ ├── T_Epic_sub_dustParticle.uasset │ │ │ ├── vfxm_Dust.uasset │ │ │ ├── vfxm_GradientCircle.uasset │ │ │ └── vfxm_GradientCircle_Inst.uasset │ │ ├── EnvMatParms.uasset │ │ ├── HT_cube_Tex.uasset │ │ ├── snow_envi/ │ │ │ └── materials/ │ │ │ └── front_rock_snow_bc.uasset │ │ ├── summer_envi/ │ │ │ ├── back_wall_bc.uasset │ │ │ ├── back_wall_mat.uasset │ │ │ ├── back_wall_sm.uasset │ │ │ ├── cieling_bc.uasset │ │ │ ├── cieling_mat.uasset │ │ │ ├── cieling_sm.uasset │ │ │ ├── cloud.uasset │ │ │ ├── cloud_sm.uasset │ │ │ ├── clouds_bc.uasset │ │ │ ├── collision.uasset │ │ │ ├── front_rock_bc.uasset │ │ │ ├── front_rock_mat.uasset │ │ │ ├── front_rock_sm.uasset │ │ │ ├── front_statue_bc.uasset │ │ │ ├── front_statue_mat.uasset │ │ │ ├── front_statue_sm.uasset │ │ │ ├── grass_bc.uasset │ │ │ ├── grass_mat.uasset │ │ │ ├── grass_sm.uasset │ │ │ ├── left_wall_bc.uasset │ │ │ ├── left_wall_mat.uasset │ │ │ ├── left_wall_sm.uasset │ │ │ ├── main_floor_bc.uasset │ │ │ ├── main_floor_mat.uasset │ │ │ ├── main_floor_sm.uasset │ │ │ ├── right_wall_bc.uasset │ │ │ ├── right_wall_mat.uasset │ │ │ ├── right_wall_sm.uasset │ │ │ └── vines_bc.uasset │ │ ├── vfxm_WindFoliage.uasset │ │ ├── vfxm_WindGrass_Inst.uasset │ │ ├── vfxm_WindVines_Inst.uasset │ │ └── vfxsm_vinesVtxAlpha.uasset │ ├── Hands/ │ │ ├── Models/ │ │ │ ├── HandMat.uasset │ │ │ ├── OculusHand_L.uasset │ │ │ ├── OculusHand_L_Skeleton.uasset │ │ │ ├── OculusHand_R.uasset │ │ │ └── OculusHand_R_Skeleton.uasset │ │ ├── TutorialHand.uasset │ │ ├── TutorialHandLeft.uasset │ │ └── TutorialHandRight.uasset │ ├── Input/ │ │ ├── Actions/ │ │ │ ├── AvatarLeftSystemGesture.uasset │ │ │ ├── LogGestureState.uasset │ │ │ ├── LogLeftHand.uasset │ │ │ ├── LogRightHand.uasset │ │ │ ├── TogglePoseRecording.uasset │ │ │ ├── TogglePoseRecordingLeft.uasset │ │ │ └── TogglePoseRecordingRight.uasset │ │ └── InputMappingContext.uasset │ ├── Levels/ │ │ ├── HandGameplayShowcase.umap │ │ ├── HandRecognitionShowcaseArt.umap │ │ ├── HandRecognitionShowcaseAudio.umap │ │ └── HandRecognitionShowcaseVFX.umap │ ├── Props/ │ │ ├── Blocks/ │ │ │ ├── Blocks001_Throwable_sm.uasset │ │ │ ├── Blocks01_bc.uasset │ │ │ ├── Blocks01_bc_Emissive.uasset │ │ │ ├── Blocks01_nm.uasset │ │ │ ├── InteractableBrick.uasset │ │ │ ├── NS_BrickImpact.uasset │ │ │ ├── T_Epic_SUB_UV_Small_Rocks.uasset │ │ │ ├── vfxm_Blocks01_Throwable.uasset │ │ │ ├── vfxm_Blocks01_Throwable_Inst.uasset │ │ │ └── vfxm_ParticleSpriteUnlitSubUV.uasset │ │ ├── Button/ │ │ │ ├── PushButtonBP.uasset │ │ │ ├── SFX/ │ │ │ │ ├── GameConsole_button_press_in_01.uasset │ │ │ │ └── GameConsole_button_press_out_04.uasset │ │ │ ├── ToggleButtonBP.uasset │ │ │ └── testbutton_sm.uasset │ │ ├── RingWeapon/ │ │ │ ├── 2HandedBeamProp_Mesh.uasset │ │ │ ├── InteractableArtefactHandle.uasset │ │ │ ├── InteractableTwoHandedArtefact.uasset │ │ │ ├── TwoHandArtefact_StartBeam.uasset │ │ │ ├── TwoHandedBeamSystem.uasset │ │ │ ├── vfxm_2HandedBeamProp.uasset │ │ │ ├── vfxm_OrbFloating.uasset │ │ │ ├── vfxm_TwoHandedArtefactBeam.uasset │ │ │ └── vfxm_TwoHandedArtefactBeam_Inst.uasset │ │ ├── Table/ │ │ │ ├── table_bc.uasset │ │ │ ├── table_mat.uasset │ │ │ └── table_sm.uasset │ │ ├── Target/ │ │ │ ├── TargetBP.uasset │ │ │ ├── sfx_spinning_target_01_loop.uasset │ │ │ ├── target_m.uasset │ │ │ ├── target_pentagon_sm.uasset │ │ │ ├── targets_bc.uasset │ │ │ └── targets_em.uasset │ │ ├── TeleportBeacon/ │ │ │ ├── Activate_vfx.uasset │ │ │ ├── NS_Activate.uasset │ │ │ ├── TeleportBeacon.uasset │ │ │ ├── TeleportationPad.uasset │ │ │ ├── TeleportationPadMesh.uasset │ │ │ ├── vfxm_ActivateGlow_Inst.uasset │ │ │ ├── vfxm_AlphaPanner.uasset │ │ │ ├── vfxm_TeleportBeaconPointerArrow.uasset │ │ │ ├── vfxmi_TeleportBeacon.uasset │ │ │ ├── vfxmi_TeleportPointerArrowRing.uasset │ │ │ ├── vfxsm_TeleportBeacon.uasset │ │ │ └── vfxsm_TeleportPointerArrowRing.uasset │ │ └── TetherBall/ │ │ ├── Art/ │ │ │ ├── ball_bc.uasset │ │ │ ├── ball_mat.uasset │ │ │ ├── ball_sm.uasset │ │ │ ├── tether_ball_base.uasset │ │ │ ├── tether_ball_base_mat.uasset │ │ │ ├── tether_ball_base_sm.uasset │ │ │ └── tether_mat.uasset │ │ ├── SFX/ │ │ │ ├── TetherBallHit.uasset │ │ │ ├── TetherBallSoundConcurrency.uasset │ │ │ ├── TetherBall_RubberThick_Imp_01.uasset │ │ │ ├── TetherBall_RubberThick_Imp_02.uasset │ │ │ ├── TetherBall_RubberThick_Imp_03.uasset │ │ │ ├── TetherBall_RubberThick_Imp_04.uasset │ │ │ ├── TetherBall_RubberThick_Imp_05.uasset │ │ │ ├── TetherBall_RubberThick_Imp_06.uasset │ │ │ ├── TetherBall_RubberThick_Imp_07.uasset │ │ │ ├── TetherBall_RubberThick_Imp_08.uasset │ │ │ └── TetherBall_RubberThick_Imp_09.uasset │ │ ├── TetherBallBP.uasset │ │ ├── ThetherBallPhysMat.uasset │ │ ├── VFX/ │ │ │ └── spawn_tetherballBase_ps.uasset │ │ └── tether_ball_sm.uasset │ └── SharedArt/ │ ├── Blue.uasset │ ├── FlatBlue.uasset │ ├── Red.uasset │ ├── T_Caustic01.uasset │ ├── T_WorleyNoise01.uasset │ └── TextBackground.uasset ├── HandGameplay.uproject ├── LICENSE ├── Platforms/ │ └── HoloLens/ │ └── Config/ │ └── HoloLensEngine.ini ├── Plugins/ │ ├── OculusHandTools/ │ │ ├── .gitattributes │ │ ├── .gitignore │ │ ├── Config/ │ │ │ └── FilterPlugin.ini │ │ ├── Content/ │ │ │ ├── BlueprintMacros.uasset │ │ │ ├── Button/ │ │ │ │ ├── IsButtonableInterface.uasset │ │ │ │ └── PushButtonBaseBP.uasset │ │ │ ├── Fonts/ │ │ │ │ ├── OculusSans-Black.uasset │ │ │ │ ├── OculusSans-BlackItalic.uasset │ │ │ │ ├── OculusSans-BlackItalic_Font.uasset │ │ │ │ ├── OculusSans-Black_Font.uasset │ │ │ │ ├── OculusSans-Bold.uasset │ │ │ │ ├── OculusSans-BoldItalic.uasset │ │ │ │ ├── OculusSans-BoldItalic_Font.uasset │ │ │ │ ├── OculusSans-Bold_Font.uasset │ │ │ │ ├── OculusSans-DemiBold.uasset │ │ │ │ ├── OculusSans-DemiBoldItalic.uasset │ │ │ │ ├── OculusSans-DemiBoldItalic_Font.uasset │ │ │ │ ├── OculusSans-DemiBold_Font.uasset │ │ │ │ ├── OculusSans-Light.uasset │ │ │ │ ├── OculusSans-LightItalic.uasset │ │ │ │ ├── OculusSans-LightItalic_Font.uasset │ │ │ │ ├── OculusSans-Light_Font.uasset │ │ │ │ ├── OculusSans-Medium.uasset │ │ │ │ ├── OculusSans-MediumItalic.uasset │ │ │ │ ├── OculusSans-MediumItalic_Font.uasset │ │ │ │ ├── OculusSans-Medium_Font.uasset │ │ │ │ ├── OculusSans-Normal.uasset │ │ │ │ ├── OculusSans-NormalItalic.uasset │ │ │ │ ├── OculusSans-NormalItalic_Font.uasset │ │ │ │ ├── OculusSans-Normal_Font.uasset │ │ │ │ ├── OculusSans-Regular.uasset │ │ │ │ ├── OculusSans-RegularItalic.uasset │ │ │ │ ├── OculusSans-RegularItalic_Font.uasset │ │ │ │ ├── OculusSans-Regular_Font.uasset │ │ │ │ ├── OculusSans-SemiBold.uasset │ │ │ │ ├── OculusSans-SemiBoldItalic.uasset │ │ │ │ ├── OculusSans-SemiBoldItalic_Font.uasset │ │ │ │ ├── OculusSans-SemiBold_Font.uasset │ │ │ │ ├── OculusSans-Thin.uasset │ │ │ │ ├── OculusSans-ThinItalic.uasset │ │ │ │ ├── OculusSans-ThinItalic_Font.uasset │ │ │ │ ├── OculusSans-Thin_Font.uasset │ │ │ │ ├── OculusSans-Ultra.uasset │ │ │ │ ├── OculusSans-UltraItalic.uasset │ │ │ │ ├── OculusSans-UltraItalic_Font.uasset │ │ │ │ └── OculusSans-Ultra_Font.uasset │ │ │ ├── HandDebug/ │ │ │ │ ├── HandDebugActor.uasset │ │ │ │ ├── HandDebugWidget.uasset │ │ │ │ ├── STADIUM_Black-01.uasset │ │ │ │ └── WidgetInvisibleMaterial.uasset │ │ │ ├── Hands/ │ │ │ │ ├── HandsCharacterBase.uasset │ │ │ │ ├── HandsCharacterHandState.uasset │ │ │ │ ├── TeleportSelector.uasset │ │ │ │ └── TutorialHand.uasset │ │ │ ├── RespawnProps/ │ │ │ │ ├── FloorIdentifier.uasset │ │ │ │ └── RespawnFromFloor.uasset │ │ │ └── Selectors/ │ │ │ ├── AimingGlow.uasset │ │ │ ├── DefaultAimingActor.uasset │ │ │ └── DefaultAimingSphere.uasset │ │ ├── OculusHandTools.uplugin │ │ ├── README.md │ │ ├── README_HandInput.md │ │ ├── README_HandPoseRecognition.md │ │ ├── README_HandTrackingFilter.md │ │ ├── README_Interactable.md │ │ ├── README_OculusUtils.md │ │ ├── README_ThrowAssist.md │ │ └── Source/ │ │ ├── HandInput/ │ │ │ ├── CameraHandInput.cpp │ │ │ ├── CameraHandInput.h │ │ │ ├── EnumMap.h │ │ │ ├── HandInput.Build.cs │ │ │ ├── HandInput.cpp │ │ │ ├── HandInput.h │ │ │ ├── HandInputModule.cpp │ │ │ ├── HandInputModule.h │ │ │ └── QuatUtil.h │ │ ├── HandTrackingFilter/ │ │ │ ├── HandTrackingFilter.Build.cs │ │ │ ├── HandTrackingFilter.cpp │ │ │ ├── HandTrackingFilter.h │ │ │ ├── HandTrackingFilterComponent.cpp │ │ │ ├── HandTrackingFilterComponent.h │ │ │ └── QuatUtil.h │ │ ├── OculusHandPoseRecognition/ │ │ │ ├── OculusHandPoseRecognition.Build.cs │ │ │ ├── Private/ │ │ │ │ ├── FRecordHandPoseAction.h │ │ │ │ ├── FWaitForHandGestureAction.h │ │ │ │ ├── FWaitForHandPoseAction.h │ │ │ │ ├── HandGesture.cpp │ │ │ │ ├── HandGestureRecognizer.cpp │ │ │ │ ├── HandPose.cpp │ │ │ │ ├── HandPoseRecognizer.cpp │ │ │ │ ├── HandRecognitionFunctionLibrary.cpp │ │ │ │ ├── HandRecognitionGameMode.cpp │ │ │ │ ├── OculusHandPoseRecognitionModule.cpp │ │ │ │ └── PoseableHandComponent.cpp │ │ │ └── Public/ │ │ │ ├── HandGesture.h │ │ │ ├── HandGestureRecognizer.h │ │ │ ├── HandPose.h │ │ │ ├── HandPoseRecognizer.h │ │ │ ├── HandRecognitionFunctionLibrary.h │ │ │ ├── HandRecognitionGameMode.h │ │ │ ├── OculusHandPoseRecognitionModule.h │ │ │ └── PoseableHandComponent.h │ │ ├── OculusInteractable/ │ │ │ ├── OculusInteractable.Build.cs │ │ │ ├── Private/ │ │ │ │ ├── AimingActor.cpp │ │ │ │ ├── HandGrabbingComponent.cpp │ │ │ │ ├── Interactable.cpp │ │ │ │ ├── InteractableFunctionLibrary.cpp │ │ │ │ ├── InteractableSelector.cpp │ │ │ │ ├── OculusInteractableModule.cpp │ │ │ │ ├── TransformString.cpp │ │ │ │ └── TransformString.h │ │ │ └── Public/ │ │ │ ├── AimingActor.h │ │ │ ├── HandGrabbingComponent.h │ │ │ ├── Interactable.h │ │ │ ├── InteractableFunctionLibrary.h │ │ │ ├── InteractablePose.h │ │ │ ├── InteractableSelector.h │ │ │ └── OculusInteractableModule.h │ │ └── OculusThrowAssist/ │ │ ├── OculusThrowAssist.Build.cs │ │ ├── Private/ │ │ │ ├── OculusThrowAssistModule.cpp │ │ │ ├── ThrowingComponent.cpp │ │ │ └── TransformBufferComponent.cpp │ │ └── Public/ │ │ ├── OculusThrowAssistModule.h │ │ ├── ThrowingComponent.h │ │ └── TransformBufferComponent.h │ └── OculusUtils/ │ ├── OculusUtils.uplugin │ └── Source/ │ └── OculusUtils/ │ ├── OculusUtils.Build.cs │ ├── Private/ │ │ ├── ContinuousOverlapSphereComponent.cpp │ │ ├── OculusDeveloperTelemetry.cpp │ │ ├── OculusUtilsLibrary.cpp │ │ └── OculusUtilsModule.cpp │ └── Public/ │ ├── ContinuousOverlapSphereComponent.h │ ├── OculusDeveloperTelemetry.h │ ├── OculusUtilsLibrary.h │ └── OculusUtilsModule.h ├── README.md └── Source/ ├── HandGameplay/ │ ├── HandGameplay.Build.cs │ ├── HandGameplay.cpp │ ├── HandGameplay.h │ ├── HandGameplayGameModeBase.cpp │ ├── HandGameplayGameModeBase.h │ └── UpdatePermissions.xml ├── HandGameplay.Target.cs └── HandGameplayEditor.Target.cs