Unreal | Pivot Painter in Blender

文章 此情可待成追忆
2021-6-7 09:34 133人浏览 0人回复
Hello . 大家好

今天分享blender里面的pivot painter

用unreal官方的话来说,pivot painter tool就是在3d软件里面存储模型支点和旋转信息,然后可以在unreal的着色器系统内部引用该信息以创建交互效果。具体参考链接:

https://docs.unrealengine.com/4.26/en-US/AnimatingObjects/PivotPainter/

官方pivot painter效果:


但是unreal官方只有关于支持max的工具和教程,所以这里我们一起研究一下在blender里面导出数据并在unreal里面加载生成和角色的互动效果。

1
安装

首先获取插件,有VPN可以直接访问github获取:

https://github.com/Gvgeo/Pivot-Painter-for-Blender

这边提供百度网盘分享链接:

链接:https://pan.baidu.com/s/177iq3BEd9xq4zGzfOzTiWA

提取码:xje3

下载并解压到本地,打开blender,Edit>Preferences


Add-ons,然后点Install…,加载解压后里面的文件PivotPainterTool280.py,是最新的1.1.2版本。加载进去以后勾选插件并退出references窗口。



在3d窗口中按快捷键N可以弹出安装好的pivot painter工具。


2
Blender设置

这次我们主要使用pivot painter来制作草在场景中和角色的交互。所以首先创建草的模型,注意每一片草都是单独的模型并且坐标点在底部,方便添加旋转等效果。


点开pivot painter tool,设置Alpha为HDR-Parent Index(如果是树木的话,我们就会选择HDR-Normalized 0-1 Hierarchy Position,因为树木还有树干叶子,分枝等很多层次结构)。勾选Save Texture to folder,并且在下面选择需要输出textures的本地路径。最后点Save Textures


由于我们默认使用第二套uv来创建pivot painter的texture,所以save出去以后会发现物件多了一套uv1.并且会导出两张图片,一张记录模型各个面片的pivot point,另外一张为displacement map。


最后反手导出一个fbx到unreal。

3
Unreal4设置

注意导入到unreal里面的fbx需要勾选combine meshes,取消勾选import materials 和import textures



然后在引擎里面将模型的collision设置成NoCollision。



再把之前在blender里面导出的两张贴图导进引擎,并设置其中一张贴图Pivot Point Index的压缩设置为HDR,取消勾选sRGB,并且Filter为Nearest;另外一张贴图Xaxis Xextent的压缩设置为VectorDisplacementmap(RGBA8),同样取消勾选sRGB,Filter为Nearest。



创建一个新的材质球,勾选双面,作为草的材质球。

新建一个MPC(material parameter collection),添加一个vector parameter为PlayerLocation,并且在角色蓝图里面给PlayerLocation赋值。



这样获取到角色位置,就可以在草shader里面根绝角色位置来让草产生弯曲旋转等交互。

将pivot painter生成的两张图拉到材质里面,用角色的坐标减去草的坐标得到一个从角色方向 到草的向量,然后和草的displacement map做cross就得草受影响的旋转轴NormalizedRotationAxis。


而旋转角度RotationAngle,用sphere mask来求得角色对草的影响范围。角色越靠近,草的旋转角度越大,所以我们可以把受影响的半径值暴露出去。


Pivot Paint为草的坐标,Position使用Absolute World Position。

所以整个草旋转部分节点如下


最后再和motion mask相乘,然后输出到WPO中。


最后得到的效果如下;




- End -

路过

雷人

握手

鲜花

鸡蛋

最新评论

相关分类
热门教程
返回顶部
客服