UnityのXR Mecanim IK Plusを解説【色んなポーズが簡単に可能です】

UnityのXR Mecanim IK Plus(無料)を使えばVRゴーグルで色んなポーズが簡単に可能って本当?
XR Mecanim IK Plusの導入方法はインストールした後ファイルを上書き保存するって本当?
VRoidで使用する際は設定や微調整に注意って本当?
こんな疑問に答えます。

僕はVRoidで漫画が作れるiPhoneアプリComicamを開発して公開中です。
そんな僕が解説していきます。

作業環境

Unity  2018.2.10f1
HTC Vive

UnityのXR Mecanim IK Plusを解説【導入方法+色んなポーズが簡単に可能です】

XR Mecanim IK Plusをダウンロードする

XR Mecanim IK Plusの作者さんのページから無料でダウンロードします。
» 参考: XR Mecanim IK Plus

ライセンスの詳細はリンク先に文章で書かれているので要参照です。

Unity Packageをダブルクリックする

アセットを導入したいプロジェクトをUnityで開いた状態で、ダウンロードしたUnitypackageをダブルクリックします。
いつも通りインストールされます。

プロジェクトの設定ファイルをXR Mecanim IK Plusのものと置き換える

エクスプローラーで作業中のUnityのプロジェクト全体のフォルダを探し開きます。
その中のAssetsフォルダを開きます。

XR_MecanimIKPlusフォルダを開きます。

SettingFiles.zipを開きます。

中にInputManager.assetとProjectSettings.assetの2点が入ってるのを確認します。

この2つをProjectSettingsのフォルダに移し、上書き保存して置き換えます。
上書きしますか?と聞かれるので「はい」でOKです。

ProjectSettingsのフォルダの場所はここです。
Assetsと同じ一番上の階層です。

これでXR Mecanim IK Plusのインストール作業は完了です。

デモシーンでUnityちゃんを動かす

XR Mecanim IK Plusのフォルダが出現しているので、その中のDemo_01を開きます。

ユニティちゃんの3Dモデルデータも別途ダウンロードしてインポートします。
» DATA DOWNLOAD(Unity Technologies Japan)

これで再生実行するとHTC Viveでユニティちゃんを動かしてみることができます。

こんなポーズが可能です

足もわりと動かせるので自由ですね。

Viveコントローラーへの割り当て

名称 内容
右手メニューボタン 位置のリセット
左手メニューボタン シーンのリセット
右手グリップ 押したままで足を連動させて動かす
左手グリップ 押したままで足を連動させて動かす

グリップによる足の動かし方は少しコツがいる感じですが何回かやると慣れます。
スクリプトを書けばボタンタップへの表情などの割り当てが可能です。

UnityでMecanimのIK機能をさらに使いこなすコツ【VRMでも動くようにする】

ここからVRoid(VRM)でも綺麗に動くように設定していきます。

ユニティちゃんを非表示にしてVRoidモデルをインポートして配置します。
基本的にユニティちゃんを真似しながら設定を埋めていきます。
ほとんどそのままで大丈夫ですが書き換える部分は下の表に書きました。

各項目の意味は作者さんのサイトを参照ください。

XR Camera Rigの設定

 項目 VRoid適用時に行った操作
Transform(Y) VRoid標準の女の子なら1.45(145cm)くらいでOK
XR_Basic_Function_CS
Recent Input Name
Reload Input Name

IK_Target_Body_Linkage_CSの設定

項目 VRoid適用時に行った操作
Eye Transform
Left Hand Target
Right Hand Target
Left Foot Target
Right Foot Target
Pivot Transform
Offset Y
Offset Z
Max Torsion Angle
Arm Length

IK_Target_Hand_LとRの設定(IK_Hand_Linkage_CS)

 項目  VRoid適用時に行った操作
Is Left
Offset Angle

ここにスクリプトを追加すればコントローラの操作をカスタマイズできます。

IK_Target_Hand_LとRの設定(IK_Foot_Linkage_CS)

 項目  VRoid適用時に行った操作
Body Target
Hand Target
Ground Offset
Follow Speed
Offset X
Offset Z
Input Name

IK_Pivot_CSの設定

胴体の位置・角度を算出するためのオブジェクトとのことです。

IK_CSの設定

 項目  VRoid適用時に行った操作
 

各種Target

 

 上の画像通りに選択
Look At Weight
Left Hand Target
Right Hand Target
Look At Weight
Left Hand Pos Weight
Left Hand Rot Weight 0.5に設定
Right Hand Pos Weight
Right Hand Rot Weight 0.5に設定
Left Foot Pos Weight
Left Foot Ros Weight
Right Foot Pos Weight
Right Foot Ros Weight

