32.4K Views
July 29, 23
スライド概要
UE Tokyo.dev #1でLTしたスライドです
https://ue-community-tokyo.connpass.com/event/288818/
UnrealEngineエンジニア
BlenderからUnrealEngine(UEFN)へ 3Dモデルをインポートするときのアレコレ UE Tokyo.dev #1
自己紹介 墨崎 達哉 野良UnrealEngineエンジニア
目次 ● StaticMeshの場合 ● SkeletalMeshの場合 ● アドオン作りました
StaticMeshの場合
StaticMeshの場合 基本は普通にFBX出力してOK ● Transform Vertex to Absolute がONになっていれば、Blenderで 作った通りのサイズになる ● Blender側のUnitSystem、UnitScaleはデフォルト(Metric、1.0)の ままでOK ● Xが前 になるように作る
ScaleをApplyする 出力前にScaleをApplyしておくこと Scaleがマイナスの状態で出力した場合 面が反転する場合がある
ScaleをApplyする
PivotをSceneの原点へ配置する Transform Vertex to Absolute の効果により PivotがSceneの原点(0,0,0)に変更される ObjectのPivotだけを設定しても うまく行かない PivotはSceneの原点に置くようにする
PivotをSceneの原点に配置する
Transform Vertex to AbsoluteをOFFにした場合 UnrealEngine側でTransformの変換を行わなくなるので、FBXが そのままUnrealEngine内で使用できる状態にする必要がある Pivot等も全てDCC側で設定した通りになる データ整備がとても面倒なので、よほどのことがない限りONで使うことを推奨 参考: https://forums.unrealengine.com/t/ue5-0-3-blender-fbx-ue-pivot/747497/1
SkeletalMeshの場合
SkeletalMeshの場合 SkeletalMeshの場合、正しくインポートするために守るべきルールがある ● ● ● ● ● Armatureの名前を Armature にする BoneとMeshの名前を重複させない ArmatureのScaleを 0.01 にする Add Leaf Bones はOFF -Yが前 になるように作る
Armatureの名前を「Armature」にする 出力するときのArmatureの名前は必ず 「Armature」にする それ以外の名前にすると、インポート時に 余計なBoneが追加される
Armatureの名前を「Armature」にする rootより上に余計な Boneが追加されている
BoneとMeshの名前を重複させない Blender上では、BoneとMeshは別のオブジェクトなので 名前が被っていても問題ない FBXではどちらもNodeという扱いのため、名前が被ると UnrealEngineは重複を避けるためにリネームする BoneのほうがRenameされた場合、AnimSequenceとの整合性が 取れなくなる可能性がある
BoneとMeshの名前を重複させない 名前が変更されて しまっている
ArmatureのScaleを0.01にする ArmatureのScaleが1.0の状態でFBX出力すると、インポート時に ルートボーンが100倍になる この状態になると、物理周りの機能がうまく動作しなくなる (Chaos RBAN/Clothなど) ArmatureのScaleは0.01にして、FBX出力する必要がある
ArmatureのScaleを0.01にする
ArmatureのScaleを0.01にする Q: ArmatureのScaleいじったらActionズレておかしくならない? A: なります 主にTranslationのキーに影響が出るので、この処理はActionを作る前に するか、Actionの方も100倍する必要がある
アドオン作りました
SkeletalMesh Export Tools (SKET) 「SkeletalMeshの出力」に特化したBlenderアドオンを作りました https://github.com/t-sumisaki/SKET
SkeletalMesh Export Tool (SKET) 今回説明したSkeletalMeshのFBX出力時の課題を自動で解決する ● ArmatureのScale ○ Action(Animation)のScaleも同時に調整する ● Armatureの名前 ● BoneとMeshの名前重複の解決
使い方
その他の機能 ● FBXに出力するAnimationを選択する機能 ○ 標準FBXエクスポーターだとすべて出力されるので、その対応 ● Animationごとに別々のFBXを出力する機能 ○ AnimationごとにFBXが分かれるので、Reimportがやりやすくなる(当社比) ● 原点にルートボーンを追加する機能 ○ MixamoHumanoidなど、Hipから始まる構造向けの機能
補足 ● リグ/コントローラーはついていません ○ ○ あくまでも汎用のSkeletalMeshエクスポーターです アニメーションの補助機能はありません 人型や四足歩行などの場合は、AutoRigProを使用したほうが良いです https://blendermarket.com/products/auto-rig-pro ● StaticMeshはBlenderの標準FBX出力を使用してください ○ SkeletalMesh用です StaticMeshに使ってもいい感じにはなりません
参考文献 FBX コンテンツ パイプライン https://docs.unrealengine.com/5.0/ja/fbx-content-pipeline/