Files
UnrealEngine/Engine/Source/Editor/AnimGraph/Private/AnimGraphNode_CopyBoneDelta.cpp
2025-05-18 13:04:45 +08:00

48 lines
1.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "AnimGraphNode_CopyBoneDelta.h"
#define LOCTEXT_NAMESPACE "CopyBoneDeltaNode"
UAnimGraphNode_CopyBoneDelta::UAnimGraphNode_CopyBoneDelta(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
{
}
FText UAnimGraphNode_CopyBoneDelta::GetTooltipText() const
{
return LOCTEXT("TooltipText", "This node accumulates or copies the transform of the source bone relative to it's ref pose position. Whereas the copy bone node will copy the absolute position");
}
FText UAnimGraphNode_CopyBoneDelta::GetControllerDescription() const
{
return LOCTEXT("ControllerDescription", "Copy Bone Delta");
}
FText UAnimGraphNode_CopyBoneDelta::GetNodeTitle(ENodeTitleType::Type TitleType) const
{
if((TitleType == ENodeTitleType::ListView || TitleType == ENodeTitleType::MenuTitle) && (Node.TargetBone.BoneName == NAME_None) && (Node.SourceBone.BoneName == NAME_None))
{
return GetControllerDescription();
}
else
{
FFormatNamedArguments Args;
Args.Add(TEXT("Description"), GetControllerDescription());
Args.Add(TEXT("Source"), FText::FromName(Node.SourceBone.BoneName));
Args.Add(TEXT("Target"), FText::FromName(Node.TargetBone.BoneName));
if(TitleType == ENodeTitleType::ListView || TitleType == ENodeTitleType::MenuTitle)
{
return FText::Format(LOCTEXT("ListTitle", "{Description} - Source Bone: {Source} - Target Bone: {Target}"), Args);
}
else
{
return FText::Format(LOCTEXT("Title", "{Description}\nSource Bone: {Source}\nTarget Bone: {Target}"), Args);
}
}
}
#undef LOCTEXT_NAMESPACE