Skip to content

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は TransformTrackerType の組をまとめたものを,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["アバタの動作生成用クラス"]
Loading

新しい TrackerType を追加して使用することも可能です.

Clone this wiki locally