概述
第一个,好吧,除了最开始的模型的建模之外,其他的全部美术相关流程都是我一个做的,其中使用到了各种DCC软件,第一个自己做的特效,很开心~
国际惯例,先上最终效果:
![e534631abed07ea5dbc04560b2c5b445.gif](https://file2.kaopuke.com:8081/files_image/2023062215/e534631abed07ea5dbc04560b2c5b445.gif)
拿到需求,先按分析美术想要的效果,然后拜托场编小哥哥帮忙建了个模型,当然,这个模型很正经,点都是合在一起的:
![d1ec0723e1ea81fadf0319ce2367703a.png](https://file2.kaopuke.com:8081/files_image/2023062215/d1ec0723e1ea81fadf0319ce2367703a.png)
然后我开始用Blender去分开成单个面:
![5ac4870ef2d16c468a93a7a14aa72003.png](https://file2.kaopuke.com:8081/files_image/2023062215/5ac4870ef2d16c468a93a7a14aa72003.png)
![781b95c247a5884b5a8b2850ea3ec8a0.png](https://file2.kaopuke.com:8081/files_image/2023062215/781b95c247a5884b5a8b2850ea3ec8a0.png)
![2275dee277b2b8e90fa7f23238721ab9.png](https://file2.kaopuke.com:8081/files_image/2023062215/2275dee277b2b8e90fa7f23238721ab9.png)
![50b545a6c5d6bd13ff9e8f473f3c20ef.png](https://file2.kaopuke.com:8081/files_image/2023062215/50b545a6c5d6bd13ff9e8f473f3c20ef.png)
注意:因为Max的单位和houdini的单位不一样,所有要么在max里面缩小0.01,再导出,要么直接在导入houdini之后,用Transform去scale一个0.01。houdini的单位是米,max一般是厘米。这里我是在max里面去缩小了0.01之后导出模型的。
导入模型到houdini,在Houdini中添加动画:
![9943a23aad06f2b951bc5a1107e6a382.png](https://file2.kaopuke.com:8081/files_image/2023062215/9943a23aad06f2b951bc5a1107e6a382.png)
用attribwrangle节点,添加简单的Vex语句去做每个三角面的每个顶点的移动,对每个primitive去获取primpoints,遍历primpoints,去设置顶点的位置,顺便随机计算了个顶点色,用于后面材质的颜色变化:
![a1119e25652458d5cd680d0b7688651b.png](https://file2.kaopuke.com:8081/files_image/2023062215/a1119e25652458d5cd680d0b7688651b.png)
这里遇到一个问题,我本来是想直接用 setprimattrib(0, "P", i, Pos) 的做法去每个面片的Prim去位移的,但是,好像只有设置位置的attrib是无效的,换成cd的话,setprimattrib确实是能给每个Prim去设置颜色,如果有哪位大佬知道,请赐教哈~
在VEX里面添加一个参数,用于控制位移大小的,就是用这个参数去做Key帧,实现面片各种飞的效果:
![a3bef6d6a58222ea985f15b5d9af193a.png](https://file2.kaopuke.com:8081/files_image/2023062215/a3bef6d6a58222ea985f15b5d9af193a.png)
得到一个动态效果:
![d7741eda90a90b3b5b9af215166d0b75.gif](https://file2.kaopuke.com:8081/files_image/2023062215/d7741eda90a90b3b5b9af215166d0b75.gif)
在最后一定要导出一个NULL节点,给VAT节点用的:
![389bb6aa962511f4d4bbf3f7859bfc3d.png](https://file2.kaopuke.com:8081/files_image/2023062215/389bb6aa962511f4d4bbf3f7859bfc3d.png)
做好动态的效果后,添加VAT的节点:
![ffd8cec0e7c2cb1e9af36af5b9dc34f5.png](https://file2.kaopuke.com:8081/files_image/2023062215/ffd8cec0e7c2cb1e9af36af5b9dc34f5.png)
把上面的NULL节点拷贝粘贴到SOP Path里,然后按一下Initialize for Engine,面板其他一般不需要改,默认的就可以了,然后也可以设置一下输出的路径,最后点击Render:
![0bf9f06e8a0076ccb6762cad8b0046cf.png](https://file2.kaopuke.com:8081/files_image/2023062215/0bf9f06e8a0076ccb6762cad8b0046cf.png)
这里Render之后,会生成fbx和exr的贴图,其中fbx是添加了新的UV1,UV0还是模型之前的UV0,UV1是用于采样VAT的新的UV,所以在UE里面用的话,需要用houdini导出的模型和VAT:
![da7911b2aec0c29fbbdda5171ff57947.png](https://file2.kaopuke.com:8081/files_image/2023062215/da7911b2aec0c29fbbdda5171ff57947.png)
VAT贴图的设置:
![e630d2dc0941ac9c4d8f8221fa3bac26.png](https://file2.kaopuke.com:8081/files_image/2023062215/e630d2dc0941ac9c4d8f8221fa3bac26.png)
![33c3262aa143bad251606c197e13dbae.png](https://file2.kaopuke.com:8081/files_image/2023062215/33c3262aa143bad251606c197e13dbae.png)
把Houdini里VAT的Shader Code拷贝出来贴到UE4的Material Function里:
![92f97dd955131448825a02d0f4f9af19.png](https://file2.kaopuke.com:8081/files_image/2023062215/92f97dd955131448825a02d0f4f9af19.png)
![9144a2963030b2d784a4a30dc3b19f6b.png](https://file2.kaopuke.com:8081/files_image/2023062215/9144a2963030b2d784a4a30dc3b19f6b.png)
直接新建一个Material Function,粘贴Houdini的Shader Code:
![3500df0006d51a3991aa0d56a63d56c1.png](https://file2.kaopuke.com:8081/files_image/2023062215/3500df0006d51a3991aa0d56a63d56c1.png)
给fbx模型添加材质:
![2d1c2cab9fedcf81642504aaa76fe764.png](https://file2.kaopuke.com:8081/files_image/2023062215/2d1c2cab9fedcf81642504aaa76fe764.png)
![22f496231c89908ee6360a3692aade8d.png](https://file2.kaopuke.com:8081/files_image/2023062215/22f496231c89908ee6360a3692aade8d.png)
![0bf1483d7cf7672ca2173530abf0e43f.png](https://file2.kaopuke.com:8081/files_image/2023062215/0bf1483d7cf7672ca2173530abf0e43f.png)
创建材质实例,要把Houdini的VAT面板中的几个数据同步到材质实例的参数里,按名字一一对应:
![0bc44d072662fe11c42cc872872a0104.png](https://file2.kaopuke.com:8081/files_image/2023062215/0bc44d072662fe11c42cc872872a0104.png)
![a9cc810753a53db6f2db5898e1c67c4d.png](https://file2.kaopuke.com:8081/files_image/2023062215/a9cc810753a53db6f2db5898e1c67c4d.png)
以上是基础的设置,到这里,就能直接在场景里面看到模型的动态效果:
![fd7ae317b284c877ffb80709320d2840.gif](https://file2.kaopuke.com:8081/files_image/2023062215/fd7ae317b284c877ffb80709320d2840.gif)
开始制作贴图:
一开始场编小哥哥在建模的时候,我就有交代要这样分这个UV:
![8b45e2d29a9f0e75eeb38c897185967a.png](https://file2.kaopuke.com:8081/files_image/2023062215/8b45e2d29a9f0e75eeb38c897185967a.png)
然后在PS里面一顿操作之后,得到一张这样的图(其实是按我想要实现的材质效果,各种图层渐变叠加得到一个适合自己用的图):
![a50ce1a0700568f984467fdeed96df1f.png](https://file2.kaopuke.com:8081/files_image/2023062215/a50ce1a0700568f984467fdeed96df1f.png)
![eb596110e89d3fdc42b5a524bbdd6556.png](https://file2.kaopuke.com:8081/files_image/2023062215/eb596110e89d3fdc42b5a524bbdd6556.png)
得到初步效果:
![873f91713cf9b06808bd33763ddf7862.gif](https://file2.kaopuke.com:8081/files_image/2023062215/873f91713cf9b06808bd33763ddf7862.gif)
添加全息投影类似的计算,用屏幕空间坐标去采样一张条纹图,再计算一个距离的衰减:
![6984dc338cda5a54b68581ea6420d628.gif](https://file2.kaopuke.com:8081/files_image/2023062215/6984dc338cda5a54b68581ea6420d628.gif)
因为还有很多动态参数要做调整,也需要配合其他整体效果,于是,需要把这个模型用到UE4的Particle System里面,刚好在这里我就玩了一下Particle System,还挺好玩,也挺好上手,好玩~
加入到Particle System,就需要这个VAT的帧数需要按播放的帧数来,不再是不断循环的,这里需要修改上面那个Material Function的计算:
![051167780b442c899500d6567dc1f69f.png](https://file2.kaopuke.com:8081/files_image/2023062215/051167780b442c899500d6567dc1f69f.png)
刷新一下Particle System 右键-添加Dynamic项,就会自动关联到材质会用到的参数名字:
![630b720fc65ef56b58f654d2570ebd6e.png](https://file2.kaopuke.com:8081/files_image/2023062215/630b720fc65ef56b58f654d2570ebd6e.png)
每次在材质里面修改添加,在面板里Refresh一下就能更新到材质的数据:
![5d402cea206e31cd572afbd9a43c70a3.png](https://file2.kaopuke.com:8081/files_image/2023062215/5d402cea206e31cd572afbd9a43c70a3.png)
然后设置帧数:
![7766a9e9b9c9651009f3a10384c2a097.png](https://file2.kaopuke.com:8081/files_image/2023062215/7766a9e9b9c9651009f3a10384c2a097.png)
再叠加一些其他的特效,最后得到最终效果:
![e534631abed07ea5dbc04560b2c5b445.gif](https://file2.kaopuke.com:8081/files_image/2023062215/e534631abed07ea5dbc04560b2c5b445.gif)
总结:
各种软件工具各种用,很好玩~
不过有问题百思不得其解,就是一开始我的模型是有两套UV的,但是经过测试,无论是VAT导出的模型,还是普通的Houdini导出模型,都会导致UV1和UV0互换顺序,虽然VAT应该是会出错的,但是是直接把采样VAT的那套UV放置到原来的UV0,原来模型的UV0被放置到UV1了,只有模型只带UV0的情况下,VAT的导出模型UV顺序才能是正确的。如果哪位大佬知道为什么或者两套UV的模型怎么在Houdini里面加VAT又不会出错,希望能赐教呀~
所以后来我只能在max里面先去掉UV1:
![f7654254fe2ef3462c4da6ac5ce55cef.png](https://file2.kaopuke.com:8081/files_image/2023062215/f7654254fe2ef3462c4da6ac5ce55cef.png)
最后
以上就是顺利时光为你收集整理的lol模型导入ue4_Houdini与UE4结合的基于VAT的盾特效(第一个全流程自己做的修改模型贴图材质粒子特效)...的全部内容,希望文章能够帮你解决lol模型导入ue4_Houdini与UE4结合的基于VAT的盾特效(第一个全流程自己做的修改模型贴图材质粒子特效)...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复