From 9b039c1f9da20e7c8b881bdf81d6df88af0342d4 Mon Sep 17 00:00:00 2001 From: amzn-mike <80125227+amzn-mike@users.noreply.github.com> Date: Sat, 12 Jun 2021 13:27:32 -0500 Subject: [PATCH] Fix creating bone data for non-bones (cherry picked from commit 8d1bdd1456e70e4efc47aa36dce660bc91e7dfcf) --- .../Importers/AssImpBoneImporter.cpp | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/Code/Tools/SceneAPI/FbxSceneBuilder/Importers/AssImpBoneImporter.cpp b/Code/Tools/SceneAPI/FbxSceneBuilder/Importers/AssImpBoneImporter.cpp index 5b43941715..694e3566f6 100644 --- a/Code/Tools/SceneAPI/FbxSceneBuilder/Importers/AssImpBoneImporter.cpp +++ b/Code/Tools/SceneAPI/FbxSceneBuilder/Importers/AssImpBoneImporter.cpp @@ -97,7 +97,7 @@ namespace AZ EnumChildren(scene, child, mainBoneList, boneLookup); } } - +#pragma optimize("", off) Events::ProcessingResult AssImpBoneImporter::ImportBone(AssImpNodeEncounteredContext& context) { AZ_TraceContext("Importer", "Bone"); @@ -112,11 +112,11 @@ namespace AZ bool isBone = false; - if (NodeParentIsOfType(context.m_scene.GetGraph(), context.m_currentGraphPosition, DataTypes::IBoneData::TYPEINFO_Uuid())) - { - isBone = true; - } - else + //if (NodeParentIsOfType(context.m_scene.GetGraph(), context.m_currentGraphPosition, DataTypes::IBoneData::TYPEINFO_Uuid())) + //{ + // isBone = true; + //} + //else { AZStd::unordered_map mainBoneList; AZStd::unordered_map boneLookup; @@ -171,11 +171,22 @@ namespace AZ createdBoneData = AZStd::make_shared(); } + // L_Lower_Eyelid_Jnt_01 + if (context.m_sourceNode.GetName() == AZStd::string("L_Lower_Eyelid_Jnt_01")) + { + //__debugbreak(); + } + + AZStd::vector transforms; aiMatrix4x4 transform = currentNode->mTransformation; const aiNode* parent = currentNode->mParent; - + + auto addTrans = [&](auto mat) { transforms.push_back(AssImpSDKWrapper::AssImpTypeConverter::ToTransform(mat)); }; + addTrans(transform); + while (parent) { + addTrans(parent->mTransformation); transform = parent->mTransformation * transform; parent = parent->mParent; }