lol模型导入ue4_Houdini与UE4结合的基于VAT的盾特效(第一个全流程自己做的修改模型贴图材质粒子特效)...

第一个,好吧,除了最开始的模型的建模之外,其他的全部美术相关流程都是我一个做的,其中使用到了各种DCC软件,第一个自己做的特效,很开心~

国际惯例,先上最终效果:

e534631abed07ea5dbc04560b2c5b445.gif

拿到需求,先按分析美术想要的效果,然后拜托场编小哥哥帮忙建了个模型,当然,这个模型很正经,点都是合在一起的:

d1ec0723e1ea81fadf0319ce2367703a.png

然后我开始用Blender去分开成单个面:

5ac4870ef2d16c468a93a7a14aa72003.png
选择Modeling面板下的Object Mode,选择工具的Modifier properties(小扳手的图标):

781b95c247a5884b5a8b2850ea3ec8a0.png
选择Edge Split

2275dee277b2b8e90fa7f23238721ab9.png
设置角度为0,然后apply一下

50b545a6c5d6bd13ff9e8f473f3c20ef.png
得到所有三角面都单独为一个面片的结果

注意:因为Max的单位和houdini的单位不一样,所有要么在max里面缩小0.01,再导出,要么直接在导入houdini之后,用Transform去scale一个0.01。houdini的单位是米,max一般是厘米。这里我是在max里面去缩小了0.01之后导出模型的。

导入模型到houdini,在Houdini中添加动画:

9943a23aad06f2b951bc5a1107e6a382.png
用File去导入模型

用attribwrangle节点,添加简单的Vex语句去做每个三角面的每个顶点的移动,对每个primitive去获取primpoints,遍历primpoints,去设置顶点的位置,顺便随机计算了个顶点色,用于后面材质的颜色变化:

a1119e25652458d5cd680d0b7688651b.png
主要是获取每个点,然后去做自定义的偏移

这里遇到一个问题,我本来是想直接用 setprimattrib(0, "P", i, Pos) 的做法去每个面片的Prim去位移的,但是,好像只有设置位置的attrib是无效的,换成cd的话,setprimattrib确实是能给每个Prim去设置颜色,如果有哪位大佬知道,请赐教哈~

在VEX里面添加一个参数,用于控制位移大小的,就是用这个参数去做Key帧,实现面片各种飞的效果:

a3bef6d6a58222ea985f15b5d9af193a.png
K帧

得到一个动态效果:

d7741eda90a90b3b5b9af215166d0b75.gif

在最后一定要导出一个NULL节点,给VAT节点用的:

389bb6aa962511f4d4bbf3f7859bfc3d.png
NULL节点,拷贝一下复制给VAT

做好动态的效果后,添加VAT的节点:

ffd8cec0e7c2cb1e9af36af5b9dc34f5.png
在out面板Tab键找到VAT的节点

把上面的NULL节点拷贝粘贴到SOP Path里,然后按一下Initialize for Engine,面板其他一般不需要改,默认的就可以了,然后也可以设置一下输出的路径,最后点击Render:

0bf9f06e8a0076ccb6762cad8b0046cf.png
导出VAT的顺序

这里Render之后,会生成fbx和exr的贴图,其中fbx是添加了新的UV1,UV0还是模型之前的UV0,UV1是用于采样VAT的新的UV,所以在UE里面用的话,需要用houdini导出的模型和VAT:

da7911b2aec0c29fbbdda5171ff57947.png
查看模型

VAT贴图的设置:

e630d2dc0941ac9c4d8f8221fa3bac26.png
VAT导入UE4里面看到就是这样

33c3262aa143bad251606c197e13dbae.png
VAT属性设置

把Houdini里VAT的Shader Code拷贝出来贴到UE4的Material Function里:

92f97dd955131448825a02d0f4f9af19.png
切换按钮到Normal

9144a2963030b2d784a4a30dc3b19f6b.png
全选,拷贝

直接新建一个Material Function,粘贴Houdini的Shader Code:

3500df0006d51a3991aa0d56a63d56c1.png
直接粘贴就能得到很多节点,其中包括输出用World Position Offset的数据

给fbx模型添加材质:

2d1c2cab9fedcf81642504aaa76fe764.png
设置自定义UV个数,因为houdini有生成新的UV

22f496231c89908ee6360a3692aade8d.png
去掉Tangent Space Normal的勾

0bf1483d7cf7672ca2173530abf0e43f.png
基本材质就是这样

创建材质实例,要把Houdini的VAT面板中的几个数据同步到材质实例的参数里,按名字一一对应:

0bc44d072662fe11c42cc872872a0104.png

a9cc810753a53db6f2db5898e1c67c4d.png

以上是基础的设置,到这里,就能直接在场景里面看到模型的动态效果:

fd7ae317b284c877ffb80709320d2840.gif
基础效果

开始制作贴图:

一开始场编小哥哥在建模的时候,我就有交代要这样分这个UV:

8b45e2d29a9f0e75eeb38c897185967a.png
全部三角面都是这样的UV

然后在PS里面一顿操作之后,得到一张这样的图(其实是按我想要实现的材质效果,各种图层渐变叠加得到一个适合自己用的图):

a50ce1a0700568f984467fdeed96df1f.png
这个是加了UV测试图的效果

eb596110e89d3fdc42b5a524bbdd6556.png
正式贴图的效果

得到初步效果:

873f91713cf9b06808bd33763ddf7862.gif

添加全息投影类似的计算,用屏幕空间坐标去采样一张条纹图,再计算一个距离的衰减:

6984dc338cda5a54b68581ea6420d628.gif
一个基础版效果

因为还有很多动态参数要做调整,也需要配合其他整体效果,于是,需要把这个模型用到UE4的Particle System里面,刚好在这里我就玩了一下Particle System,还挺好玩,也挺好上手,好玩~

加入到Particle System,就需要这个VAT的帧数需要按播放的帧数来,不再是不断循环的,这里需要修改上面那个Material Function的计算:

051167780b442c899500d6567dc1f69f.png
关联粒子的动态参数

刷新一下Particle System 右键-添加Dynamic项,就会自动关联到材质会用到的参数名字:

630b720fc65ef56b58f654d2570ebd6e.png
关联材质的Dynamic Parameter

每次在材质里面修改添加,在面板里Refresh一下就能更新到材质的数据:

5d402cea206e31cd572afbd9a43c70a3.png
同步材质数据

然后设置帧数:

7766a9e9b9c9651009f3a10384c2a097.png

再叠加一些其他的特效,最后得到最终效果:

e534631abed07ea5dbc04560b2c5b445.gif

总结:

各种软件工具各种用,很好玩~

不过有问题百思不得其解,就是一开始我的模型是有两套UV的,但是经过测试,无论是VAT导出的模型,还是普通的Houdini导出模型,都会导致UV1和UV0互换顺序,虽然VAT应该是会出错的,但是是直接把采样VAT的那套UV放置到原来的UV0,原来模型的UV0被放置到UV1了,只有模型只带UV0的情况下,VAT的导出模型UV顺序才能是正确的。如果哪位大佬知道为什么或者两套UV的模型怎么在Houdini里面加VAT又不会出错,希望能赐教呀~

所以后来我只能在max里面先去掉UV1:

f7654254fe2ef3462c4da6ac5ce55cef.png
去掉第二套UV
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值