示例项目:
https://github.com/Unity-Technologies/VisualEffectGraph-Samples
案例一:UnityLogo
这个特效可以大体可以分为2部分,一是一个绕着中心无规则旋转的球,大量生成粒子。一是那个logo作为力场,吸附这些发射出来的离散的粒子。一开始我以为logo就是一个简单的正方体,然后以边作为吸附区域。然后发现是一张3D的Texture。
还有一个引力场每帧直接作用于每个粒子,产生扰动。
产生粒子的球体还能与粒子发生碰撞。
有关颜色,我一开始觉得有光照...看了文档才知道粒子颜色由两个东西控制,一是周期的颜色变化,从紫色到红色。
一是通过曲线控制,改变球体周围的颜色产生伪光照的效果。(很聪明的作法)
有关时间,特效的周期,官方特地说了下用Total Time(Per-Particle),不要用(Total Time),我试了下,用Total Time球的运动真的是离散的...
案例二:Morphing Face
一开始我觉得是小正方体拉伸产生的形变,(因为形变剧烈,内部的面露出来了,所以变黑了..)场景里有冷暖灯。仔细看了下是正方体变成狭长长方体然后稍微改变一下朝向,那还应该有个移动的光源。然后找了半天没发现那个移动的光源...结合上一个案列,那应该是是变成正方体时额外加了颜色做出伪光照的效果...
官方用Houdini生成点缓存导入(没说是不是直接导入就能用),不过也可以从Window/Visual Effects/Utilities/Point Cache Bake Tool打开自带的工具生成。
意思是houdini生成的点缓存法线方向都一样是吧...
循环这次用了这个节点,从-12到12之间不断插值并输出并且2.5秒循环一次。
案例三:Butterflies
这个特效比较炫技...我一直在想把蝴蝶做成prefab了用脚本控制运动轨迹会不会更省一点。
蝴蝶的翅膀是带透明通道的贴图,中间部分是mesh。
场景里面有个扰动场但是影响很小,关了也看不出任何变化
蝴蝶的主要移动方式还是随机改变力的方向,然后限制最大速度。
翅膀的扇动与整体的前进使用了正弦函数,来表现蝴蝶运动克服空气阻力的效果。就是让蝴蝶动起来不那么平滑。