-
Notifications
You must be signed in to change notification settings - Fork 0
CameraRig
AmaneYamaguchi edited this page Oct 31, 2024
·
5 revisions
各VR用パッケージ(Oculus IntegrationやXR Interaction Toolkit)等はトラッキングしたHMDやトラッカの位置・姿勢をCameraRigというゲームオブジェクト群の Transform に代入する機能を持ちます.
CameraRigの構造はVR用パッケージにより異なりますが,PoseSynthはこれらのCameraRigの Transform に固有の番号( enum TrackerType )を対応させます.
さらにPoseSynthは Transform と TrackerType の組をまとめたものを,LocalCameraRig というクラスにまとめます.
PoseMapper 等のアバタの動作生成を行うクラスは LocalCameraRig に含まれる TrackerType の中からアバタの動作生成に必要なものを検索して参照します.
そのため,PoseSynthはVR用パッケージの種類に依存せず使用できます.
graph LR
VRPackage -->|位置・姿勢を代入| HMD
VRPackage -->|〃| LeftHand
VRPackage -->|〃| RightHand
HMD <-.->|bind| HeadIKTarget
LeftHand <-.->|bind| HandLeftIKTarget
RightHand <-.->|bind| HandRightIKTarget
HeadIKTarget -->|Transformの位置を入力として参照| VRIKMapper
HandLeftIKTarget -->|〃| VRIKMapper
HandRightIKTarget -->|〃| VRIKMapper
VRPackage{{VR用パッケージ}}
subgraph LocalCameraRig
HMD("HMD Transform")
LeftHand("Left Hand Transform")
RightHand("Right Hand Transform")
HeadIKTarget("TrackerType.HeadIKTarget")
HandLeftIKTarget("TrackerType.HandLeftIKTarget")
HandRightIKTarget("TrackerType.HandRightIKTarget")
end
VRIKMapper["アバタの動作生成用クラス"]
新しい TrackerType を追加して使用することも可能です.