Files
UnrealEngineUWP/Engine/Source/Editor/AnimGraph/Public/AnimGraphNode_LayeredBoneBlend.h
Thomas Sarkanen 6adfe86822 Fix crashes, inconsistencies and performance issues with layered blend per bone node
Introduces a serial number to FBoneContainer that allows easier refreshing of bone-relative data. Eventually the overall CacheBones path could be superseded with lazy-update systems based on this serial number.

#jira UE-116464 - Layered blend per bone crash
#rb Jurre.deBaare

[CL 16466917 by Thomas Sarkanen in ue5-main branch]
2021-05-26 07:55:41 -04:00

46 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/ObjectMacros.h"
#include "AnimGraphNode_BlendListBase.h"
#include "AnimNodes/AnimNode_LayeredBoneBlend.h"
#include "AnimGraphNode_LayeredBoneBlend.generated.h"
UCLASS(MinimalAPI)
class UAnimGraphNode_LayeredBoneBlend : public UAnimGraphNode_BlendListBase
{
GENERATED_UCLASS_BODY()
UPROPERTY(EditAnywhere, Category=Settings)
FAnimNode_LayeredBoneBlend Node;
// Adds a new pose pin
//@TODO: Generalize this behavior (returning a list of actions/delegates maybe?)
ANIMGRAPH_API virtual void AddPinToBlendByFilter();
ANIMGRAPH_API virtual void RemovePinFromBlendByFilter(UEdGraphPin* Pin);
// UEdGraphNode interface
virtual FLinearColor GetNodeTitleColor() const override;
virtual FText GetTooltipText() const override;
virtual FText GetNodeTitle(ENodeTitleType::Type TitleType) const override;
virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
// End of UEdGraphNode interface
// UK2Node interface
virtual void GetNodeContextMenuActions(class UToolMenu* Menu, class UGraphNodeContextMenuContext* Context) const override;
// End of UK2Node interface
// UAnimGraphNode_Base interface
virtual FString GetNodeCategory() const override;
virtual void CustomizeDetails(IDetailLayoutBuilder& DetailBuilder) override;
virtual void PreloadRequiredAssets() override;
// End of UAnimGraphNode_Base interface
// Gives each visual node a chance to validate that they are still valid in the context of the compiled class, giving a last shot at error or warning generation after primary compilation is finished
virtual void ValidateAnimNodeDuringCompilation(class USkeleton* ForSkeleton, class FCompilerResultsLog& MessageLog) override;
// End of UAnimGraphNode_Base interface
};