HDA指北
1 min to read
首先牢记这个网站——Houdini Engine for Unreal
提供了UE4插件中各种可自定义的相关变量,建议在使用Houdini的UE插件时先过一遍这个文档,了解一下插件都能干些什么。
在制作HDA工具时,Special Attributes and Groups
这部分的变量经常用到。插件支持的变量分为两大类——Houdini to Unreal
,和Unreal to Houdini
。拿获取mesh name和自定义mesh name这两个功能举个例子:
当不作任何特殊处理时,HDA烘焙的新staticmesh的名称一般是HDA名+随机编号。现在我希望这个bake物体和输入mesh同名。要达到这个目的,就需要在HDA中设置先获得unreal中输入物体名,然后将这个名字赋给bake后的物体名。这就涉及了上面所说的Houdini to Unreal
和Unreal to Houdini
中提供的变量。
在这两个页面进行搜索,不难找到和上述需求相关的两个变量——unreal_input_mesh_name
,unreal_output_name
。
首先需要获取mesh的输入名,当HDA在UE4中获取输入时(该变量只有geometry和worldoutliner输入拥有,文档有写),会自动获取该变量,后续在代码中给变量unreal_output_name
赋值输入mesh name即可。注意unreal_input_mesh_name
的值不是输入mesh的名称,而是包含输入mesh名称的完整路径,因此想要获取单纯mesh name,需要对路径解析一下获得最后一个斜杠后的字符串。
图中的俩attribute_create
不必须。
补:
关于上面的例子,有一个严重的bug,设定输出名称与输入名称相同后,点击bake按钮获得处理后的staticmesh,该staticmesh的名称实际上并不是预期中最后一个斜杠后的真是名称,而是将该名称重复了两遍,导致bake后的资源出现无法正常通过双击打开模型预览窗口的故障。
如:模型的路径为/Game/Assets/Meshes/Rocks/Hovs_Beach_Rock_LOD1_ukxkffifa
,输出名称实际是/Game/Assets/Meshes/Rocks/Hovs_Beach_Rock_LOD1_ukxkffifa.Hovs_Beach_Rock_LOD1_ukxkffifa
,末尾重复了一遍素材名称。
虽然不知道为什么资源的名称会以.
分割的方式重复一遍,但是在houdini中对最后一个斜杠后的字符串再进行一次解析,取.
后(或者前)的字符串即可获得正确的bake后模型命名。
常用变量
unreal_input_mesh_name
:获取输入的模型名称
unreal_object_path
:输入资源的路径
unreal_output_name
:bake生成新模型的name
unreal_bake_folder
:bake后输出文件夹(注意开头必须是/Game/
,这是content文件夹根目录!写错会crash,根目录之后的文件夹可以是不存在的路径,会自动帮忙创建)
雪材质。
-
表面粗糙凹孔
-
光照下细碎闪光
-
面粉质地和光滑质地微妙的结合(!)
目前看到的比较棒的一个例子,忘记哪儿下的了,做了融化和未融化状态下的雪👇