diff --git a/Source/Engine/Tools/ModelTool/ModelTool.Assimp.cpp b/Source/Engine/Tools/ModelTool/ModelTool.Assimp.cpp index 7ede58373..4509d287d 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.Assimp.cpp +++ b/Source/Engine/Tools/ModelTool/ModelTool.Assimp.cpp @@ -227,6 +227,8 @@ void ProcessNodes(AssimpImporterData& data, aiNode* aNode, int32 parentIndex) Matrix transform = ToMatrix(aNode->mTransformation); transform.Decompose(node.LocalTransform); + if (data.Options.IgnoreNodesScale) + node.LocalTransform.Scale = Float3::One; data.Nodes.Add(node); // Process the children diff --git a/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp b/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp index acf18cb18..5e28daf5d 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp +++ b/Source/Engine/Tools/ModelTool/ModelTool.OpenFBX.cpp @@ -416,6 +416,8 @@ void ProcessNodes(OpenFbxImporterData& data, const ofbx::Object* aNode, int32 pa } #endif transform.Decompose(node.LocalTransform); + if (data.Options.IgnoreNodesScale) + node.LocalTransform.Scale = Float3::One; data.Nodes.Add(node); // Process the children diff --git a/Source/Engine/Tools/ModelTool/ModelTool.cpp b/Source/Engine/Tools/ModelTool/ModelTool.cpp index 3c79bb723..119fa9555 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.cpp +++ b/Source/Engine/Tools/ModelTool/ModelTool.cpp @@ -571,6 +571,7 @@ void ModelTool::Options::Serialize(SerializeStream& stream, const void* otherObj SERIALIZE(Translation); SERIALIZE(UseLocalOrigin); SERIALIZE(CenterGeometry); + SERIALIZE(IgnoreNodesScale); SERIALIZE(Duration); SERIALIZE(FramesRange); SERIALIZE(DefaultFrameRate); @@ -627,6 +628,7 @@ void ModelTool::Options::Deserialize(DeserializeStream& stream, ISerializeModifi DESERIALIZE(Translation); DESERIALIZE(UseLocalOrigin); DESERIALIZE(CenterGeometry); + DESERIALIZE(IgnoreNodesScale); DESERIALIZE(Duration); DESERIALIZE(FramesRange); DESERIALIZE(DefaultFrameRate); diff --git a/Source/Engine/Tools/ModelTool/ModelTool.h b/Source/Engine/Tools/ModelTool/ModelTool.h index 00d7028cf..1a9414ed2 100644 --- a/Source/Engine/Tools/ModelTool/ModelTool.h +++ b/Source/Engine/Tools/ModelTool/ModelTool.h @@ -253,6 +253,9 @@ public: // If checked, the imported geometry will be shifted to the center of mass. API_FIELD(Attributes="EditorOrder(540), EditorDisplay(\"Transform\")") bool CenterGeometry = false; + // If checked, the importer will ignore nodes scale property. + API_FIELD(Attributes = "EditorOrder(545), EditorDisplay(\"Transform\")") + bool IgnoreNodesScale = false; public: // Animation