[LYN-4727] Adapting the motion group exporter and the save commands to the motion meta data changes

This commit is contained in:
Benjamin Jillich
2021-06-25 16:18:54 +02:00
parent 44c813824e
commit a3d314d059
4 changed files with 11 additions and 15 deletions
@@ -84,12 +84,11 @@ namespace EMotionFX
}
// Apply motion meta data.
EMotionFX::Pipeline::Rule::MotionMetaData motionMetaData;
if (EMotionFX::Pipeline::Rule::LoadFromGroup<EMotionFX::Pipeline::Rule::MotionMetaDataRule, EMotionFX::Pipeline::Rule::MotionMetaData>(motionGroup, motionMetaData))
AZStd::shared_ptr<EMotionFX::Pipeline::Rule::MotionMetaData> motionMetaData;
if (EMotionFX::Pipeline::Rule::LoadFromGroup<EMotionFX::Pipeline::Rule::MotionMetaDataRule>(motionGroup, motionMetaData))
{
motion->SetEventTable(AZStd::unique_ptr<MotionEventTable>(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);
@@ -35,7 +35,7 @@ namespace EMotionFX
return false;
}
outData = rule->GetData();
outData = AZStd::move(rule->GetData());
return true;
}
@@ -41,9 +41,9 @@ namespace EMotionFX::Pipeline::Rule
AZStd::unique_ptr<EMotionFX::MotionEventTable> MotionMetaData::GetClonedEventTable(EMotionFX::Motion* targetMotion) const
{
AZStd::unique_ptr<EMotionFX::MotionEventTable> clonedEventTable = AZStd::move(CloneMotionEventTable(m_motionEventTable.get()));
AZStd::unique_ptr<EMotionFX::MotionEventTable> clonedEventTable = CloneMotionEventTable(m_motionEventTable.get());
clonedEventTable->InitAfterLoading(targetMotion);
return AZStd::move(clonedEventTable);
return clonedEventTable;
}
AZStd::unique_ptr<EMotionFX::MotionEventTable> MotionMetaData::CloneMotionEventTable(EMotionFX::MotionEventTable* sourceEventTable)
@@ -57,7 +57,7 @@ namespace EMotionFX::Pipeline::Rule
}
AZStd::unique_ptr<EMotionFX::MotionEventTable> clonedEventTable(serializeContext->CloneObject<EMotionFX::MotionEventTable>(sourceEventTable));
return AZStd::move(clonedEventTable);
return clonedEventTable;
}
MotionMetaDataRule::MotionMetaDataRule()
@@ -66,9 +66,8 @@ namespace EMotionFX::Pipeline::Rule
}
MotionMetaDataRule::MotionMetaDataRule(const AZStd::shared_ptr<MotionMetaData>& data)
: MotionMetaDataRule()
: m_data(data)
{
m_data = data;
}
void MotionMetaDataRule::Reflect(AZ::ReflectContext* context)
@@ -315,10 +315,8 @@ namespace EMStudio
EMotionFX::Pipeline::Rule::RemoveRuleFromGroup<EMotionFX::Pipeline::Rule::MetaDataRule, const AZStd::vector<MCore::Command*>>(*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<EMotionFX::Pipeline::Rule::MotionMetaDataRule, EMotionFX::Pipeline::Rule::MotionMetaData>(*scene, group, motionMetaData);
auto motionMetaData = AZStd::make_shared<EMotionFX::Pipeline::Rule::MotionMetaData>(motion->GetMotionExtractionFlags(), motion->GetEventTable());
EMotionFX::Pipeline::Rule::SaveToGroup<EMotionFX::Pipeline::Rule::MotionMetaDataRule, AZStd::shared_ptr<EMotionFX::Pipeline::Rule::MotionMetaData>>(*scene, group, motionMetaData);
}
}