備忘録 Blender→Unityのfbx移動 ~メッシュのアス比編~
概要
Blenderでfbxでエクスポートしたものを、Unityで使用する際に、引っかかった点の備忘録です。
更新履歴
9/25「解決法」に誤った記述があったため修整。
背景
VRChatのワールドを作るために色々練習してた時、以下の記事に従ってやっていました。
発生した問題
Unity側で、お札が立方体になった。
具体的には以下の通り。Blenderからエクスポートしたお札のfbxをUnityに入れて、そのモデルをUnity上に配置すると、正常に表示される。しかし、パーティクルでそのメッシュ(pCube1)を使用すると、パーティクルは立方体になった。(マテリアルはCATSで統合した結果、Unityでは正常だったので割愛)
Blender上では正常。
Unityに放り込んで、シーンに配置しても正常。
しかし、お札のメッシュを見ると何故か立方体になっており、
パーティクルを Render Mode > Mesh にして、このメッシュ「pCube1」を適用すると立方体になる。解せぬ。
解決法
原因は単純で、元のお札において、メッシュの形状は頂点の配置ではなくスケールで辺の比率を変えることによって、立方体をお札の薄い形状に変換していた。
対処方法は注意。Unity側で変えようと思った場合、目につくのはパーティクルシステムのInspectorの、Transform > Scale です。ですが、ここをいじっても直りません。なぜならこのScaleは、パーティクル自体のスケールではなく、パーティクルの散布領域のスケールなんですね。
このスケールを変更した場合、下の画像では正常に見えますが…
パーティクルに回転を加えたりすると、一瞬で異常さがわかります。方向を変えてみてみると、散布領域が異様に縮まっているのも見て取れます。(Y方向のスケールを0.0334にしたため)
そのため、紙幣自体のスケールをどうにかしなくてはいけません。自分はUnity側で、メッシュのスケールをパーティクルシステムでどうにかする方法を見つけられませんでした。なので、そもそもBlender側で、スケール情報をなくしてしまいましょう。
Objectモードでctl + A から Apply > Scale で、比率をメッシュに焼き付けてしまうことで、この縦横奥行き比が、メッシュの情報として記録され、スケールは1:1:1になります。
これをUnityに持ち込んでやると以下の通り。なお、スケールを焼き付けたことで、Unity上では先程より大きく/小さくなっている可能性がありますのでご注意。メッシュを適用したのにパーティクルが消えたら、パーティクルのInspectorからStart Sizeを大きくしてみましょう。
以上です。