From a3d314d0593eb8d80126bfa8e79a8e5d8ed5092b Mon Sep 17 00:00:00 2001 From: Benjamin Jillich Date: Fri, 25 Jun 2021 16:18:54 +0200 Subject: [PATCH] [LYN-4727] Adapting the motion group exporter and the save commands to the motion meta data changes --- .../Pipeline/RCExt/Motion/MotionGroupExporter.cpp | 9 ++++----- .../Pipeline/SceneAPIExt/Rules/ExternalToolRule.inl | 2 +- .../Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.cpp | 9 ++++----- .../Tools/EMotionStudio/EMStudioSDK/Source/Commands.cpp | 6 ++---- 4 files changed, 11 insertions(+), 15 deletions(-) diff --git a/Gems/EMotionFX/Code/EMotionFX/Pipeline/RCExt/Motion/MotionGroupExporter.cpp b/Gems/EMotionFX/Code/EMotionFX/Pipeline/RCExt/Motion/MotionGroupExporter.cpp index b44f2c36b3..c4ed3307ae 100644 --- a/Gems/EMotionFX/Code/EMotionFX/Pipeline/RCExt/Motion/MotionGroupExporter.cpp +++ b/Gems/EMotionFX/Code/EMotionFX/Pipeline/RCExt/Motion/MotionGroupExporter.cpp @@ -84,12 +84,11 @@ namespace EMotionFX } // Apply motion meta data. - EMotionFX::Pipeline::Rule::MotionMetaData motionMetaData; - if (EMotionFX::Pipeline::Rule::LoadFromGroup(motionGroup, motionMetaData)) + AZStd::shared_ptr motionMetaData; + if (EMotionFX::Pipeline::Rule::LoadFromGroup(motionGroup, motionMetaData)) { - motion->SetEventTable(AZStd::unique_ptr(motionMetaData.m_motionEventTable)); - motion->GetEventTable()->InitAfterLoading(motion); - motion->SetMotionExtractionFlags(motionMetaData.m_motionExtractionFlags); + motion->SetEventTable(motionMetaData->GetClonedEventTable(motion)); + motion->SetMotionExtractionFlags(motionMetaData->GetMotionExtractionFlags()); } ExporterLib::SaveMotion(filename, motion, MCore::Endian::ENDIAN_LITTLE); diff --git a/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/ExternalToolRule.inl b/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/ExternalToolRule.inl index e98e2e7187..da97743229 100644 --- a/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/ExternalToolRule.inl +++ b/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/ExternalToolRule.inl @@ -35,7 +35,7 @@ namespace EMotionFX return false; } - outData = rule->GetData(); + outData = AZStd::move(rule->GetData()); return true; } diff --git a/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.cpp b/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.cpp index 2bd7e2a57e..40648a7f8f 100644 --- a/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.cpp +++ b/Gems/EMotionFX/Code/EMotionFX/Pipeline/SceneAPIExt/Rules/MotionMetaDataRule.cpp @@ -41,9 +41,9 @@ namespace EMotionFX::Pipeline::Rule AZStd::unique_ptr MotionMetaData::GetClonedEventTable(EMotionFX::Motion* targetMotion) const { - AZStd::unique_ptr clonedEventTable = AZStd::move(CloneMotionEventTable(m_motionEventTable.get())); + AZStd::unique_ptr clonedEventTable = CloneMotionEventTable(m_motionEventTable.get()); clonedEventTable->InitAfterLoading(targetMotion); - return AZStd::move(clonedEventTable); + return clonedEventTable; } AZStd::unique_ptr MotionMetaData::CloneMotionEventTable(EMotionFX::MotionEventTable* sourceEventTable) @@ -57,7 +57,7 @@ namespace EMotionFX::Pipeline::Rule } AZStd::unique_ptr clonedEventTable(serializeContext->CloneObject(sourceEventTable)); - return AZStd::move(clonedEventTable); + return clonedEventTable; } MotionMetaDataRule::MotionMetaDataRule() @@ -66,9 +66,8 @@ namespace EMotionFX::Pipeline::Rule } MotionMetaDataRule::MotionMetaDataRule(const AZStd::shared_ptr& data) - : MotionMetaDataRule() + : m_data(data) { - m_data = data; } void MotionMetaDataRule::Reflect(AZ::ReflectContext* context) diff --git a/Gems/EMotionFX/Code/EMotionFX/Tools/EMotionStudio/EMStudioSDK/Source/Commands.cpp b/Gems/EMotionFX/Code/EMotionFX/Tools/EMotionStudio/EMStudioSDK/Source/Commands.cpp index 920006b1d4..8c22d657c3 100644 --- a/Gems/EMotionFX/Code/EMotionFX/Tools/EMotionStudio/EMStudioSDK/Source/Commands.cpp +++ b/Gems/EMotionFX/Code/EMotionFX/Tools/EMotionStudio/EMStudioSDK/Source/Commands.cpp @@ -315,10 +315,8 @@ namespace EMStudio EMotionFX::Pipeline::Rule::RemoveRuleFromGroup>(*scene, group); // Add motion meta data. - EMotionFX::Pipeline::Rule::MotionMetaData motionMetaData; - motionMetaData.m_motionEventTable = motion->GetEventTable(); - motionMetaData.m_motionExtractionFlags = motion->GetMotionExtractionFlags(); - EMotionFX::Pipeline::Rule::SaveToGroup(*scene, group, motionMetaData); + auto motionMetaData = AZStd::make_shared(motion->GetMotionExtractionFlags(), motion->GetEventTable()); + EMotionFX::Pipeline::Rule::SaveToGroup>(*scene, group, motionMetaData); } }