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

MMD联动Unity学习日志 Vol.13

2019-05-11 13:51 作者:NXL2  | 我要投稿

前言

    这期我们继续学习Visual Effect Graph,还是接着12期的内容,再增加一些其它的效果。

这里替换了天空盒

具体操作    

    这次我们给VFX增加一些黑板参数。参数允许你制作一款对用户更加友好的输入界面,来替代节点,文本和块。我们可以在Inspector(检查器)得到一些有序的色块,滑动条和空白。我们可以在检查器改变这些参数,当你想要为自己或者和另一个开发合作暴露这些参数,设置黑板真得几乎不费时间。

    将黑板没有打开时,我们可以点击界面左上角的Blackboard来打开它。

打开黑板

    我们举个例子,让用户设置每秒粒子的产出数量。

    首先我们需要找出我们想要的参数类型,输出端口是一个单纯的数值,它可能是int或者float类型的参数,这里更符合int类型参数。我们在黑板上新建一个int类型参数,点击黑板右上角加号图标,选择int创建一个参数,重命名Number of Particles,勾选Exposed将参数暴露出去,再给默认值设置为10000,在Tooltip里面写上“每秒产出粒子的数量”。将参数拖出黑板,再将它与Spawn文本的Constant Spawn Rate块连接起来。

自动保存

    如果我们已经勾选了AutoCompile(自动编译)按钮,VFX会自动保存。否则你就得手动去点击Compile来保存图表。

    回到层级面板,点击VFX物件,在检查器可以在底部看到刚才我们在黑板创建的参数已经暴露出来,将我们把鼠标悬停在参数上面,可以看到刚才输入的提示。我们可以实时改变参数数值同时看到VFX在拖动数值更新后的变化。或者我们直接输入参数。如果你想要将输入框内数值限制在一定范围内,就得回到黑板里面将Range(范围)勾选,为参数设置一个(Min)最小值和一个(Max)最大值。我们设置好范围后,可以在上面看到一个滑动条,可以控制我们的参数。当然我们可以随意实验性地在黑板定义符合我们意图的较好的范围。这样主要是为了让我们设置起来更容易,但我们能够做得不只这些。我们将下面中的参数设置暴露出去。

暴露出来的参数
ColorAndAlpha

    当前每个粒子的颜色受ColorAndAlpha影响,在生命周期渐变。我们可以用int或者float参数更方便地制作一个渐变的参数,可以让我们在检查器选择渐变的方式。在黑板中点击加号,选择Gradient(渐变)类型,命名为Color over Lifetime,勾选Exposed将它暴露出去。我之前已经做好一个很不错的渐变,我们选中它。在Tooltip里面输入“生命周期中颜色和透明度的改变”,我们将它拖出来,把它和Color/Alpha over Life块的Gradient参数连接起来。回到检查器,我们可以看到参数已经加到下面,默认是关闭的,我们给它勾选后就可以看到效果了,我们可以在里面找到我们之前设置好的预置渐变效果。

    如果你还想再给粒子再加更多变化,我们可以改变每个粒子产出时的颜色。生命周期中的Alpha颜色渐变对我们很有帮助,但我们还要给Initialize(初始)文本设置Set Color(设置颜色)的块,来增加一些额外迸发出来的颜色。我们给Initialize文本向上一点空间,来增加一个额外的块。在空白处右击,搜索Set Color,点击添加设置颜色的块。在Color左侧的节点处向外拖动,会出现搜索节点的菜单,搜索Sample Gradient(样本渐变),添加样本渐变节点。样本渐变节点可以让你在上面选项输入一整个渐变的颜色,然后在下面选项输出一个单一颜色,Time参数滑动条决定你从渐变色中取出的是哪个颜色,为0时它取得是最左面的颜色,为1时它取得最右面的颜色。当你拖动滑动条时可以在Set Color块中看到颜色的变化。

    打开黑板,我们再点击加号增加Gradient参数,命名为Initial Color Cycle,勾选Exposed将其暴露出去,选中默认输出的渐变预置。别忘了在Tooltip里面输入“产生粒子的颜色范围”。将它拖出黑板,连接到Sample Gradient的节点上。我们在Sample Gradient节点上给Time增加一个节点,让Time参数在0和1之间循环,这样我们可以在特效运行过程中,让粒子产生的初始颜色变得稍微不同。这样粒子在产生时的颜色始终是在变化的。

粒子在产生时颜色的变化

上一期我们曾接触到Periodic Total Time这个节点,下面是它的周期图表。

Periodic功能的值变化

    我们在VFX创建一个Periodic Total Time节点,将它和Time连接起来。

将周期时间节点与样本渐变连接

    它可以让参数值从0开始,随时间向1变化,接着再次回到0再向1,这样不断循环。这里我们要注意的是,当参数从1转向0时,我们需要将最左侧和最右侧的颜色和Alpha值设置相同,这样才不会使用粒子的颜色突然变化。这个节点的循环速度取决于这里的周期上升速度,我们可以在黑板暴露另一个参数,让用户控制循环速度到底多快。我们在黑板里点击加号,创建一个float参数,命名为Initial Color Cycle Duration,将值设为5,并将其暴露出去,提示输入“初始颜色范围间的循环时间”,我们把它拖出来,将它和Periodic Total Time节点的Period连接。

我们回到VFX的检查器,将所有参数激活(勾选)。设置适当的数值,现在我们可以用不同的渐变和数值让粒子效果变成自己独有的效果,这已经和我们最初的粒子效果相当不同了。当然,调整这些设置里的任意一项都会使效果变化,这是练习里最重要的一点。

最终效果

    你可以使粒子非常漂亮,精巧,或者硕大,粗糙,明亮,想要什么样的效果完全取决于你的程序,或是你想怎么应用在游戏中。


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

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