创建自定义动画节点需要两个类:
一个是您在编辑器中看到的图表节点
一个是真正在运行时工作的行为节点
动画图表节点,派生自:UAnimGraphNode_Base
例如:class UAnimGraphNode_SequencePlayer : public UAnimGraphNode_Base
动画行为节点,派生自:FAnimNode_Base
例如:struct ENGINE_API FAnimNode_SequencePlayer : public FAnimNode_Base
两个节点的基类是不同的:一个基类是UObject(UAnimGraphNode_Base),另一个的基类是UStruct(FAnimNode_Base)
动画图表节点类的构建:
所有的图表节点包含了类似这样的对应行为节点:
class UAnimGraphNode_SequencePlayer : public UAnimGraphNode_Base
{
GENERATED_BODY()
UPROPERTY(EditAnywhere, Category=Settings)
FAnimNode_SequencePlayer Node;
}
这就是最简单的 动画图表节点,其中包含动作行为节点对象。
动画行为节点的执行,是通过FPoseLink或FComponentSpacePoseLink进行串联的。
FPoseLink 是本地骨骼空间的(其实是相对于父节点来说的), FComponetSpacePoseLink是控件空间的。
动画图表节点默认带有FPoseLink输出(也就是右侧的小人), 如果需要改变成FComponetSpacePoseLink, 需要重写<