我最近在做角色动画,由于角色有上百个动画文件,并且需要混合和使用程序控制,所以我使用了cocos的动画状态机和程序姿态来管理动画混合内容,以下是我列举出的一些使用问题和个人感觉需要优化的内容:
1.【拷贝变换】节点,在使用拷贝变换复制另一个节点的坐标时,坐标修改仅应用于当前节点,这和我们使用骨骼的习惯有所不同,按理说当我旋转父级骨骼子级骨骼也会旋转,比如我们旋转角色的大腿,小腿也会跟着旋转。但cocos【拷贝变换】的结果并非如此。
如图:我在角色的手臂上面用【拷贝变换】节点,让手臂的变换跟随自己设置的节点,无论我怎么旋转手臂,手部的旋转都不会发生变化,就像骨折了一样。此外【拷贝变换】也需要支持在世界坐标下获取变换,目前仅支持局部坐标。
2.需要支持【获取变换】节点,有时候开发者希望从另外一个节点获取位置或者旋转,比如在使用【IK】或者【应用变换】节点时,开发者可以直接获取节点的位置或者旋转,直接作用于【IK】,这会减少很多工作量,目前只能通过变量的方式从代码中获取。

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

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

纯个人观点,不喜勿喷,如有更好的建议请各位也提出来。
编辑器版本:3.8.1

