以前的博客有提到如何实现植被摆动的效果:点击打开链接
核心问题就是,摆动的幅度是根据什么样的权重.我简单分为三种.
1.UV坐标作为权重
2.顶点到模型原点的距离作为权重
3.顶点颜色作为权重
以CE3引擎来讲,整体摆动用第二种,细节抖动用第三种,两种结合使用,就可以实现完美的摆动效果.但是用第二种,就不能用静态合批了.因为静态合批以后,模型的原点就变了,这个权重的计算也是错误的了.如果要用静态合批还要完美的摆动,怎么办呢?
我想到一个办法,就是把第二种的权重,保存到顶点颜色的一个通道里面,这样即使静态合批了,这个权重值也不会改变的,那么问题来了,如何保存呢.打开3DMAX的顶点颜色绘制工具,你会发现根本就刷不出这种权重值,那么只能程序来生成了,所以我就用3DMAX的脚本语言写了一个工具来自动生成这个整体摆动的权重.
工具界面:
我用蓝色通道来保存这个整体摆动权重值.
过渡曲线我尝试了几种:
权重过渡支持从上到下或者从下到上,这样的好处是可以支持灯笼这种倒挂物件的摆动.
至于顶点摆动的代码,可参考Unity官方地形的植被动画的代码,其