如何实现动画击飞后原地起身继续战斗?
 
Notifications
Clear all

[已解决] 如何实现动画击飞后原地起身继续战斗?

1 帖子
1 Users
0 Reactions
320 查看
0
Topic starter

例如上万小兵被同时击飞数米远,但血量有剩余,怎么做到原地起身


1 Answer
0
Topic starter

GPU动画本质是在shader中使顶点运动,不会改变物体的位置。但万人同屏插件相比其他GPU动画插件额外支持骨骼记录,使gpu动画仍然支持实时获得骨骼Transform信息。

1. 将击飞动画尾帧添加一个GPU动画事件

2. 在这个动画事件触发时通过GetGPUAnimationBone接口获取到当前时间根骨骼的transform(位置、旋转、缩放)

3. 设置rvo的navigationEnabled为false(暂停移动避让系统更新位置),把获取到的根骨骼位置修改到rvo agent的pos即可。注意:修改pos前建议先确保Jobs已经计算完成,防止pos被Jobs计算结果覆盖。修改pos前调用RVOComponent.Instance.Complete()。修改位置后下一帧恢复navigationEnabled为true,rvo单位就能继续自主移动


This post was modified 5 月 前 by efun
This post was modified 1 周 前 by efun
This post was modified 1 天 前 by efun

您的答复

Author Name

Author Email

Your question *

文件不超过 5MB

 
Share:

滚动至顶部