欢迎光临散文网 会员登陆 & 注册

MMD联动Unity学习日志 Vol.11

2019-04-28 22:17 作者:NXL2  | 我要投稿

前言

    这次我们继续深入学习Visual Effect Graph。在这一期中,让我们构建我们的第一个简单的视觉效果图。这将应用我们在上一期中学到的内容,并使我们的Context,Block(块)和Node(节点)协同工作,以创建一个简单但视觉上有趣的粒子系统。

    我们从stock发射器开始,调整粒子的大小和比例,然后调整它们的渲染设置,使每个粒子成为发光条纹。 将粒子初始化为像圆环这样的简单形体,创建一个漂亮的火环。 

具体操作

    首先我们创建一个HDRP的项目,根据前面一期的经验,先导入High-Definition RP,Visual Effect Graph两个安装包。截图中项目对项目进行了一些预处理,也是比较简单的,使用了之前介绍过的插件包Post Processing,对天空盒进行了一些设置,这些设置只是为了使场景更加精美,用它来获得渐变天空的背景。

创建新的VFX

    在项目中创建一个新的视觉效果图,在项目中右击选择Create>Visual Effects>Visual Effect Graph,命名为FlareVFX。

将FlareVFX拖到场景的效果

    我们将FlareVFX拖到场景中,这样我们可以在场景中直观看到粒子的效果。把它拖入场景后可以用移动工具对其进行拖动,这和操作其它对象一样。

Game窗口的效果

    要对其进行编辑,只需要双击VFX文件,或者点选Window>Visual Effects>Visual Effect Graph打开。默认的粒子效果看起来像一个喷泉。

图表主表内容

    看一下图表来回顾上一次专栏的内容,图表主要包括Spawn,Initialize,Update,Quad Output四个部分。它们是用从上至下的流程来运作的,所以我们通常从最上面开始进行设置。

   

Spawn

 Spawn部分,这时的设置是使系统在每秒内产生10个粒子,如果将参数修改为100,你会发现没有太多变化,因为目前已初始化的容量限制在32,这意味着我们不会有更多的粒子。

Initialize

    现在我们将容量值设为1000,粒子就会看起来像烟雾颗粒或气泡,因为我们已经有了更多数量的粒子。

修改粒子纹理

    但是我们不希望它们输出时看起来像图标。这就要到下面的Quad Output,任何粒子在屏幕呈现的样子都取决于我们在输出这个部分的设置。主纹理目前是一个精灵,这是Unity用于默认粒子。我们是从VFX包得到的,我们还可以得到一些其它比较好的纹理。我们可以尝试将主纹理换成Sphere精灵,或者有点接近真实的烟雾的粒子,或者为我们使用最终效果的Sparkle纹理。

Orient(方向)的设置

    当前粒子面向摄像机使用Orient(方向)模块,这里有一些选项,多数粒子只是单一几何体,我们可以控制它们面向的方式取决于我们想要的效果。在这里我们想选择一个更快的速度,它使用粒子多边形面朝着它们向上或在自身的Y轴方向移动。

    

生命周期中设置大小

    当前我们设置整个粒子的大小和XYZ比例动画都取决于它们整个生命周期。点击曲线缩略图可以看到更多细节。左边的关键帧代表粒子产生的时间,可以看到开始是一个非常小的数值,然后它的大小和XYZ持续增长直到到达它生命周期的末尾,这个使用默认设置的过程持续了1-3秒。粒子成长在XY和Z三个所有轴上。如果我们想做得看起来更好一点,我们只在Y轴为粒子设置动画,而不对X轴产生影响。

    这样我们需要用几个不同的模块替换它。确保你已经打开了自动编译,当你修改时,我们希望这样做在编辑器中显示 。我们先关闭Set Size over Life的勾选,实际上也可以直接删除。我们可以更换一些其他模块来替代它做类似的事情,还可以给我们更多的具体控制。

Set Size设置效果

    我们先创建一个默认设置大小的模块,这不需要随着时间推移做动画,只是一个恒定的模块。在标题栏或空白区域,点击右键创建模块,或者你也可以按下空格键来获得相同的菜单。寻找一个模块来改变粒子属性,输入Size,你可以找到非常多的模块,如果知道模块的具体名称,直接输入名称可以马上找到我们想要的模块。这里我们输入Set Size,这个模块可以设置我们默认基本大小,这个参数会影响所有轴,所有方向上粒子大小都是一样的,现在让它的参数保持为1。

Set Scale设置效果

    我们再增加一个模块让X轴变得更小,添加模块输入Set Scale,我们可以独立控制XYZ轴比例,如果我只想缩放X轴,那我们在Channels这个选项就选中X,我们要把它变细变小,就在下面的Scale中设为0.05。

Set Scale over Life设置后的效果

    下面我们再给Y轴增加一个模块,我们希望这个模块可以随着时间推移做出变化,那添加模块输入Set Scale over Life,我们在这个模块将Channels设为Y,我想要它在产生时非常小,然后拉伸到合适的尺寸保持一段时间,然后在它结束生命周期时,它会再交收缩几乎像一个灰烬。

曲线设置形状

    我可以重设默认的平滑曲线关键帧,我想要将曲线描绘成类似梯形的形状。我们先选择直线的形状,分别在0.1和0.9的位置增加两个关键帧,将左右两侧的关键帧拉到0的位置,再将中间两个关键帧拉到0.2的位置,这样我想要的曲线就出来了。现在我们的粒子像弹出一个个小点。

Blend Mode切换为Additive

    我们再将Blend Mode切换为Additive,这样粒子会变得像发光的尘埃。

颜色的设置

    我们可以修改Color/Alpha over Life来使粒子比较突出一点,默认只是普通的白色,我们可以添加一些HDR中间的颜色来让它们发光。这个渐变的底部可以单击添加新的颜色,可以选择更多不同的色调。我们让粒子从白色变成一个非常明亮的HDR黄色,然后在他们在冷却之前到红橙色。它们在顶部渐变的熄灭代表Alpha值或透明度,我们想要粒子以Alpha为零开始不可见,然后让它们完全可见并持续一段时间,最后才会淡出。我们可以实验性的在编辑颜色内容来观察游戏窗口中的粒子的反应。可以使用Presets(预设)中保存渐变的New按钮。这种你可以尝试各种不同颜色和Alpha参数的设置。

未定义Position前的效果

    此时粒子还只是向上喷出如同火星的样子,如果定义初始边界粒子效应会产生更大的影响。这时我们还只是从空间某一个点生产出粒子,我们可以使用Position模块来初始化使粒子产生出自3D形体,而不只是从一个点创建。添加Block>Position,你可以看到这里有一些3D形体的Position选项,这里我们选择Torus。

附加Position(Torus)的效果

这时我们可以看到粒子像圣诞花环一样,接着我们让粒子数量增加到2000,容量提高到10000,现在圆环形状就变得更加明显了。

最终效果

    

好了,效果是不是很赞啊,小伙伴们心动了吗,马上来动手实践一下吧!


MMD联动Unity学习日志 Vol.11的评论 (共 条)

分享到微博请遵守国家法律