Marionette 动画系统 程序化控制动画图所提供的方法不完善

  • Creator 版本:cocos creator 3.5版本

目前 木偶动画 能在 动画图上 进行 状态机形式的 动画切换 与控制 ,但 想在 程序运行过程中,实时修改其 某个 动画状态的 速度、指定播放帧、倒放(速度设置为负数)、获取 状态的播放时长与总时长 ,均没找到 提供的方法。
目前官方 API文档中 只提供了部分 方法
getVariables 获取所有的变量及变量名/类型/值等相关信息。
setValue 设置变量的值。
getValue 获取变量的值。
getCurrentStateStatus 获取当前状态的信息。
getCurrentClipStatuses 获取当前的动画剪辑的状态。
getCurrentTransition 获取当前的状态过渡。
getNextStateStatus 获取下一个状态的信息。
getNextClipStatuses 获取下一个动画剪辑的状态。
setLayerWeight 设置某个 动画图层级 的权重。

慢慢搞!!

例如 我在 用 骨骼动画时 一个下楼梯动作 我可以鼠标点击及程序运行时,开始播放 人物下楼梯动画,并在动画过程中松开鼠标,让其倒放,在次点击可以从倒放停止时的帧数继续播放正放时的动画,从而达到随玩家意愿下楼梯。目前的 木偶动画 为实现功能 ,我只能将 一个动画拆分成多份,并额外复制粘贴一份 用于制作 倒放动画 , 相当于 一个动画 变成了 正放动画 与 倒放动画 。实现后仍会有些 bug 与 问题。

Marionette 动画 目前可以指定的动画从第几帧开始播放吗 类似 之前的骨骼动画 play(name, frame)

Marionette动画 我查找的api与文档 下来 没找到 对应的方法 来实现

某个 动画状态的 速度、倒放(速度设置为负数)

速度这个可以通过绑定状态的“速度乘数”变量,然后设置这个变量就可以了。速度设置为负数我们目前没有支持,不过一定会支持。

获取 状态的播放时长与总时长

这个 API 正在考虑添加,但是获取的只有当前状态的,而不是任意状态的。

指定播放帧

这个 API 正在考虑添加。

我建了个工单,可以订阅一下。 More runtime control over animation controller · Issue #11152 · cocos/cocos-engine (github.com)

1赞

已经5月底啦,3.5.1还会出来吗?还是直接3.6

3.5.1应该还是有的,我看官方已经把3.6从原来的6月推迟到7月了

4.0应该会有的,再等两年就好啦 :upside_down_face:

负速度已实现,预计于 3.6 发布: Implement negative speed in animation graph · Issue #11159 · cocos/cocos-engine (github.com)

1赞

大佬
下个月能出社区版吧??? :thinking: