参考官方GASP示例的Locomotor示例,使用Locomotor插件,用ControlRig配置了一个蜘蛛怪,问题在于RootComponent的移动,都会提前于mesh。这样会有个问题:
- 一些AI里的判断比如AIMoveTo的距离,如果使用主胶囊体判断,则会出现认为到距离了可以放技能了,看起来怪就会在比较远的位置放出技能,而且如果技能是RootMotion的,那么怪还会平移过来放技能,放完平移回去(如示例视频),这个有什么建议的解决方案么?
- 因为主胶囊体负责移动,比如需要和其他pawn进行block碰撞,就会看起来像是碰到空气墙了的感觉
[Attachment Removed]
Steps to Reproduce[Attachment Removed]
W.2hang
(Wen.Zhang)
3
嗨,你好
单纯地讲GASP的实现,这个角色BP下的Mesh下面有个Sphere,这是一个专门做的逻辑碰撞球。
你的逻辑是否可以改成用这个Sphere的位置来判断,看上去应该能解决你的两个问题。
[Attachment Removed]
嗯嗯我现在也是这么弄的,不过我个人理解这个可能还是更适合玩家主控的角色使用,给AI角色比如蜘蛛怪等用可能会有一些表现问题,比如RootMotion蒙太奇等。只是尝试一下,感谢
[Attachment Removed]
W.2hang
(Wen.Zhang)
5
我个人觉得这是两种方法。GASP的蜘蛛怪的运动是用数学运动模型去驱动的,Root先动,然后身体再用Spring Damper拉过来,这种Q弹的效果表现比较好,这是纯粹的数学模拟,每帧根据模型算出Delta。
至于你说的RootMotion,这种方法是单独的读动画资源内的Delta,不涉及数学模型计算,若是你希望兼容两种,应该是把它们彻底的隔离开,在开RootMotion的时候就不要用Spring Damper的模型,每帧就老老实实地读动画资源内的Delta,应该就OK了。
[Attachment Removed]