---
# System prepended metadata

title: HandsInteractionTrainScene

---

# HandsInteractionTrainScene

このシーンでは, ハンドトラッキングを実装して物理システムのオブジェクトとのインタラクションのために手を使用する方法を示している. このシーンでユーザーは手を使って近くまたは遠くのオブジェクトとやり取りし, シーンに影響を与えるアクションを実行できる.


## 独自のアプリでサンプルを使用する
次のプレハブをシーンに配置する. `NearFieldButton`はどっちでもいいかも?

- `Oculus/SampleFramework/Core/HandsInteraction/Prefabs/InteractableToolsSDKDriver.prefab`: プレハブはツールを作成し, 他のInteractableオブジェクトとのインタラクションを可能にする.
    - `InteractableToolsCreator` : 指先とレイのツールを作成する. このツールで近距離および遠距離のオブジェクトとやり取りできる.
        - `LeftHandTools`
        - 'RightHandTools'
    - `InteractableToolsInputRouter`: シーン内の全てのツールを管理し, レイの代わりに指先(poke)のツールを使用する必要がある場合をカバーする.

- `Oculus/SampleFramework/Core/HandsInteraction/Prefabs/Hands`: 手
- `Oculus/SampleFramework/Usage/HandsTrainExample/Prefabs/NearFieldButton`: オブジェクトの位置を手で触れやすそうな位置になるように調整する.


## ハンドトラッキング関連のクラスのpublicなプロパティとかメソッドとかを把握したい


### OVRHand

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| enum | Hand | --------  |
| enum | HandFinger | --------  |
| enum | TrachingConfidence | --------  |
| bool | IsTracked | --------  |
| bool | IsSystemGestureInProgress | --------  |
| bool | IsPointerPoseValid | --------  |
| Transform | PointerPose | --------  |
| float | HandScale | --------  |
| TrackingConfidence | HandConfidence | --------  |

メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |
| bool | GetFingerIsPinching(HandFinger) | --------  |
| float | GetFingerIsPinchStrength(HandFinger) | --------  |
| TrackingConfidence | GetFingerConfidence(HandFinger) | --------  |

### OVRSkeleton

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| interface | IOVRSkeletonDataProvider | --------  |
| struct | SkeletonPoseData | --------  |
| enum | SkeletonType | --------  |
| enum | BoneId | --------  |
| IList<OVRBone> | Bones | --------  |
| IList<OVRBone> | BindPoses | --------  |
| IList<OVRBoneCapsule> | Capsules | --------  |

メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |
| BoneId | GetCurrentStartBoneId() | --------  |
| BoneId | GetCurrentEndBoneId() | --------  |
| BoneId | GetCurrentMaxSkinnableBones() | --------  |
| BoneId | GetCurrentNumSkinnableBones() | --------  |

#### OVRBone

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| OVRSkeleton.BoneId | Id | --------  |
| short | ParentBoneIndex | --------  |
| Transform | Transform | --------  |

#### OVRBoneCapsule

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| short | BoneIndex | --------  |
| Rigidbody | CapsuleRigidbody | --------  |
| CapsuleCollider | CapsuleCollider | --------  |


### OVRSkeletonRenderer

### OVRMesh

### OVRMeshRenderer

### Hands

_handPrefabがエディターで設定されている場合, _leftHandと_rightHandの両方を設定する必要はなく、エディターでは表示されません。 OVRHandsEditor.csを参照してください

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| static Hands     | Instance     | シングルトン.  |
| HandVisualMode     | VisualMode     |    |
| Hand     | LeftHand     |    |
| Hand     | RightHand     |    |
| enum     | HandsVisualMode      |    |
| bool     | IsInitialized     |    |


メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |
| void      | SwitchVisualization()     |    |


### Hand


| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| HandSkelton     | Skelton     | Skeltonコンポーネント   |
| HandPhysics     | Physics     | Physics bone capsule colliderコンポーネント    |
| SkeltonVisualizer     | SkeltonVis     | Skelton visualizerコンポーネント   |
| HandMesh     | HandMash     | Meshコンポーネント   |
| OVRPlugin.Hand     | HandType      |    |
| enum     | HandTrackingConfidence      |    |
| bool     | IsInitialized     |    |
| bool     | IsTracked     |    |
| SkinnedMeshRenderer     | HandSkinedMeshRenderer     |    |
| Mesh     | Mesh     |    |
| float     | ScaledAlpha     |    |
| Hand.HandTrackingConfidence     | HandConfidence     |    |
| PointerState     | Pointer     |    |
| struct     | PointerState     |    |
| OVRPlugin.HandState     | State     |    |


メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |
| float      | PinchStrength(OVRPlugin.HandFinger finger)     |    |
| void      | ShowSkelton(Hands.HandsVisualMode mode)     |    |
| static Hand.HandTrackingConfidence      | OVRPluginConfidenceToHand(OVRPlugin.TrackingConfidence confidence)     |    |


### HandMesh


| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| Mesh     | Mesh     |    |
| bool     | IsInitialized     |    |
| SkinnedMeshRenderer     | HandSkinedMeshRenderer     |    |
| Mesh     | Mesh     |    |


メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |
| void      | UpdatePose()     |    |
| void      | EnableMeshRenderer(Hands.HandsVisualMode mode)     |    |
| static OVRPlugin.MeshType      | GetHandMeshTypeFromOVRHandType(OVRPlugin.Hand hand)     |    |

### HandSkelton

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| bool     | IsInitialized     |    |
| IList<Transform>     | Bones     |    |
| SkinnedMeshRenderer     | HandSkinedMeshRenderer     |    |


メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |
| bool      | InitializeSkelton(ref OVRPlugin.Skeleton)     |    |
| bool      | UpdatePose(OVRPlugin.HandState)     |    |
| static OVRPlugin.BoneId      | GetDistalBone(OVRPlugin.BoneId)     |    |
| static bool      | IsDistalBone(OVRPlugin.BoneId)     |    |
| static OVRPlugin.BoneId      | GetTip(OVRPlugin.BoneId)     |    |
| static int      | GetTipParentIndex(OVRPlugin.BoneId)     |    |
| static bool      | IsDistal(OVRPlugin.BoneId)     |    |
| static OVRPlugin.SkeletonType | (OVRPlugin.MeshType) |    |
| static OVRPlugin.SkeletonType | GetSkeletonTypeFromHandType(OVRPlugin.Hand)     |    |
| static OVRPlugin.Hand | GetHandFromMeshType(OVRPlugin.MeshType)     |    |


### HandPhysics

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| bool     | IsInitialized     |    |

メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |
| List<CapsuleInfo>| GetCapsulesPerBone(OVRPlugin.BoneId)     |    |
| bool      | InitializePhysics(ref OVRPlugin.Skeleton)     |    |
| void      | UpdatePose()     |    |


### SkeltonVisualizer
生のスケルトンを表示するゲームオブジェクト

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |
| bool     | EnableVisualization     |    |
| bool     | IsInitialized     |    |

メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |


### InteractableToolsCreator
シーンに指定されているすべての対話可能なツールを生成します。

| 型       | 変数名    | is 何   |
| -------- | -------- | --------  |

メソッド
| 戻り値の型       | メソッド名(引数の型)    | is 何   |
| -------- | -------- | --------  |



[Document](https://developer.oculus.com/documentation/quest/latest/concepts/unity-sf-handtracking/)