Mirror Data Table is added rows about Bone, Curve, Notify when creating. But SyncMarker is ignored. The following codes can fix this issue.
Engine/Source/Runtime/Engine/Private/Animation/MirrorDataTable.cpp
const FReferenceSkeleton& RefSkeleton = Skeleton->GetReferenceSkeleton(); // 3->4 TSet<FName> NamesByCategory[4]; ForeachRow<FMirrorTableRow>(TEXT("UMirrorDataTable::FindReplaceMirroredNames"), [&NamesByCategory] (const FName& Key, const FMirrorTableRow& Value) mutable { NamesByCategory[Value.MirrorEntryType].Add(Value.Name); } );
auto AddMirrorRow = [this, &bChangedTable, &NamesByCategory](const FName& Name, const FName& MirroredName, EMirrorRowType::Type RowType) { // directly add rows to avoid using FDataTableEditorUtils, which is not appropriate at this point // equivalent to FDataTableEditorUtils::AddRow(DataTable, BoneName); // add TEXT(":SyncMarker") static const FString CategoryName[] = { TEXT(":Bone"), TEXT(":Notify"), TEXT(":Curve"), TEXT(":SyncMarker") }; if (!NamesByCategory[RowType].Contains(Name))
for (const FName& Notify : Skeleton->AnimationNotifies) { FName MirroredName = FindReplace(Notify); if (!MirroredName.IsNone() && Skeleton->AnimationNotifies.Contains(MirroredName)) { AddMirrorRow(Notify, MirroredName, EMirrorRowType::AnimationNotify); } } // add for (const FName& SyncMarker : Skeleton->GetExistingMarkerNames()) { FName MirroredName = FindReplace(SyncMarker); if (!MirroredName.IsNone() && Skeleton->GetExistingMarkerNames().Contains(MirroredName)) { AddMirrorRow(SyncMarker, MirroredName, EMirrorRowType::SyncMarker); } } const FSmartNameMapping* CurveSmartNames = Skeleton->GetSmartNameContainer(USkeleton::AnimCurveMappingName);
expect : The Mirror Data Table has rows about SyncMarker
result : The Mirror Data Table does not have rows about SyncMarker
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-168448 in the post.
0 |
Component | UE - Anim - Runtime |
---|---|
Affects Versions | 5.0, 5.1 |
Target Fix | 5.2 |
Created | Oct 27, 2022 |
---|---|
Resolved | Nov 1, 2022 |
Updated | Nov 27, 2022 |