Unreal FAnimNode_Base & FAnimationPoseContext

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()
    功能:获取属性

你可能感兴趣的:(Unreal FAnimNode_Base & FAnimationPoseContext)