美文网首页
Unreal FAnimNode_Base & FAnimati

Unreal FAnimNode_Base & FAnimati

作者: Mr_约科 | 来源:发表于2019-10-15 17:22 被阅读0次

    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 & FAnimati

          本文链接:https://www.haomeiwen.com/subject/obhsmctx.html