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ごっこは余裕でできます。