はじめに
突然ですが、
VRコスプレデビューしましたー!
二丁拳銃で遊んで大失敗するグレイちゃん (VRコスプレ、確かに楽しい) #UE4 pic.twitter.com/Ei9A0d7mLg
— おかず (@pafuhana1213) 2017年1月29日
(いや、まあ、便乗してやってみたレベルですが…)
今回使用したのは
UE4用FullBodyIKプラグイン「IKinema RunTime Plugin」です。
www.ikinema.com
この記事を書いた時期だと↓の動画で話題になっていました
www.youtube.com
IKinemaは様々なプロジェクトで使用されているアニメーション用プラグインですが、
UE4を用いるインディーズ向けに格安なライセンスが用意されています。
なんと99ドル!…いやいや格安ですって!
- バイナリ形式での配布
- 99ドル(買い切り)
- フォーラムでのサポートのみ
- Launcherで配布されているエンジンのみに対応
- PCサポートのみ
- 14日間無料体験可能
単純なIKならUE4標準で用意されていますが、
全身を取り扱うFullBodyIKの実装はかなり難易度が高いです。
ということで、早速このプラグインを試してみましょう!
Ikinemaへのアカウント登録とプラグインのダウンロード
まずはIKinemaのインディーズライセンスを選択します。
IKinema | Motion Capture, VR, Games - Full body IK for VR
次に、14日間の無料体験版を選択します。
アカウント登録ページが表示されるので、
各項目を埋めた後に下のSUBMITボタンを押します。
その後、入力したメールアドレスに登録メールが届くので、
その中にあるリンクをクリックして登録を完了して下さい。
その後、先程のアカウント登録ページを開き、
上の方にあるメールアドレス・パスワード入力欄を埋めて実行すると、
プラグインのダウンロードページに飛ぶのでプラグインをダウンロードします。
そして、そのファイルの中にある4.XX(XXは対応しているバージョン)の中が
IKinemaプラグインです。エンジン又はプロジェクトのPluginsフォルダに入れて下さい。
これでUE4上でIKinemaプラグインを使う準備が出来ました。
以降は、公式サイトのチュートリアルに従ってセットアップを進めます。
www.ikinema.com
IKinema用リグの作成
まず、IKinema用の専用リグを作成します。
作成したIKinema Rigを開きます。
(注:IKinema Rigを開いた状態でレベルを実行すると落ちます! 4.14現在)
ここから、以下のボーンに対してTaskを紐付けます。
各Taskにモーションコントローラからの値を渡すことで、FullBodyIKを実現します。
- 頭(VR HMD Task)
- 両手(Left/Right Motion Controller Task)
- お尻(Hip Task)
- 両膝(Knee Task)
- 両足(Foot Task)
の前に、IKinemaリグでは不要なボーンを片っ端から削除します。
(例:指、髪の毛、IK用ボーン、服類、おっぱいなどなど…)
参考までにグレイマンだとこのぐらいまで削除します。
一通り削除できたら、↑の項目ごとにTaskを紐付けます。
左手の場合は、まず左手用のボーンを選択し右クリックメニューからTaskを選択します。
手と頭の場合は位置・回転を細かく調整する必要があります。
手の場合は表示されたコントローラを調整します。気合と根性で。
(手の場合は握らせる感じにすれば上手くいくことが多いです)
各ボーンとの紐付けが出来たら、次は以下のボーンに対してPresetを設定します。
- 各Spine
- 両肩(shoulder)
- 両上腕 (upper arm)
- 両前腕(lower arm)
Spineの場合はこんな感じ。このPresetにより回転軸の制限などを行います。
他にも色々なパラメータがあるのですが…まだ把握し切れていないので
一旦IKinemaRig側の設定はこれで完了です。
キャラクタ用BPの作成
先程の動画の9分付近から
次に、実際に制御するキャラクタ用BPを作成します。
このBPではキャラクタの表示と各トラッカーからの値の取得を行います。
VROriginがキャラクタの頭にあうように設定するとちょうど良いです。
…写経面倒だと思うのでBPアップします。バージョンは4.14です。
https://dl.dropboxusercontent.com/u/30427841/BP_IKCharacter.uasset
このタイミングでアニメーションBPを作成して
2つのSkeltalMeshコンポーネントに設定しておきましょう。
アニメーションBPの設定
最後に、実際にキャラクターの動きを制御する部分を設定します。
まずはBPからHMDとモーションコントローラのTransformを取ってきます。
次に、AnimGraphにIKinema for VR用のノードを配置します。
そのノードを選択し、End EffectorパラメータのLimb Transformsを設定します。
ArrayElementsを4まで増やし、各Boneに値を設定。Hips Transformも設定します。
そして、Reflesh nodeを実行した後に、
こんな感じに組みます!最後の最後に雑い!
(ぼけてよく見えない方は、画像を別タブで開いて見て下さい)
In Poseに指定するアニメーションは特に指定はありません。
通常のT・Aポーズ、または待機モーションで問題無いかと思います。
長くなりましたが、これで準備完了です!
VR Previewを実行すると自分の動きにキャラクタが連動すると思います!
…え?挙動がおかしい?よし、ならばIKinemaRigの調整地獄行きだ!
(あまり把握できてないので情報欲しいです…)
…まだ開発途中なせいか、出るはずのピンが無かったりクラッシュしたりと
怪しい挙動をすることが多々あります。
不具合が起こった際は一からやり直した方が安全かもしれません…
最後に
今回はIKinemaのVR向けチュートリアルに沿って、導入方法の説明をしました。
もし説明が抜けている所があればご指摘頂けるとありがたいです。
ドキュメントを見る限りまだまだ機能がありそうなので、
また後日まとめてみようと思います…たぶんきっとおそらくだれかおねがい
ではでは、よいVRコスプレライフを