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]
89 lines
3.0 KiB
C++
89 lines
3.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "PersonaAssetEditorToolkit.h"
|
|
#include "IHasPersonaToolkit.h"
|
|
#include "Animation/SmartName.h"
|
|
|
|
class UAnimationAsset;
|
|
class IAnimationSequenceBrowser;
|
|
class UAnimSequenceBase;
|
|
struct FRichCurve;
|
|
class ITimeSliderController;
|
|
enum class ERawCurveTrackTypes : uint8;
|
|
|
|
class IAnimationEditor : public FPersonaAssetEditorToolkit, public IHasPersonaToolkit
|
|
{
|
|
public:
|
|
/** Set the animation asset of the editor. */
|
|
virtual void SetAnimationAsset(UAnimationAsset* AnimAsset) = 0;
|
|
|
|
/** Get the asset browser we host */
|
|
virtual IAnimationSequenceBrowser* GetAssetBrowser() const = 0;
|
|
|
|
/** Support structure for EditCurves */
|
|
struct FCurveEditInfo
|
|
{
|
|
UE_DEPRECATED(5.3, "Please use the constructor that takes a FName.")
|
|
FCurveEditInfo(const FText& InCurveDisplayName, const FLinearColor& InCurveColor, const FSmartName& InName, ERawCurveTrackTypes InType, int32 InCurveIndex, FSimpleDelegate OnCurveModified = FSimpleDelegate())
|
|
: CurveDisplayName(InCurveDisplayName)
|
|
, CurveColor(InCurveColor)
|
|
, CurveName(InName.DisplayName)
|
|
, Type(InType)
|
|
, CurveIndex(InCurveIndex)
|
|
, OnCurveModified(OnCurveModified)
|
|
{}
|
|
|
|
UE_DEPRECATED(5.3, "Please use the constructor that takes a FName.")
|
|
FCurveEditInfo(const FSmartName& InName, ERawCurveTrackTypes InType, int32 InCurveIndex)
|
|
: CurveName(InName.DisplayName)
|
|
, Type(InType)
|
|
, CurveIndex(InCurveIndex)
|
|
{}
|
|
|
|
FCurveEditInfo(const FText& InCurveDisplayName, const FLinearColor& InCurveColor, const FName& InName, ERawCurveTrackTypes InType, int32 InCurveIndex, FSimpleDelegate OnCurveModified = FSimpleDelegate())
|
|
: CurveDisplayName(InCurveDisplayName)
|
|
, CurveColor(InCurveColor)
|
|
, CurveName(InName)
|
|
, Type(InType)
|
|
, CurveIndex(InCurveIndex)
|
|
, OnCurveModified(OnCurveModified)
|
|
{}
|
|
|
|
FCurveEditInfo(const FName& InName, ERawCurveTrackTypes InType, int32 InCurveIndex)
|
|
: CurveName(InName)
|
|
, Type(InType)
|
|
, CurveIndex(InCurveIndex)
|
|
{}
|
|
|
|
bool operator==(const FCurveEditInfo& InCurveEditInfo) const
|
|
{
|
|
return CurveName == InCurveEditInfo.CurveName && Type == InCurveEditInfo.Type && CurveIndex == InCurveEditInfo.CurveIndex;
|
|
}
|
|
|
|
// removing deprecation for default copy operator/constructor to avoid deprecation warnings
|
|
PRAGMA_DISABLE_DEPRECATION_WARNINGS
|
|
FCurveEditInfo(const FCurveEditInfo&) = default;
|
|
FCurveEditInfo& operator=(const FCurveEditInfo&) = default;
|
|
PRAGMA_ENABLE_DEPRECATION_WARNINGS
|
|
|
|
FText CurveDisplayName;
|
|
FLinearColor CurveColor;
|
|
|
|
UE_DEPRECATED(5.3, "Please use CurveName")
|
|
FSmartName Name;
|
|
FName CurveName;
|
|
ERawCurveTrackTypes Type;
|
|
int32 CurveIndex;
|
|
FSimpleDelegate OnCurveModified;
|
|
};
|
|
|
|
/** Edit the specified curves on the specified sequence */
|
|
virtual void EditCurves(UAnimSequenceBase* InAnimSequence, const TArray<FCurveEditInfo>& InCurveInfo, const TSharedPtr<ITimeSliderController>& InExternalTimeSliderController) = 0;
|
|
|
|
/** Stop editing the specified curves */
|
|
virtual void StopEditingCurves(const TArray<FCurveEditInfo>& InCurveInfo) = 0;
|
|
};
|