专栏/MMD联动Unity学习笔记 Vol.15 制作矢量场

MMD联动Unity学习笔记 Vol.15 制作矢量场

2019年05月16日 10:08--浏览 · --点赞 · --评论
粉丝:2136文章:269

前言

    之前提到过Vector Field(矢量场)的有关内容,这期我们研究如何为Unity制作矢量场。VectorField大致类似于预先计算的力场,为粒子提供速度。在Unity中,它被实现为视觉效果图的Vector Field Force(矢量场力)块。(它也应该在2017.3 Shuriken粒子系统中)。Unity官方发布了一款Houdini专门使用的工具VFXToolBox,可以用来制作点缓存和矢量场。Houdini这个软件,Up没学过,所以我们只能想其它办法来制作矢量场。这个方法稍微有一点麻烦,需要下面两种插件。

事前准备

    1.Blender Vector Field Editor

下载地址:https://github.com/isathar/Blender_UE4_VectorFieldEditor

     UE4(虚幻4)引擎在矢量场模块被实现为可以导入扩展.fga的文件,但在Unity的里面必须转换成3D纹理。 这个Blender插件就是专门给UE4制作矢量场的,它输出的格式是.fga,Unity是无法使用的。所以我们还需要下面一款Unity用的插件。

    2.FGAImporter

    这个Unity插件可以将.fga文件转换成Unity使用的矢量场文件。

下载地址:https://github.com/the40san/FGAImporter

具体操作

    在Blender中制作矢量场

    首先我们将下载的Blender_UE4_VectorFieldEditor-master.zip文件解压,放入Blender的Scripts/Addons文件夹里面。

输入fga找到插件

打开User Preferences(用户设置),点击Add-ons选项卡,输入fga找到FGA Vector Field Tools插件,将其勾选,点击下面的Save User Settings(保存用户设置)按钮。

创建界面

这时可以在界面左侧看到Particle Simulation的选项卡,点击打开FGA Tools界面,点Create按钮打开创建窗口,勾选No gravity(无重力),点击Generate(生成)按钮。

矢量场已经产生

基本的矢量场已经产生,但是目前它的内部还没有任何力的作用。下面我要在里面添加Force(力)。

打开创建菜单

按Shift+A键打开创建菜单,我们选择Force Field(力场)>Force(力)。

力出现在里面

我们切换到物理分页,将力的Strength(强度)提升到5。

提高力的强度

我们点击矢量场,选中里面的粒子。

选中粒子
如果无法选中,我们可以在Outline界面里右击选择

在粒子分页中,将Lifetime(生命周期)设置的长一点(提升可以幅度大一些)。

这里将其设为128

点击播放按钮,可以看到粒子扩散的更远了。

播放后粒子不断扩散

我们打开Display选项,勾选Velocity的话,可以看到粒子运行的方向。

勾选Velocity

先点到动画的某一帧,打开粒子的Cache扩展栏,点击Bake烘培动画。再次点击Free Bake。

点击Bake

然后在FGA Tools中展开Edit扩展栏,点击Calculate按钮。

如果你没有看到任何变化,点击Display扩展栏里面的Show按钮,我们就能看到矢量的计算结果。

点击Show
计算完成的结果显示

我们再用同样的方法,这次我们使用其它Vector工具,比如Turbulence。

Turbulence

我们点击粒子分页,在Cache扩展栏中,点击Free Bake按钮。我们再次点击FGA Tools里面Edit扩展栏的Calculate按钮。我们可以看到里面的Vector都发生了变化 ,像一些Noise。

显示结果

现在我们导出UE4 Vector Field(.fga)文件。

导出fga文件

    将FGA导入Unity并将其用作视觉效果图的矢量场

    我们将下载好的FGAImporter解压。找到.unitypackage文件,双击导入Unity。

    VectorField烘焙为.fga导入到Unity

打开FGAImporter

安装后,在Window菜单下的Visual Effects里面找到FGAImporter,点击打开。

打开.fga文件

当你按下时,将要求你输入导入源VectorField(.fga)和转换的目标3DTexture资源(.asset),因此请指定任意位置。 烘焙完成后,就可以将其放入视觉效果图的矢量场力块的Vector Field(矢量场) 中。

放入矢量场文件

另外,Unity还有一些插件可以制作矢量场。比如Mega Flow,Vector Field Maker。Vector Field Maker有Pro和Lite两款。这里只有Lite是免费的,Up试了一下,它的功能比较简单。相对我还是推荐自己去研究在Blender里面如何去创建矢量场。


投诉或建议