妹でもわかるUnrealEngine4

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

毎日更新? 妹に説明するために書いてるけど、たまにわかってない場合もあるUnrealEngine4を中心としたゲーム制作の話。略すとイモリアル

VRoid -> Blender -> AutoRig Proで動かせるようにする実験

確認したバージョン
Blender 2.79
AutoRig Pro3.40

blendermarket.com

「SubstancePainterで材質の件はいいとして、どうやって動かすのかという問題が未解決。そこでBlenderのAutoRig Proというアドオンを購入」

妹「そういうのもう買ってなかったっけ?」

「AllRight Rigは、動かせる状態のキャラクターをUE4上で動かすやつだから。動かせるようにするのに使う」

妹「名前が紛らわしい……」

「この手のプラグインはRigって名前に付いてるの多いから。これはBlenderからUE4という流れを想定したプラグインだから、鬼門になってるFBXのやりとりもスムーズにできるという利点もある。ゲームエンジン対応はComplete版じゃないと駄目だけど」

f:id:una_unagi:20181207231516p:plain
MakeHumanのキャラ。関節の位置などをマーカーで指定

f:id:una_unagi:20181207231549p:plain
指以外は問題ないんだけど

「とりあえずなんでもいいから骨入れたいなということで、まず思いついたのがMakeHuman。標準のボーンはあるけど、AutoRigProで設定できれば、データを加工した後に骨の入れ直しが出来るなあと。でも指の認識が上手くできず……」

妹「指の認識?」

「関節の位置を設定していくと、手首の先にあるポリゴンを指だと認識してくれる。手動で直せばいいんだけど、この指のとこにボーンを入れるのが大嫌いだからAutoRig Proを買ってるわけで、こんなぐちゃぐちゃになったら意味がない。MakeHumanの標準ポーズだと、手のひらが下を向いてなかったり、指を閉じてたり、あんまり認識しやすいモデルじゃなかった」

imoue.hatenablog.com
前回VRoidのキャラを読み込んだ時の

github.com
このアドオンを使う

「そこでVRoidのモデルを使ってみることにした。Blenderに読み込むところまでは前回と一緒。手が下を向くように、VRoid上でTポーズに設定してからエクスポート。マテリアルはやっぱりちょっとおかしいけど、そのへんは今回目をつぶる。ボーンは上手く読み込めてないっぽい状態で入ってるから、いったん消してメッシュだけ残す」

http://www.lucky3d.fr/auto-rig-pro/doc/auto_rig.html
マニュアルが英語なので、なんとなく雰囲気でやる

youtu.be

「Smartモードを使うと、関節の位置をアバウトに設定するだけで、全身の骨が入るという、まあなんというか、Mixamoのやつみたいなモードなんだけど。首、顎、肩、手首など、指示にしたがって関節の位置を調節していく。関節ってどのへんだろ? みたいなのは、動画を見るとわかる」

f:id:una_unagi:20181207233437p:plain

youtu.be

「その時選択中のオブジェクトだけが表示されて、関節の認識にもその部分を使う。だから細かいパーツとかは選択しない方が骨がスッキリ入りそうな気がする。あと今回スカートだったんで、ワンピースがじゃまで股関節の位置がわからなくなる。なので服も別オブジェクトにして、Smartモードの途中では表示しない方が簡単だった」

f:id:una_unagi:20181207232755p:plain

「問題だった指は問題なし。VRoidのもそんなに指開いてないんだけど、これぐらいスキマがあれば大丈夫なのかなあと。自作モデルを作る時の参考用に」

妹「なんでスキマが要るの? ポリゴンは分かれてるわけだし」

「どうもポリゴンの流れじゃなくて、ボクセル的な判定で、手首の先に指っぽいかたまりがあるかどうかって判定になってるみたい。ポリゴンの流れとは関係ないから、指輪とか爪とか別オブジェクトになってても、指同士にスキマがあれば大丈夫なんじゃないかと思う」

f:id:una_unagi:20181207234339p:plain

「骨がズレてたら適当に調整してから、リグで操作できるようにする。この手順は、Blender上でアニメーションを作らないんだったら不要かもしれない」

f:id:una_unagi:20181207234739p:plain
バインドする

「骨や関節の位置が決まったので、それに連動してオブジェクトが動くようにバインドするという処理がある。これをやらないと、いくらリグを動かしてもオブジェクトが反応しない」

f:id:una_unagi:20181207234542p:plain
どうにか動くようになったけど……

「バインドまでうまくいくと、リグをポーズモードで動かしたら、それにあわせてメッシュも変形するようになる。ただ、ここが実はよくわかってないところなんだけど、バインドの処理にすごく時間がかかる。服だけならすぐ終わったんだけど、胴体には30分ぐらいかかった。フリーズしたかと思ってた」

妹「30分……なかなかつらい気が」

「PCの性能でも違うだろうと思うけど。髪の毛のバインドに至っては、3時間待っても終わらなかったから諦めた」

妹「そういうものなの?」

「それはわからないけど。ポリゴン数が多いと遅くなるっていうのはありそう。ただポリゴン数だけでは説明がつかない。ポリゴン数削減してボディと同じぐらいにした状態でも時間変わらなかったから。Blender2.8でも実験しようとしたけど、こっちはまだAutoRigProのSmartモードに対応してないみたいだったので断念。また何か手を思いついたら再開するけど、現時点ではここまで。VRoidじゃなくて自作モデルだったら問題なさそうだし」