ぼっちプログラマのメモ

UE4とかUE5とかについて書いたり書かなかったり。

UE4のFullBodyIKプラグイン「IKinema RunTime Plugin」を使ってVRコスプレしてみた

はじめに

突然ですが、
VRコスプレデビューしましたー!


(いや、まあ、便乗してやってみたレベルですが…)


今回使用したのは
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
f:id:pafuhana1213:20170208013728g:plain

次に、14日間の無料体験版を選択します。
f:id:pafuhana1213:20170208014339g:plain

アカウント登録ページが表示されるので、
各項目を埋めた後に下のSUBMITボタンを押します。

その後、入力したメールアドレスに登録メールが届くので、
その中にあるリンクをクリックして登録を完了して下さい。

その後、先程のアカウント登録ページを開き、
上の方にあるメールアドレス・パスワード入力欄を埋めて実行すると、
プラグインのダウンロードページに飛ぶのでプラグインをダウンロードします。

そして、そのファイルの中にある4.XX(XXは対応しているバージョン)の中が
IKinemaプラグインです。エンジン又はプロジェクトのPluginsフォルダに入れて下さい。

f:id:pafuhana1213:20170208215740p:plain
これでUE4上でIKinemaプラグインを使う準備が出来ました。


以降は、公式サイトのチュートリアルに従ってセットアップを進めます。
www.ikinema.com

IKinema用リグの作成

www.youtube.com

まず、IKinema用の専用リグを作成します。
f:id:pafuhana1213:20170208220706p:plain

作成したIKinema Rigを開きます。
注:IKinema Rigを開いた状態でレベルを実行すると落ちます! 4.14現在

ここから、以下のボーンに対してTaskを紐付けます。
各Taskにモーションコントローラからの値を渡すことで、FullBodyIKを実現します。

  • 頭(VR HMD Task)
  • 両手(Left/Right Motion Controller Task)
  • お尻(Hip Task)
  • 両膝(Knee Task)
  • 両足(Foot Task)

f:id:pafuhana1213:20170208235601p:plain

の前に、IKinemaリグでは不要なボーンを片っ端から削除します。
(例:指、髪の毛、IK用ボーン、服類、おっぱいなどなど…)

参考までにグレイマンだとこのぐらいまで削除します。
f:id:pafuhana1213:20170209001349p:plain

一通り削除できたら、↑の項目ごとにTaskを紐付けます。
左手の場合は、まず左手用のボーンを選択し右クリックメニューからTaskを選択します。
f:id:pafuhana1213:20170209001650p:plain

手と頭の場合は位置・回転を細かく調整する必要があります。
手の場合は表示されたコントローラを調整します。気合と根性で。
(手の場合は握らせる感じにすれば上手くいくことが多いです)
f:id:pafuhana1213:20170209002337p:plain

各ボーンとの紐付けが出来たら、次は以下のボーンに対してPresetを設定します。

  • 各Spine
  • 両肩(shoulder)
  • 両上腕 (upper arm)
  • 両前腕(lower arm)

Spineの場合はこんな感じ。このPresetにより回転軸の制限などを行います。
f:id:pafuhana1213:20170209004143p:plain

他にも色々なパラメータがあるのですが…まだ把握し切れていないので
一旦IKinemaRig側の設定はこれで完了です。

キャラクタ用BPの作成

先程の動画の9分付近から

次に、実際に制御するキャラクタ用BPを作成します。
このBPではキャラクタの表示と各トラッカーからの値の取得を行います。
VROriginがキャラクタの頭にあうように設定するとちょうど良いです。
https://dl.dropboxusercontent.com/u/30427841/IKCharacter.PNG

…写経面倒だと思うのでBPアップします。バージョンは4.14です。
https://dl.dropboxusercontent.com/u/30427841/BP_IKCharacter.uasset

このタイミングでアニメーションBPを作成して
2つのSkeltalMeshコンポーネントに設定しておきましょう。

アニメーションBPの設定

www.youtube.com

最後に、実際にキャラクターの動きを制御する部分を設定します。
まずはBPからHMDとモーションコントローラのTransformを取ってきます。
f:id:pafuhana1213:20170209011200p:plain

次に、AnimGraphにIKinema for VR用のノードを配置します。
f:id:pafuhana1213:20170209011321p:plain

そのノードを選択し、End EffectorパラメータのLimb Transformsを設定します。
ArrayElementsを4まで増やし、各Boneに値を設定。Hips Transformも設定します。
f:id:pafuhana1213:20170209011518p:plain

そして、Reflesh nodeを実行した後に、
f:id:pafuhana1213:20170209011939p:plain

こんな感じに組みます!最後の最後に雑い!
(ぼけてよく見えない方は、画像を別タブで開いて見て下さい)
https://dl.dropboxusercontent.com/u/30427841/animbp.png

In Poseに指定するアニメーションは特に指定はありません。
通常のT・Aポーズ、または待機モーションで問題無いかと思います。


長くなりましたが、これで準備完了です!
VR Previewを実行すると自分の動きにキャラクタが連動すると思います!

…え?挙動がおかしい?よし、ならばIKinemaRigの調整地獄行きだ!
(あまり把握できてないので情報欲しいです…)

…まだ開発途中なせいか、出るはずのピンが無かったりクラッシュしたりと
怪しい挙動をすることが多々あります。
不具合が起こった際は一からやり直した方が安全かもしれません…

最後に

今回はIKinemaのVR向けチュートリアルに沿って、導入方法の説明をしました。
もし説明が抜けている所があればご指摘頂けるとありがたいです。

ドキュメントを見る限りまだまだ機能がありそうなので、
また後日まとめてみようと思います…たぶんきっとおそらくだれかおねがい

ではでは、よいVRコスプレライフを

続き
pafuhana1213.hatenablog.com