FAnimNode
所有运行时动画节点的基础。保证可与最终输出姿势连接。
1. Function
Initialize_AnyThread(const FAnimationInitializeContext& Context)
功能:在节点首次运行时调用
补充:任何时候当您需要进行初始化或重新初始化时调用该函数(当修改实例的网格物体时)
参数:提供访问相关数据的上下问结构
Update_AnyThread(const FAnimationUpdateContext& Context)
功能:调用以更新图形相对于此节点的状态
补充:调用该函数来更新当前状态(比如更新播放时间或混合权重)。该函数取入一个FAnimationUpdateContext,它知道更新的DeltaTime和当前的节点混合权重。
参数:提供访问相关数据的上下问结构
EValuate_AnyThread(FPoseContext& Output)
功能:根据Update()中设置的权重调用以评估局部空间骨骼变换
补充:调用该函数来生成一个 “ 姿势 ”(一系列的骨骼变换)
参数:输出姿态以写入姿态或曲线数据,还提供对相关数据作为上下文的访问
CacheBones_AnyThread(const FAnimationCacheBonesContext& Context)
功能:调用以缓存此节点需要跟踪的所有骨骼。当发生LOD切换时,通常在启动时调用它,可以在任何线程上调用。
参数:提供访问相关数据的上下文结构
EvaluateComponentSpace_AnyThread(FComponentSpacePoseContext& Output)
功能:根据Update()中设置的权重调用以评估局部空间骨骼变换
参数:输出姿态以写入姿态或曲线数据,还提供对相关数据作为上下文的访问
2. 特殊标识符
不赞成,不推荐使用的功能。Please use xxx instead
声明部分UE_DEPRECATED
定义部分PRAGMA_DISABLE_DEPRECATION_WARNINGS
FAnimationPoseContext
构造函数:
结构FAnimInstanceProxy代替对象的动画树更新期间代替的传来传去的UAnimInstance
FAnimationBaseContext(FAnimInstanceProxy* InAnimInstanceProxy)
FAnimationPoseContext(UAnimInstance* InAnimInstance)
FAnimationBaseContext(const FAnimationBaseContext& InContext)
功能:
UAnimBlueprint* GetAnimBlueprint()
功能:获取与此上下文关联的AnimBlueprint
IAnimClassInterface* GetAnimClass()
功能:获取与此上下文关联的Blueprint | AnimClassInterface
void LogMessageInternal(FName InLogType, EMessageSeverity::Type InSeverity, FText InMessage)
功能:节点上下文的接口,用于向代理注册日志消息
1. FAnimationInitializeContext
FAnimationInitializeContext(FAnimInstanceProxy* InAnimInstanceProxy)
2. FAnimationCacheBonesContext
FAnimationCacheBonesContext(FAnimInstanceProxy* InAnimInstanceProxy)
3. FPoseContext
- 属性
FBlendedCurve 姿势
FCompactPose 曲线
bool bExpectsAdditivePose 姿势是否是附加姿势 - 构造函数
FPoseContext(FAnimInstanceProxy* InAnimInstanceProxy, bool bInExpectsAdditivePose = false)
功能:该构造函数为指定的anim实例分配一个新的未初始化的姿势
FPoseContext(const FPoseContext& SourceContext, bool bInOverrideExpectsAdditivePose = false)
功能:该构造函数分配一个新的未初始化的姿势,从源上下文复制非姿势状态 - 方法
FPoseContext& operator=(const FPoseContext& Other)
功能:拷贝构造函数
void ResetToRefPose()
功能:将每一个骨骼转换设置为标识 还是 将此姿势设置为其ref姿势
bool ContainsNaN()
功能:如果任何骨骼旋转包含nan或inf,则返回true
bool IsNormalized()
功能:如果所有骨骼旋转都正常化,则返回true
4. FComponeSpacePoseContext
5. FAnimationUpdateContext
- 属性
float CurrentWeight 当前权重(通过权重实现姿势之间的融合)
float RootMotionWeightModifier 根运动权重修改器
float DeltaTime - 构造函数
FAnimationUpdateContext(FAnimInstanceProxy* InAnimInstanceProxy, float InDeltaTime) - 方法
FAnimationUpdateContext WithOtherProxy(FAnimInstanceProxy* InAnimInstanceProxy)
功能:拷贝构造
FAnimationUpdateContext FractionalWeight(float Multiplier)
功能:倍增
FAnimationUpdateContext FractionalWeightAndRootMotion(float WeightMultiplier, float RootMotionMultiplier)
功能:倍增不同的倍数
FAnimationUpdateContext FractionalWeightAndTime(float WeightMultiplier, float TimeMultiplier)
功能:倍增一个
FAnimationUpdateContext FractionalWeightTimeAndRootMotion(float WeightMultiplier, float TimeMultiplier, float RootMotionMultiplier)
功能:都倍增乘以响应的倍数
float GetFinalBlendWeight()
float GetRootMotionWeightModifier()
float GetDeltaTime()
功能:获取属性
网友评论