Noitom Hi5を用いてHumanoidモデルの指を動かすことが可能になるスクリプト。
公式から出されているNoitom Hi5のSDK内にあるサンプルスクリプトは、特定のボーン構造をしているモデルのみ正常に動作するように作られています。
またTransformを直接変更しているため、パフォーマンス的にあまりよろしくありません。
さらに手首及び全ての指ボーンを個別に登録しなければいけないため、セットアップが非常に大変です。
そこで、TransformではなくHumanPose.musclesを変更するようにカスタマイズすることで、Humanoidモデルであればどんなモデルでも正常に指を動かすことができるようにし、セットアップも非常に簡略化したスクリプトを作成しました。
もちろんVRMでも正常に動作することを確認しています。
- ReleasesからUnityPackageをダウンロードしてインポートする。
- Noitom Hi5 Unity SDKと(必要であれば)SteamVR Pluginをダウンロードしてインポートする。
- 適当なGameObjectに
NoitomHi5InertiaToFingerMuscle
コンポーネントをアタッチする。 - 指を動かしたい対象のHumanoid Animatorを
Animator
に登録する。 - 左右どちらか片方の指を動かしたい場合は
HandType
から設定する。Both
だと左右両方の指が動きます。 - (非推奨) 手首を動かしたい場合は
HandRotationWeight
に適当な値を設定する。 - Noitom Hi5を接続してエディタを再生する。
- エンジョイ!
- Unity2018.2.21f1
- Noitom Hi5 Unity SDK v1.0.0.655.16
- SteamVR Plugin v2.2.0
Noitom Hi5 Unity SDKのサンプルスクリプトを実行するために必要ですが、もしサンプルスクリプトを必要としないのであれば不要です。
手首の回転のみHumanPose.musclesに落とし込むことができませんでした。
その為、手首を回転させる処理のみSDK内にあるサンプルスクリプトと同じ処理をしています。
HandRotationWeight
の値を 0
にして、Perception NeuronやVive Trackerなどの外部デバイスを用いて手首を回転させてあげるのが良いかと思います。
本リポジトリはMITライセンスの下で公開しています。
本リポジトリのREADME及びサンプルには、ユニティちゃんライセンス条項の元に提供されているコンテンツを含んでいます。
これらのコンテンツを利用される場合は、同梱しているライセンスファイルに従ってくさだい。
© Unity Technologies Japan/UCL