UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AnimSync.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "AnimNodeMessages.h"
8
11class UAnimInstance;
12class UMirrorDataTable;
13
14namespace UE { namespace Anim {
15
16// Parameters for group/marker-based sync
31
32// Wraps up functionality for ticking and syncing animations according to group (via normalized time) or marker
34{
36
38
39 // Reset internal buffers ready for writing
40 ENGINE_API void Reset();
41
42 // Completely reset the sync system back to its starting state
43 ENGINE_API void ResetAll();
44
45 // Adds a tick record in the list for the correct group or the ungrouped array.
47
48 ENGINE_API void SetMirror(const UMirrorDataTable* MirrorTable);
49
50 // Tick all of the asset player tick records that are registered with us
52
54
56
57 ENGINE_API bool IsSyncGroupBetweenMarkers(FName InSyncGroupName, FName PreviousMarker, FName NextMarker, bool bRespectMarkerOrder = true) const;
58
60
62
63 // flip sync group read/write indices
65 {
66 SyncGroupWriteIndex = GetSyncGroupReadIndex();
67 }
68
69 // Gets the sync group we should be reading from
71 {
72 return 1 - SyncGroupWriteIndex;
73 }
74
75 // Gets the sync group we should be writing to
77 {
78 return SyncGroupWriteIndex;
79 }
80
83 {
84 return SyncGroupMaps[GetSyncGroupReadIndex()];
85 }
86
89 {
90 return UngroupedActivePlayerArrays[GetSyncGroupReadIndex()];
91 }
92
93 UE_DEPRECATED(5.0, "Legacy API support - do not use")
95
96 UE_DEPRECATED(5.0, "Legacy API support - do not use")
98
99 // GC support
101
102private:
104 TArray<FAnimTickRecord> UngroupedActivePlayerArrays[2];
105
107 FSyncGroupMap SyncGroupMaps[2];
108
110 const UMirrorDataTable* MirrorDataTable = nullptr;
111
113 int32 SyncGroupWriteIndex = 0;
114};
115
116}} // namespace UE::Anim
EAnimSyncMethod
Definition AnimationAsset.h:629
EAnimSyncGroupScope
Definition AnimationAsset.h:618
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition Array.h:670
Definition AnimInstance.h:353
Definition MirrorDataTable.h:102
Definition AdvancedWidgetsModule.cpp:13
Definition AnimationAsset.h:642
Definition AnimInstanceProxy.h:144
Definition AnimationAsset.h:411
Definition AnimNodeBase.h:159
Definition AnimationAsset.h:361
Definition AnimSync.h:18
EAnimGroupRole::Type Role
Definition AnimSync.h:27
FName GroupName
Definition AnimSync.h:26
FAnimSyncParams(FName InGroupName=NAME_None, EAnimGroupRole::Type InRole=EAnimGroupRole::CanBeLeader, EAnimSyncMethod InMethod=EAnimSyncMethod::DoNotSync, bool InOverridePositionWhenJoiningSyncGroupAsLeader=false)
Definition AnimSync.h:19
EAnimSyncMethod Method
Definition AnimSync.h:28
bool bOverridePositionWhenJoiningSyncGroupAsLeader
Definition AnimSync.h:29
Definition AnimSync.h:34
const FSyncGroupMap & GetSyncGroupMapRead() const
Definition AnimSync.h:82
ENGINE_API bool HasMarkerBeenHitThisFrame(FName SyncGroup, FName MarkerName) const
Definition AnimSync.cpp:438
ENGINE_API void AddReferencedObjects(UAnimInstance *InAnimInstance, FReferenceCollector &Collector)
Definition AnimSync.cpp:548
ENGINE_API bool GetTimeToClosestMarker(FName SyncGroup, FName MarkerName, float &OutMarkerTime) const
Definition AnimSync.cpp:413
ENGINE_API bool IsSyncGroupBetweenMarkers(FName InSyncGroupName, FName PreviousMarker, FName NextMarker, bool bRespectMarkerOrder=true) const
Definition AnimSync.cpp:455
ENGINE_API void TickAssetPlayerInstances(FAnimInstanceProxy &InProxy, float InDeltaSeconds)
Definition AnimSync.cpp:79
ENGINE_API void Reset()
Definition AnimSync.cpp:18
ENGINE_API void ResetAll()
Definition AnimSync.cpp:30
ENGINE_API FAnimTickRecord & CreateUninitializedTickRecordInScope(FAnimInstanceProxy &InProxy, FAnimGroupInstance *&OutSyncGroupPtr, FName GroupName, EAnimSyncGroupScope Scope)
Definition AnimSync.cpp:519
ENGINE_API FAnimTickRecord & CreateUninitializedTickRecord(FAnimGroupInstance *&OutSyncGroupPtr, FName GroupName)
Definition AnimSync.cpp:504
ENGINE_API void AddTickRecord(const FAnimTickRecord &InTickRecord, const FAnimSyncParams &InSyncParams=FAnimSyncParams())
Definition AnimSync.cpp:49
ENGINE_API bool IsSyncGroupValid(FName InSyncGroupName) const
Definition AnimSync.cpp:490
TMap< FName, FAnimGroupInstance > FSyncGroupMap
Definition AnimSync.h:37
ENGINE_API FMarkerSyncAnimPosition GetSyncGroupPosition(FName InSyncGroupName) const
Definition AnimSync.cpp:471
int32 GetSyncGroupReadIndex() const
Definition AnimSync.h:70
void TickSyncGroupWriteIndex()
Definition AnimSync.h:64
const TArray< FAnimTickRecord > & GetUngroupedActivePlayersRead()
Definition AnimSync.h:88
int32 GetSyncGroupWriteIndex() const
Definition AnimSync.h:76
static ENGINE_API const FName Attribute
Definition AnimSync.h:35
ENGINE_API void SetMirror(const UMirrorDataTable *MirrorTable)
Definition AnimSync.cpp:74