BlenderとUnityで作ったものをVR(Oculus  Quest/Oculus Link)で動かします

ブログの女の子を作る #81 ウマ娘っぽくブルマで走る (3) ブルマのシワを作成して調整する【Blender,Unity】

 
前回の記事では、ハチマキと運動靴を作って、ブルマ部分のウェイト調整をしました。
 
今回は、ブルマのシワを作ったあと、これまでに作ったオブジェクトをUnityにインポートして調整します。Unity上で問題が3つありましたが、どれも解決できて良かったですよ。



開発環境

・Blender 2.90.1
・Unity 2020.3.6f1(High Definition RP 10.4.0)
・グラボ:ASUS ROG-STRIX-RTX2060S-O8G-GAMING
・Oculus Quest 2(Oculus Link利用)
 

(1) ブルマのシワを作る

ブルマのオブジェクトはできてますが、まだシワ表現がないのでツルツルしてます。
良い感じのシワを作っていきましょう。
 

下準備をする

作り方はパンツのシワと同じです。
ここでは要点だけを書いていきますね。
 
まず、ブルマのオブジェクトを複製して、リネームしておきます。
今回は「体操服_ブルマHigh」という名前にしました。
 
マルチレゾリューション」モディファイアーを追加します。
 
細分化」ボタンを1回だけ押した後、モディファイアーを適用します。
これで下準備ができました。
 

(1) ブルマのフチ部分

これから3つのシワを作っていきます。
 
1つ目は「ブルマのフチ部分」にあるシワです。
シワというか、縫い目ですかね。
 
今回は、まっすぐな線を引くために「ストローク方法:ライン」を使ってみました。
なかなか便利。
 
連続して使えば、線がガタガタになるのを減らせます。
ちなみにですが、ブルマ表面の白部分はパンツがはみ出したものです。ハイポリゴン化した時に頂点位置が変わったらしい。ノーマルマップを作成する際には影響ないので、このまま作業を進めましょう。
 
フチ部分ができました。
 

(2) パンツのフチ部分

2つ目のシワは「パンツのフチ部分」です。
 
パンツオブジェクトを選択してみました。
この部分にパンツがありますね。パンツのフチ部分をイメージしつつ、線を引いていきます。
 
透過モードにすると作業しやすい。
 
線を引いたあとは、スムーズ機能で表面を滑らかにしておきます。
 
ブルマの下にパンツはいてる感が出た気がします。
 

(3) ブルマのシワ

最後は「ブルマのシワ」です。
 
ドロー」でそれっぽいシワの線を引いて、
 
スムーズで滑らかにします。
 
後ろ側のシワです。
こんな感じで良いでしょう。
 
これで「シワがついたHighポリゴンのブルマ」ができました
 

UV展開してノーマルマップを作る

ここからは、ノーマルマップを作っていきます。
 
まずは、元のブルマ(Lowポリゴンのブルマ)をUV展開しておきます。
 
あとは、画像テクスチャノードを追加したり、
 
色空間で「Non Color」を指定したりして、
 
ノーマルマップ作成に必要な設定を進めて行きます。
 
最後に「ベイク」ボタンをクリックすれば、ノーマルマップが作成されます。
ファイル保存を忘れないように。
 


(2) Unityでの問題1「ブルマのシワがガタガタ」

ここまでの作業で、ブルマのシワ用のノーマルマップができました。既にブルマや体操服などのオブジェクトはできてますので、それらを含めた一式をUnity側にインポートします。
 

インポートしてマテリアルも設定する

FBXファイルをUnityにインポートして、ブルマや体操服で必要なマテリアルを設定します。
 
基本的には、過去記事で設定したマテリアルを複製して使ってます。
 
ノーマルマップは、少しだけ設定を変えておきましょう。
 

ブルマのシワがおかしい!

ノーマルマップを設定してみたのですが、ブルマのシワが何かおかいい。
解像度が低いというか、ガタガタになってますね。
 
ノーマルマップを直接表示してみると、Unityで見た時と同様に解像度が低い感じになってました。
ノーマルマップのサイズは 2048px なので、十分大きいと思ったのですが。。。
 
念のため、Blender側で「Highポリブルマ」の頂点を確認してみると、かなり細かい頂点になってました。
これだけ頂点があるなら、もっと滑らかになるはずです。
 
