NoitomHi5InertiaToFingerMuscle

Noitom Hi5を用いてHumanoidモデルの指を動かすことが可能になるスクリプト。
demo

概要

公式から出されているNoitom Hi5のSDK内にあるサンプルスクリプトは、特定のボーン構造をしているモデルのみ正常に動作するように作られています。
またTransformを直接変更しているため、パフォーマンス的にあまりよろしくありません。
さらに手首及び全ての指ボーンを個別に登録しなければいけないため、セットアップが非常に大変です。

そこで、TransformではなくHumanPose.musclesを変更するようにカスタマイズすることで、Humanoidモデルであればどんなモデルでも正常に指を動かすことができるようにし、セットアップも非常に簡略化したスクリプトを作成しました。
もちろんVRMでも正常に動作することを確認しています。

使い方

  1. ReleasesからUnityPackageをダウンロードしてインポートする。
  2. Noitom Hi5 Unity SDKと(必要であれば)SteamVR Pluginをダウンロードしてインポートする。
  3. 適当なGameObjectに NoitomHi5InertiaToFingerMuscle コンポーネントをアタッチする。
  4. 指を動かしたい対象のHumanoid Animatorを Animator に登録する。
  5. 左右どちらか片方の指を動かしたい場合は HandType から設定する。Both だと左右両方の指が動きます。
  6. (非推奨) 手首を動かしたい場合は HandRotationWeight に適当な値を設定する。
  7. Noitom Hi5を接続してエディタを再生する。
  8. エンジョイ!

動作環境

  • Unity2018.2.21f1
  • Noitom Hi5 Unity SDK v1.0.0.655.16
  • SteamVR Plugin v2.2.0
    Noitom Hi5 Unity SDKのサンプルスクリプトを実行するために必要ですが、もしサンプルスクリプトを必要としないのであれば不要です。

FAQ

手首が変な方向に曲がるんだけど

手首の回転のみHumanPose.musclesに落とし込むことができませんでした。
その為、手首を回転させる処理のみSDK内にあるサンプルスクリプトと同じ処理をしています。
HandRotationWeight の値を 0 にして、Perception NeuronやVive Trackerなどの外部デバイスを用いて手首を回転させてあげるのが良いかと思います。

ライセンス

本リポジトリはMITライセンスの下で公開しています。

本リポジトリのREADME及びサンプルには、ユニティちゃんライセンス条項の元に提供されているコンテンツを含んでいます。
これらのコンテンツを利用される場合は、同梱しているライセンスファイルに従ってくさだい。
UCLLogo
© Unity Technologies Japan/UCL