Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程

前言

因为工作上的功能,查询到该插件;下载后最终也未选择该插件,不过这里将学习的过程分享一下,方便后来者学习;感觉这个插件已经停止更新了,不过该插件还是很强大的;不知道是否真的能通过该插件实现宣传视频的效果,个人感觉花一定的时间可能可以实现。

宣传效果

插件效果

Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第1张图片
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第2张图片
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第3张图片

安装插件

只需要将.unitypackage文件拖入工程即可。
导入成功后,顶部菜单会多出一个NVIDIA选项:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第4张图片

可以添加组件和创建资源。

而Project窗口的右键也会多出一个NVIDIA选项:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第5张图片

可以创建Assets。

插件使用

在工程的Assets\NVIDIA\Flex Samples 目录下会有案例的,可以直接快速查看:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第6张图片

Assets\NVIDIA\Flex\Actors目录下就是各种效果的组件脚本:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第7张图片

Assets\NVIDIA\Flex\Assets 目录下是各种效果的资源脚本:

Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第8张图片

其中最特殊的就是FlexContainer资源,基本每种效果组件的脚本都需要一个FlexContainer资源,类似于效果容器资源,可在Project窗口内右键 > Create > NVIDIA > Flex > Flex Container创建:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第9张图片

FlexContainer资源属性如图:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第10张图片

可以设置最大粒子数量,单个粒子的属性、全局重力、布料属性、流体属性等。

这里我们就尝试两种效果。

软体

在Assets\NVIDIA\Flex Samples\4. Soft Actor\Scene 场景下制作。

在Project窗口内右键 > Create > NVIDIA > Flex > FlexSoftAsset新建了FlexSoftAsset,软体Boundary Mesh选Cube:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第11张图片

并新建了空节点,新增Flex Soft Actor组件,关联了新建的New FlexSoftAsset 和之前的Flex Container:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第12张图片

操作后发现之前的柱体消失了,只有新建的Cube:

Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第13张图片

我尝试了将新建一个Flex Container,在Project窗口内右键 > Create > NVIDIA > Flex > Flex Container创建,并将NewFlexSoftActor的Container设置为新建的Flex Container,现在就正常了:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第14张图片

按上面的测试,就是说不同的Flex Soft Actor需要不同的Flex Container,不然有一个将不会生成。

流体

在Assets\NVIDIA\Flex Samples\9. Fluid Renderer\Scene 场景下进行测试,该场景下的FlexSourceActor实现了一个流体的源头,可以不断的产生水流:

这里新增的一个水体,新建一个FlexArrayAsset资源,并选择Boundary Mesh为Cube:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第15张图片

新建一个FlexArrayActor节点,并新增FlexArrayActor和FlexFluidRenderer组件,FlexArrayActor表示伸缩的群体对象,FlexFluidRenderer用于渲染为流体。将原有的Flex Container和新建的FlexArrayAsset关联到FlexArrayActor组件上:
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第16张图片

之后查看运行效果:

Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第17张图片

这么看又可以共用一个Flex Container ,现在完全摸不着头脑了。

总结

这个插件现在感觉还是不适合用于项目,还有一点,它可能只适用于英伟达显卡的PC平台(这点是猜测的,没验证过),移动平台是不可能的。只出过一个Beta测试版本,之后在Assetstore也已经下架了,所以,测试玩玩还可以,其它要慎重。也会存在各种报错(但可以正常运行):
Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程_第18张图片

还有一点它的很多代码是加密的,对于程序员来说一些效果的控制我也没找到,不知道如何进行编码控制。当然也很期待它能完善后商用,应该会很强。

你可能感兴趣的:(Unity3D,Unity软体效果,Unity布料效果,Unity流体插件)