最近在做一个绳子游戏,效果大概实现了。但是拉扯效果没法实现。直接上图
(绳子是用的RopeJoint关节 拼接一段一段的小绳子实现的)
原版是这样的
可以看到,移动绳子两端时,整个绳子的效果是比较丝滑的
下面是我的实现方式
绳子两端A,B,都是static静态刚体。
第一种实现方式
我直接修改绳子两端A和B的位置,得到的效果如下
这种方式,链接的所有小块会缓慢跟随,最终会到达目标位置,但是这种方式和原本相差甚大!!
然后我尝试给绳子两端A和B 一个往上的线速度,得到下面的效果
这种方式,每个小绳子间的间距会被拉伸得很大,而且绳子因为速度得原因,绳子在移动到与红色方块平行得位置后。还会继续往上移动。
这种两种方式与原版本效果差距都挺大得。
咨询下大佬们。有没什么办法能达到原版得效果。或者能够不适用物理。使用其他方式来实现这个效果呢~~~急急急~
使用物理模拟的离散点数据,单独渲染绳子即可.(况且绳子真实物理就是可拉伸形变…)
大佬可以详细说说么
关注,最近也在想做一条效果好的绳子
em。我好像大概知道你的意思了~~,也就是物理就让他隐式运行。然后我选择性的去渲染绳子嘛
你把单个小链条重力倍数调大,就不会往上飞了吧。
顶一下…
是的,但是初始状态的时候效果不对。而且这个效果用纯粹的物理应该没法实现了。。应该是要写些代码优化下效果
看竞品表现应该也是用代码处理过,初始长度和最终长度不一致,感觉像是在上提得过程中链条变短了。
我觉得它每个小链条受重力影响的倍数不一样,中间的倍数最大,然后依次向两边递减。
嗯,这个办法理论上是可行的,这就需要用到给绳子两端加上线速度了,因为绳子两端要快速的移动到游戏上放,所以这个线速度是很大的。然后被带动的绳子小节,就会一起快速上升,如果设置重力梯度的话,可能是会达到这个效果的。但是估计需要调试很久的参数才可能实现,我等会去尝试下试试吧~
我在上升的时候修改了重力梯度。,但是重力太大,会拉扯绳子关节,
//
虽然我可以通过延长图片精灵来达到填充拉扯掉的绳子的空像素,但是这种方式实现起来太麻烦。而且效果也还是有差距的。
、、
我准备不用物理。尝试用模拟的方式去实现了
我看竞品也拉扯关节了啊,它最开始上升时,绳子也变长啊,但是收缩得很快。
嗯,不过他也可能是用的非物理模拟出来的。毕竟这个绳子也只是链接绳子两端,不参与任何物理
可以有物理,然后用画图接口,重新根据绳子的每个节点的点,画出一个平滑的多边形。不要显示你有物理的绳子。这样也不会断,而且效果应该还不错。
是的,我之前就是这样做的。刚体和渲染精灵分开。这样,刚体被拉伸了。我精灵图可以根据每个刚体的位置去补齐。
但是无论如何,都要基于刚体的数据。只要刚体的模拟不理想。那我的精灵图渲染肯定也是不行的- -
而且这种方式还繁琐。无情啊
思路是对的,只要调整好物理细节即可啊。 你绘制的时候,不用完全每一节都按照上面图上来。或者 你甚至只需要几个关键节点即可 ,别想太复杂了。
嗯~你的方法应该又是一种尝试方法~我也再去试试吧
这个可以不考虑用物理引擎来做吧,直接写效果吧
这种方式可能是最能实现的了~