[LYN-4727] Adapting the motion group exporter and the save commands to the motion meta data changes
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user