【UE5】Blenderからインポートした子たちのScaleが100倍になる – Unreal Engine 5.4

Unreal Engine

水ノ茉の宣伝

準備中...
ゲームを作る予定なの
水ノ茉こおり

始まり

久々に高品質なモデルと戯れます。

前々からカートに突っ込んで放置していた子を召喚します。
高品質なモデルにしては珍しく随分とおおらかな利用規約を適用されていますね。
本当に珍しい。

3Dモデル 学園アイドル「シアーシャ」 - ヒノイチ工房 2号店 - BOOTH
VRChat&MMD対応 3Dモデル「シアーシャ(Xiasha)」 Humanoid形式の学園アイドル3Dキャラクターモデルです。 VRChatやMMD利用を想定しデータを調整しましたが、ゲーム制作、動画作成or配信、静画用にもご利用いただ...

最近はBlenderと戯れることも増えました。
結果としてインポートのテンプレートが以前と変わりました。
変わった部分はスケール調整方法だけなのですが、ついでなので、最初から辿ります。

【UE5】FBXモデルをUEにインポートしたらルートボーンがなかったのでBlenderで修正してみた
作業環境Windows 10Visual Studio 2022Visual Studio CodeUnreal Engine 5.3Blender 3.6.4始まりまどそふとさんはキャラクターデザインがもちもちしていて(伝わる?)、あんま...

FBXをインポート

File > Import > FBX (.fbx)

Vertex Colors: Linear
Ignore Leaf Bones: True

頂点カラーは補間なしが好きという趣向。
リーフボーンは付与されていること自体が滅多にないですが、普通に不都合なので不要です。

インポート完了♪

FBXをエクスポート

File > Export > FBX (.fbx)

Object Types: Armature, Mesh
Smoothing: Edge
Vertex Colors: Linear
Add Leaf Bones: False
Animation: False

SmoothingはFaceでもEdgeでも、なにもしないと、UEがやってって怒るの。

ルートボーン(Root)が存在しない

これは以前と方法は変わりありませんが、一応触れておくね。

UEにモデルをインポートすると、ルートボーンがないなった事例に割とよく遭遇します。
原因は同名処理に関するルールが、UEはUnityよりも少し厳しいのです。
よく言えば暗黙的な許容を控えてくれるので、このように問題点が露出してくれます。
Unityのように暗黙的に処理してくれちゃうと、かえって時限爆弾になることもあるので。

親オブジェクトをRootという名前にリネームしてあげると解消します。

おかえり、Rootさん♪

スケール(Scale)が100.0倍になる

ぱっと見は正常に見えますが、スケールをよく見てください。

(100.0, 100.0, 100.0)

100倍です。

巨人さんかな?

このスケール100倍で一番困るのがリターゲットです。

SourceとTargetを正しくセットしていますが、見当たりません。

どこにいるのでしょうか。

正解は遥か上空でした。

この距離だと、下から見上げているというのに、パンツのパの字も見えませんね。

残念です。

個人的には見えそうで見えないというのが一番楽しいんですけどね。

描画距離的に見えない、潰れているという、夢もなにもないです。

この解決策として以前は、エクスポート時のScaleでアプローチしていましたが、これは問題がありました。

小さいものを大きくする分には目立った問題はないのですが、その逆、大きいものを小さくする場合です。

当然小さくすると各頂点間の隙間は狭まります。

そんな極小な隙間で法線を計算しようとしてみてください。

想像に容易くないでしょう。えぇ。法線計算がバグります。

基本的には真っ黒になります。ゼロ値です。

モデルインポート時に自動計算のオプションを選択するとこの結果を招きます。

【UE5】FBXモデルをUEにインポートしたらルートボーンがなかったのでBlenderで修正してみた
作業環境Windows 10Visual Studio 2022Visual Studio CodeUnreal Engine 5.3Blender 3.6.4始まりまどそふとさんはキャラクターデザインがもちもちしていて(伝わる?)、あんま...

Scene > Units > Unit Scale: 0.01

単位をUEと同じ、センチメートルに変更します。

単位を変えたら、親オブジェクト・RootのScaleを100倍にします。

Object > Apply > Scale

これをするとスケール変更がメッシュに適用され、ボーンのスケールは (1.0, 1.0, 1.0) になります。
上手いこと帳尻を合わせてくれるようです。かしこいですね。

適当前後でArmatureを見るとScaleが100.0から1.0に変わっているのが分かります。

はい、おわり♪

回転の微妙なズレは誤差として無視♪

おわり!!!

VRoidと戯れる機会が増えたから、その時に、適当に修正方法を試したの。