首页 > 其他分享 >刀光拖尾功能的改良

刀光拖尾功能的改良

时间:2023-01-17 18:56:59浏览次数:54  
标签:光点 插件 改良 插值 刀光 拖尾

年终终于有空,刀光拖尾是我很早就想回顾的一个课题,项目中多采用插件实现,很少有机会去研究。

之前也写过一版拖尾,但效果并不好。

 

在游戏中刀光拖尾有2种做法,一种是直接做死,用Shader做遮罩去控制滑动效果,这种做法

通常用于非写实类项目,unity自己的3d game kit demo对这一块已经做的比较全,可以直接参考。

第二种是程序化生成,本文主要就这种做法进行讲解。

 

对于程序化生成的拖尾,通常重新实现一遍TrailRenderer,自行解决折线问题、扩展插值逻辑等。

如果是直接模仿TrailRenderer去做,最终会有一股浓重的PS2游戏的感觉,多边形效果明显,

我最早的刀光拖尾脚本也是这个基于思路去实现。

资源商店有一个很老的插件X-WeaponTrail,拖尾非常顺滑,研究了下发现作者首先记录每帧刀光点的位置

存为采样点,然后根据颗粒度参数进行0-1的插值,插值点再通过距离拿到采样点再最终走一遍CatmulRom输出,

还是比较细致的。后来的改良版本基于这个插件的思路去实现。

 

来对比下改良前后的效果(上图-旧的刀光拖尾,下图-新的刀光拖尾):

(上图的重面问题缩短刀光范围可以解决)

 

X-WeaponTrail的做法是每帧记录最新的刀光点位置,拿到刀光点List通过CatmulRom插值,

并通过距离信息,等距的生成Mesh。每个拖尾面片的顶点位置等信息并没有进行记录,而是

实时计算的,这就导致刀光点发生变化之后,插值就会发生变化,就会有奇怪的滚动效果。

 

当把拖尾拉长后,刀光滚动的问题就比较明显:

 

原版插件也有这个问题,不过一般刀光速度很快,所以也还好。

 

最终参考该插件完成了刀光拖尾功能的改良,代码Gitee地址:https://gitee.com/Hont/weapon-trail-fx

标签:光点,插件,改良,插值,刀光,拖尾
From: https://www.cnblogs.com/hont/p/17058510.html

相关文章