You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
Runtime notes: - Removes 'smart name' usage across the animation systems. - Changed curve blending from a uniform array (sized per skeleton) to a sparse array of sorted named values. Blends and other combiners are performed using a dual iteration 'tape merge'. - Skeleton curves are no longer guaranteed to cover all curve names that can be found at runtime. Editor notes: - Curve metadata (flags, bone links etc.) is still present on the skeleton, but can also now exist on a skeletal mesh - Curve metadata (for morph targets) is still populated on import - Curves can now be used arbitrarily at runtime New features: - New Find/Replace dialog that allows for batch-replacing curves and notifies across all of a project's assets - New curve debugger tab in various Persona editors that allows for viewing curve values live. This also now allows viewing curves for specific pose watches. - Pose watches now output curve tracks to the Rewind Debugger #rb Jurre.deBaare,Nicholas.Frechette,Sara.Schvartzman,Helge.Mathee,Kiaran.Ritchie,Jaime.Cifuentes,Martin.Wilson,Keith.Yerex,Andrean.Franc (and more!) #jira UE-167776 #jira UE-173716 #jira UE-110407 #preflight 63fc98c81206d91a2bc3ab90 #preflight 63f3ad4f81646f1f24c240c2 [CL 24421496 by Thomas Sarkanen in ue5-main branch]
66 lines
1.9 KiB
C++
66 lines
1.9 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
/*=============================================================================
|
|
EditorAnimCurveBones.cpp: Montage classes that contains slots
|
|
=============================================================================*/
|
|
|
|
#include "Animation/EditorAnimCurveBoneLinks.h"
|
|
|
|
#define LOCTEXT_NAMESPACE "UEditorAnimCurveBoneLinks"
|
|
|
|
UEditorAnimCurveBoneLinks::UEditorAnimCurveBoneLinks(const FObjectInitializer& ObjectInitializer)
|
|
: Super(ObjectInitializer)
|
|
, MaxLOD (0xFF)
|
|
{
|
|
}
|
|
|
|
void UEditorAnimCurveBoneLinks::Initialize(const TWeakPtr<class IEditableSkeleton> InEditableSkeleton, const FSmartName& InCurveName, FOnAnimCurveBonesChange OnChangeIn)
|
|
{
|
|
AnimCurveMetaData = nullptr;
|
|
CurveName = InCurveName.DisplayName;
|
|
OnChange = OnChangeIn;
|
|
SetFlags(RF_Transactional);
|
|
}
|
|
|
|
void UEditorAnimCurveBoneLinks::Initialize(UAnimCurveMetaData* InAnimCurveMetaData, const FName& InCurveName, FOnAnimCurveBonesChange OnChangeIn)
|
|
{
|
|
AnimCurveMetaData = InAnimCurveMetaData;
|
|
CurveName = InCurveName;
|
|
OnChange = OnChangeIn;
|
|
SetFlags(RF_Transactional);
|
|
}
|
|
|
|
void UEditorAnimCurveBoneLinks::Refresh(const FSmartName& InCurveName, const TArray<FBoneReference>& CurrentLinks, uint8 InMaxLOD)
|
|
{
|
|
if (AnimCurveMetaData.IsValid())
|
|
{
|
|
// double check the name
|
|
CurveName = InCurveName.DisplayName;
|
|
ConnectedBones = CurrentLinks;
|
|
MaxLOD = InMaxLOD;
|
|
}
|
|
}
|
|
|
|
void UEditorAnimCurveBoneLinks::Refresh(const FName& InCurveName, const TArray<FBoneReference>& CurrentLinks, uint8 InMaxLOD)
|
|
{
|
|
if (AnimCurveMetaData.IsValid())
|
|
{
|
|
// double check the name
|
|
CurveName = InCurveName;
|
|
ConnectedBones = CurrentLinks;
|
|
MaxLOD = InMaxLOD;
|
|
}
|
|
}
|
|
|
|
void UEditorAnimCurveBoneLinks::PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent)
|
|
{
|
|
Super::PostEditChangeProperty(PropertyChangedEvent);
|
|
|
|
if(OnChange.IsBound())
|
|
{
|
|
OnChange.Execute(this);
|
|
}
|
|
}
|
|
|
|
#undef LOCTEXT_NAMESPACE
|