Noitom Hi5をVTuber案件で投入したのでレビューしつつ便利スクリプトを書いた

概要

PerceptionNeuronの開発元でもあるNoitomが手袋デバイスとしてHi5を発売しています。国内ではアユートさんが国内代理店として取り扱っています。

www.aiuto-jp.co.jp

手の指だけで15万円!!と結構良いお値段がする製品なのですが、試すことが出来ないか考えていたところ、 株式会社アユートさんより特別にお借りすることができました。 また株式会社BitStar さんより現場運用を試してもらう機会を頂くことが出来ました。

僕以外にもVTuber案件で指をトラッキングする手段を検討している人、結構多い印象があります。

このエントリを読むことで

  • 技術担当者は内部の挙動を察することが出来る
  • 非技術担当者は技術担当者に「Hi5こういう感じらしいけど、買いですか?」ってジャッジを委ねられる

みたいなお役に立てたら嬉しいです。

ここから宣伝

アユートさんはHi5マニュアルの和訳も行っていて、代理店として誠実な仕事をされています。「この製品は取り扱わないのか」みたいな相談も出来るので、みんなもアユートさんから製品を買いましょう。

BitStar さんは僕のコードを実地検証、フィードバック、改善してくれました。既に大規模イベント含む幾つかの案件でHi5込みの全身トラッキングを使用中です。 VTuber案件の企画立ち上げから技術面の相談も出来るそうです。お困りの企業さんは是非問い合わせ窓口 ( https://corp.bitstar.tokyo/contact ) からどうぞ。(もしくはDM戴ければ担当者まで繋げます)

宣伝終わり

最初にまとめ

  • Hi5自体はVTuber用というよりインタラクションを行うViveコントローラ置き換え用、みたいな意図を感じる
  • なのでVTuber案件に投入するときはちょっと調整が必要(本エントリでスクリプト配布します)
  • 適用するキャラクターモデル手指のボーンは姿勢リセットしていてほしい(ユニティちゃんはダメだった…)
  • 親指の向きは Hi5が特殊(パーではなく手刀の形)なので、モデル側で合わせるかスクリプト側で吸収する
  • ジャイロセンサが入っているだけです。なので磁気ノイズ耐性はPerception Neuronと同等程度だが、SDKから取得できる指の角度が制限掛かっている為骨折していないように見える。
  • マウスやキーボードを長時間触るとノイズがつらい
  • キャリブレーションは平易なので上手くいくまでトライすること。(何もして無くても特定の指がピンと立ったり寝たりするのは、キャリブレーションミスです)
  • 減磁は30分に1度くらいやると良い

Hi5自体の精度はこのくらいまで詰められます。

運用など

演者さんにこれを見せてキッチリキャリブレーションしてもらいましょう。

www.youtube.com

サイズはほとんどの日本人男女はMで良いです。

レシーバは手袋と近づけて下さい(通信環境が悪いところだと値が飛びます)

動作確認用にVive無しで動くキャリブレーションバイナリ

F1キー押したらBとPのキャリブレーションが自動で実行されます。Vive刺してない普通のノートパソコンとかでも動くはず。

www.dropbox.com

Hi5のキャリブレーションデータは C:\Users\UserName\AppData\Roaming\HI5\CalibrationData 以下に保存されている (つまり、この動作確認用exeでキャリブレーションしたデータを、他のアプリからも参照する)

Hi5をUnityのVTuber案件で使うためのセットアップとスクリプト

CustomHI5_InertiaInstance.cs · GitHub

このスクリプトを LeftHandというEmptyObjectに一個 RightHandというEmptyObjectに一個 づつアタッチしてください f:id:izm_11:20181008010203p:plain

f:id:izm_11:20181008010322p:plain

後はお手持ちの指以外のトラッキングシステムと組み合わせてあげてください。

このカスタムスクリプトは通常のHi5スクリプトに対して追加でこういった機能を含んでいます。

  1. 親指特殊補正(thumbPreEuler , thumbAfterEulerを手動で書き換えて下さい)
  2. 指のパー補正 (Calibration Keyで行います。後述の手首向きの初期値も合せて指定します。P,Bポーズとは別の3段階目の補正です)
  3. 手首向き補正 (手首の向きをリセットします。2.と合せて行います。演者さんにTポーズをしてもらってF2キーを押します。演者さんが向く方向は補正後の手首向きを見て下さい)
  4. Humanoidのキャラクターを前提にした指ボーン自動割り当て (HandBoneのelement[0]にキャラのRootを割り当てて右クリックから「Automatic Set Handbone」を選んで下さい)

導入結果の評価

表情と同じくらい手の形は感情を表現するので(VRChatで手はOculusTouchを使うヘビーユーザーがいるのを参照)15万円のハードウェア代はペイすると思います。 なにより技適が取得されていて、大っぴらに使えますからね…

後はSDKから生のジャイロの値が取れるか、少なくともオイラー角じゃなくてクオータニオンの値が取れるとすっごくうれしいです!

補足

複数人同時運用…PC1台ごとにHi5は1個しかペアリング出来ないため、PCを複数台用意してPhotonとかで同期してHumanPose経由で手袋のデータを送ると楽です。