creator3d的3d模型动画居然不能改变动画播放速度,或者是我没找到方法,引擎大佬是否可以指导

现在我的3d角色有两个动画Idle(待机),Move(移动)。角色的移动速度是不定的,想根据角色的移动速度动态改变动画Move的播放速度。找了半天没找到方法。

如果是用unity的Animator做,可以很轻松地地做出。
如下图,unity的动画控制器能动态设置动画的播放速度,creator3d编辑器没这个功能

unity的Animatior还可以通过代码改变动画播放速度。

animator.speed = 2; // 速度加倍播放

creator3d 的 Animation 没有speed 这个属性,也找不到其它的方法改变播放速度。
唯一发现有播放速度设置的是AnimationClip 对象,有个speed属性,但是设置了发现没什么用。

比如:
animation.clips[1].speed = 2; // clips数组第二个对象是移动动画剪辑,尝试修改播放速度为原来的2倍。
animation.play(“Move”); // 再执行播放移动动画

结果,没什么效果,动画播放速度不变。

引擎组大佬,creator3d的Animation到底能不能改动画播放速度啊,求答案。

1赞

可以的。

    animationComponent.stop();
    animationComponent.play('walk');
    let state: AnimationState = animationComponent.getState('walk');
    state.speed = 2;
 

这个方法可以,多谢。

顺便请教以下,怎么判断一个动画是否已经播放结束

动画组件有事件监听啊。 onFinish之类的事件监听呀

只改 clip 的速度是不行的噢,运行时 clip 会实例化成 state,要改 state 的速度了。(Animator 在开发啦,预计明年首个大版本上线)

主要的是clip的speed不能像u3d那样在编辑器里设置,使用代码修改很不方便

2022年嘛(小声)

别这么直接,还没过年呢 :roll_eyes:

OK,这个需求记录一下。不过改了 clip,所有引用到的都会改噢,这是你要的效果嘛

2021 年中最迟,个人猜测!

1赞


在动画编辑器上设置speed试试~

3d动画需要代码播放吗 编辑器设置了不会播放