いろいろ試したところ、Blenderでベイクする際に「Extrusionの値を 0cm → 1cm」にすると改善することが分かりました。解像度は関係ありませんでしたね。
そういえば、以前パンツのシワを作った時も Extrusion の値を一時的に変更した記憶があります。
 
ノーマルマップを作りなおして、Unity側に設定してみましょう。
 
今度はなめらかなシワが表示されました!
 
なかなか良いシワ加減です。
 

(3) Unityでの問題2「ハチマキと靴がずれる」

2つ目の問題は、ハチマキと靴が体に追従せず、ずれて表示されるです。
 
結論から書くと、単純に頂点のウェイト設定漏れでした。。。
 

オブジェクトの位置がおかしい

ハチマキは、頭から離れた位置に表示されてます。
ズレ過ぎですね。
 
当たり前ですが、Playで動かして見ると、同じ位置のままで追従してません。
 
頂点のウェイト設定がまだでしたので、Blender側で「オブジェクト -> ペアレント -> 自動のウェイトで」を実行しておきます。
 
顔の動きに合わせて、ハチマキが動くようになりました。
 
運動靴にもウェイト設定をやっておきましょう。
 
こちらも問題なさそうです。
 
Unity側にインポートして動作確認してみました。
ハチマキも運動靴も、体の動きに合ってますね。これでOKです。
 


(4) Unityでの問題3「足の付け根がブルマがめりこむ」

最後の問題は、Unityにインポートするとなぜか足の付け根がブルマにめりこむです。
 

BlenderとUnityで比較してみる

まずはBlender側です。特に問題ないですね。
 
ですが、Unity側で表示するとめり込みが発生します。
どうしてだ。。。
 

足ボーンのTransform設定がおかしかった?

この問題はなかなか解決できず数日悩んでたのですが、やっと原因が分かりました!
理由は不明なのですが、足ボーンの「Transform -> Position -> Y」の値がおかしかったようです。
 
と言っても正しい値は分からないのですが、とりあえず「0.00003786 → 0」に変更すると、
 
足全体の位置が下がり、ブルマへのめり込みが無くなりました。
 
ブルマが無い状態の方が分かりやすいので、試してみました。
 
良い感じですね。
確かに以前から、Unityにオブジェクトを持っていった時、「足(特に股間周り)」に違和感を感じていたのですが、何がおかしいかもわからなかったので放置したままでした。今回やっとそれが改善されました!
ブルマのおかげですよ。
 

Prefabでは効果なし

上記の設定変更ですが、HierarchyのオブジェクトやPrefabに適用しても効果がありませんでした。
 
静止状態では直っているのですが、Playで動かすと同じ現象が起きてしまいます。
 

キャラクターのAvatar設定を修正する

Prefabファイルを調べていると、「Configure Avatar」という何かを設定できそうなボタンを見つけました。
どうやら、ここでオブジェクトのオリジナルの設置値を保持しているようです。
 
設定値を変更し、「Apply」ボタンで適用します。
 
これで大丈夫なはず。。。
 

めり込みが直った!

この状態でPlayしてみると、今度はめり込まなくなりました!
 
別のモーションでも大丈夫そうですね。
良かった。。。
 

膝もずれてた

せっかくなので他の個所もずれてないか確認したところ、膝部分もずれていました。こちらは「Position -> X」の値ですね。
 
左足だけを「-0.00016 -> 0」に変更してみると、
 
良い感じになりました。
 
違和感ないですね。
いつからずれてるんでしょうね。一番最初にFBXファイルをインポートした時からのような気がします。。。
 

まとめ 

ブルマのシワを作って、これまでに作ったオブジェクトをUnityにインポートして調整しました。
 
足のずれ問題が直ったのはかなりうれしかったりします。
以前から違和感はあったのですが、どこがおかしいかまでは特定できてませんでしたので。
 
次は、ハチマキにMagica Clothを設定して、肌の影を薄くして、最後に池の周りを走らせてみます。
 
スポンサーリンク

コメント

  • トラックバックは利用できません。

  • コメント (0)

  1. この記事へのコメントはありません。

ブログの女の子を作る #80 ウマ娘っぽくブルマで走る (2) ハチマキと運動靴を作ってウェイト調整する【Blender】

ブログの女の子を作る #82 ウマ娘っぽくブルマで走る (4) Magica Clothと肌設定してレースする【Unity】

最近のコメント

だーしゅ
IT関係のお仕事してます。
VRは楽しいですね。

[当ブログについて]