IK_Head_Linkage_CSの設定

 項目  VRoid適用時に行った操作
Eye Transform Cameraで検索して設定
Head Transform Headで検索して設定
Neck Transform Neckで検索して設定
Switch Axis XZ 無効にする

ここは自分のVRoidモデルのパーツを指定するので注意です。

ミラーの位置の設定

ミラーの位置をZ座標「9」に移動しました。
360度写真の背景などを配置したら、重なってしまったので手前に出しました。

ミラー画面が見えない場合

ゴーグルの初期軌道がずれてるので、めんどいけど再起動する

XR Mecanim IK PlusでVRoidが全く動かない時に確認すること

Unityの起動が重い時もあるので何度か再生停止を繰り返す

動かないように見えて実は重いだけのこともよくあります。
一時停止ボタンを連打したり、再生し直したりしてみましょう。
エラーメッセージを見て原因っぽい項目をストップさせてみたり、VRゴーグルを再起動させてみましょう。

リップシンクなどの追加で入れたスクリプトが重い場合もあるので、それらもオンオフして試してみるといいと思います。

XR Mecanim IK PlusでVRoidを使う時の課題点

首の動きが少し不自然になるのを修正する

自分が背伸びするとVRoidが首を縮める、自分か屈むとVRoidが背伸びをするという状態になってしまっています。
首の上げ下げの方向は間違いがないので頭の位置調整をどうにかいじればいいのかなと模索中です。

体に手が重なってめり込んでしまう

胸に手を当てるなどの動作をするときに手が体を貫通してしまいがちです。
気を付けて撮り直しすれば問題はないですが、できれば当たり判定も設定するといいのかなと思ってます。

足の動きの付け方には慣れが必要

Mecanim IKでも足は全然動きますね。
足を少し踏み込む程度の振付なら余裕でできます
ただ足が動く範囲を超えるとすぐ変形してしまうので、大きく動かしたい場合は数値の調整が必要だと感じます。

Viveの通信が途切れると腕がブツッと飛ぶ

VRゴーグルの通信が切れるせいなのかわからないですが、たまに腕がビクッと切り替わってしまうことがあります。
なるべく途切れないように遮る物がない綺麗な部屋でやるか、何度か再演して編集しないとダメかなと思います。

単純に踊る才能がない、振付するのがむずい

やってて思ったんですが、ダンスってむずいですね。
IKで人間らしい動きを再現してくれるとしても、元の人間が動けないとカッコ悪い動きになります。
踊らないで軽く動くだけにしても、実際の俳優さんがやっているように何テイクか撮影するのは必須だと思います。
Unityで録ることで後から編集できるのでカメラアングルなどで誤魔化すのも可能ですし、アニメーションファイルと組み合わせるのもいいかなと思います。

VRoidで使えるアニメーションの素材がどこまであるか知っておきたい

歩く・走る・驚くなどの定番のアニメーションクリップが揃っていれば組み合わせやすいですよね。
Unityちゃんには元々いくつか入っているのですごく便利です。
なるべく安価でライセンスも自由なものがあるか探してみたいと思っています。
自分で作れなくもなさそうです。

手の形・顔の表情は後付けで全然OKな気がします

1回の撮影でこれで体全体のおおまかな動きが撮れるので、それだけでだいぶ制作が楽になります。
歌を歌う場合はリップシンクや振り付けを優先させて記録した方がいい気がします。
手の形や顔の表情はタイムラインに置くだけで一瞬で編集できるので無理してリアルタイムでコントローラ操作しなくてもいいかなって思います。

顔の表情は認識技術がどんどん発展しているので近いうちにキャプチャできるようになる予感がします。
FaceRigやiPhone Xでの顔認識情報は僕が調べた限りでは転用するのは難しいみたいです。

MecanimのIK機能を理解したら次にすること

これでUnity上でモデルを動かせるようになるので凝ったVTuber動画・ミュージックビデオの撮影・VRアプリ制作などできることの幅が広がります。

リップシンクの付け方はこちらの記事で解説しています。
» Unityのリップシンクを解説【口の形を発音ごとに選択します】

動画用にモーションを記録する方法はこちらの記事で解説しています。
» Unityでモーションキャプチャする方法【1ボタンで記録+編集可能】

細かい表情やリップシンクを後からじっくり編集する方法はこちらで解説しています。
» UnityのTimelineを解説【キャラの表情や動きを5秒で編集可能です】

というわけで今回は以上です。
マイケルジャクソンレベルは無理ですがT.M.Revolutionごっこは余裕でできます。

関連記事HTC Viveのセットアップ作業の全まとめ【購入からプレイまで徹底解説】

関連記事HTC Viveを購入する方法、ベストな販売店と在庫確認方法を解説

-Unity