void FAnimationActiveTransitionEntry::InitializeCustomGraphLinks(const FAnimationUpdateContext& Context, const FBakedStateExitTransition& TransitionRule) { if (TransitionRule.CustomResultNodeIndex != INDEX_NONE) { const IAnimClassInterface* AnimBlueprintClass = Context.GetAnimClass(); CustomTransitionGraph.LinkID = AnimBlueprintClass->GetAnimNodeProperties().Num() - 1 - TransitionRule.CustomResultNodeIndex; //@TODO: Crazysauce FAnimationInitializeContext InitContext(Context.AnimInstanceProxy); CustomTransitionGraph.Initialize(InitContext); for (int32 Index = 0; Index < TransitionRule.PoseEvaluatorLinks.Num(); ++Index) { FAnimNode_TransitionPoseEvaluator* PoseEvaluator = GetNodeFromPropertyIndex<FAnimNode_TransitionPoseEvaluator>(Context.AnimInstanceProxy->GetAnimInstanceObject(), AnimBlueprintClass, TransitionRule.PoseEvaluatorLinks[Index]); PoseEvaluators.Add(PoseEvaluator); } } // Initialize blend data if necessary if(BlendProfile) { StateBlendData.AddZeroed(2); StateBlendData[0].PerBoneBlendData.AddZeroed(BlendProfile->GetNumBlendEntries()); StateBlendData[1].PerBoneBlendData.AddZeroed(BlendProfile->GetNumBlendEntries()); } }