动画状态机-程序姿态-节点相关问题反馈和优化意见

我最近在做角色动画,由于角色有上百个动画文件,并且需要混合和使用程序控制,所以我使用了cocos的动画状态机和程序姿态来管理动画混合内容,以下是我列举出的一些使用问题和个人感觉需要优化的内容:

1.【拷贝变换】节点,在使用拷贝变换复制另一个节点的坐标时,坐标修改仅应用于当前节点,这和我们使用骨骼的习惯有所不同,按理说当我旋转父级骨骼子级骨骼也会旋转,比如我们旋转角色的大腿,小腿也会跟着旋转。但cocos【拷贝变换】的结果并非如此。


如图:我在角色的手臂上面用【拷贝变换】节点,让手臂的变换跟随自己设置的节点,无论我怎么旋转手臂,手部的旋转都不会发生变化,就像骨折了一样。此外【拷贝变换】也需要支持在世界坐标下获取变换,目前仅支持局部坐标。

2.需要支持【获取变换】节点,有时候开发者希望从另外一个节点获取位置或者旋转,比如在使用【IK】或者【应用变换】节点时,开发者可以直接获取节点的位置或者旋转,直接作用于【IK】,这会减少很多工作量,目前只能通过变量的方式从代码中获取。
image

3.支持【程序姿态】嵌套,可以将一个程序姿态节点的结果,作为动画播放,输出到另一个【程序姿态】,这样方便模块化管理【程序姿态】,比如这个【程序姿态】节点负责混合,另外一个【程序姿态】节点负责将对前者的混合结果添加IK。
image

4.支持【程序姿态】外部变量,类似于【动画图变体】,【程序姿态】可以通过传入外部变量的方式,控制程序姿态内部的一些内容,比如【IK节点】的一些参数(比如骨骼的名称)。可以更方便的复用【程序姿态】。
image

纯个人观点,不喜勿喷,如有更好的建议请各位也提出来。

编辑器版本:3.8.1

2赞

大佬程序姿态图咋用啊

姿态图是好功能但是用的人太少了,游戏没到那个规模反馈也少

20250110更新
【应用变换】节点问题,在父级通过节点设置旋转后,尽管子级的物体使用【应用变换】在世界坐标下设置了新的旋转,并且选择了replace模式,但子级的旋转任然会受到父级骨骼的影响。正常情况下,【应用变换】的replace模式+世界坐标下,骨骼的旋转应该全局固定,不应该受到任何父子级关系的影响。

此处应该是变换的顺序存在问题,正确的方式应该按照蓝图的顺序进行变换,目前感觉应该根据固定的顺序进行变换的。