Unity 数字人交流群:296041238
一:在Maya下的TressFX Exporter 插件安装步骤:
1. 下载Maya的TressFX Exporter插件
下载地址:TressFX Exporter
链接:https://github.com/Unity-China/cn.unity.hairfx.core/tree/main/Maya_TressFX_Exporter~
(注意:与 Maya 2022 不兼容,目前支持Maya版本为2019)
2. 移动文件
复制plug-ins文件夹到C:\User\YOUR_USER_NAME\Documents (文档) \maya\
3. 加载插件
打开Maya,在顶部菜单中会出现TressFX Tool 菜单选项;(如果没有出现,在顶部菜单中找到Windows>Settings/Preferences>Plug-in Manager,然后勾选TressFX_Exporter.py的Loaded选项卡,重新启动Maya)
4. 导出TFX发行曲线文件
二:在Maya中使用TressFX Exporter
既然已经在maya中安装完成了AMD TressFX plugin,那么接下来按照官网课程, 就要给大家介绍下如何使用AMD TressFX plugin了;
大致分为以下3个步骤:
- 使用任意头发梳理工具来制作想要的发型曲线(如Maya Xgen、Zbush…)
- 使用AMD TressFX plugin for Unity进行导出
- 将导出的TFX文件导入Unity并在Unity中进行渲染调节设置
课程中: 官方告诉我们可以使用任意头发梳理工具来制作想要的发型曲线,然后用我们的插件将其转换为TFX文件。
比如可以使用 Maya 的 XGen 工具来制作你的发型曲线,也可以使用Zbush软件制作你的发型曲线(关于如何使用头发梳理工具来制作发型曲线,不是本教程的重点)
以下是一些关于如何使用XGen工具来制作发型曲线的教程:https://80.lv/articles/80-level-ratings-10-great-tutorials-on-hair-creation-using-xgen/
接下来我们可以将上一步骤中所制作的头发的引导线导出为 Maya 的 MEL 文件(如下图中左上角颜色所示,以及红框设置)
将 MEL 文件重新导入 Maya 场景后,我们可以看到我们创建的引导线会变为一条条蓝色的曲线(如右下角颜色所示)
如下图所示:我们以短发发型为例来给大家讲解下,如何使用TressFX Export Plugin导出头发组;
这里的短发发型引导线主要分为四组制作,分别是Bangs刘海、Top头顶头发、Back头背头发、Flyways碎发;
我们依次导出这四组头发:
首先我们选中Bangs组 →然后在顶部菜单中找到TressFX菜单,选择TressFX->Export Hair/fur窗口,然后选择Number of vertices per strand / 每股的顶点数。像这样的短发我们一般选择4或者8,对于长辫子,官方推荐: 16;
注意:Invert X-axis of Hair 选项默认为启用
点击Export! 会弹出对话框,这里我们设置完成文件名Bangs,点击Save后,我们就可以在对于的文件夹下找到这个后缀为.TFX的文件了;
接下来我们依次导出其他三组头发(将头发组保存为 TFX 文件的步骤与导出Bangs的步骤相同),导完之后就可以在 Unity 中使用它们了;
三:在Unity中创建HairFX Profile文件
官方这里是以高清渲染管线HDRP为例:
- 创建一个HDRP的Unity工程,这里我使用的Unity 版本是Unity 2021.3.4f1c1,并导入我们的角色模型贴图等素材;
- 创建好工程后,打开该Unity新建项目的文件夹,找到Packages文件夹下的manifest文件,为工程添加HDRP / URP HairFX Shader Package;
注意: URP和HDRP的操做基本一致, 不过我这边用的Unity版本是Unity 2021.3.6f1c1.
//---------------------------------------------HDRP
"dependencies": {"cn.unity.hairfx.core": "https://github.com/Unity-China/cn.unity.hairfx.core.git", "cn.unity.hairfx.hdrp": "https://github.com/Unity-China/cn.unity.hairfx.hdrp.git",
...
}
//---------------------------------------------URP
"dependencies": {"cn.unity.hairfx.core": "https://github.com/Unity-China/cn.unity.hairfx.core.git", "cn.unity.hairfx.urp": "https://github.com/Unity-China/cn.unity.hairfx.urp.git",
...
}//如果再最后加入该库,则注意删除最后边的逗号《 , 》
注意:
如果,之后进入Unity如果报错如下提示(包括:超时、解析错误)
解决方案:
打开GitHub Desktop软件,然后分别从网址上拷贝下来,接着通过Package Manager的左上角+号,从本地导入,点击Add package from disk...之后,找到你拷贝下来的文件夹,选择其中的package.json,稍作等待之后,包体就被加入到了Unity中
此时,你的该Unity新建项目的文件夹,找到Packages文件夹下的manifest文件,其大致内容为下图所示。
这里官方以《Defender》资源包为例来给大家进行演示,该资源包包含多种发型供大家尝试;我们可以在Github上免费下载工具和角色资源包(该工程已经添加HDRP / URP HairFX Shader Package)
HDRP版:https://github.com/UnityTechnologies/HDRP-Defender-Character-Demo
URP版:https://github.com/UnityTechnologies/URP-Defender-Character-Demo
在Asset下创建一个HairFX Profile文件,Profile创建完成后对可以其进行重命名;
接下先来观察和了解下这个Unity Hair Profile文件的参数以及含义:
Hair Status | 头发的状态统计 |
Guide Strands | 引导线股数 |
Guide Vertices | 三角面数 |
Total Strands | 总头发的股数 |
Global Geometry Settings | 全局头发股数设置 |
Hair Count | 发丝的数量 ( 下边提到的一般调整发型的四项设定之一 ) |
Hair Offset | 头发偏移(发丝间的距离)( 下边提到的一般调整发型的四项设定之一 ) |
Tessellation Per Strand | 每束发丝细分:用于调整发丝柔顺度。低数值能让游戏运行更流畅,高数值能让头发更加柔顺。你可以在优化时寻找最合适的中间点。( 下边提到的一般调整发型的四项设定之一 ) |
Lock Hair Tip | 是否锁定发梢 |
========================每次修改完成后记的点击Apply 应用======================== | |
对于头发模型的整体,我们一般只调整Hair Count(头发数)、Hair Offset(头发偏移)、Tessellation Per Strand(每束发丝细分)及Hair Thickness(头发厚度)(下边介绍这个参数)四项设定。 | |
Global Geometry Settings | 头发实体的全局设置 |
Enable LOD | 是否开启LOD |
LOD Distance | LOD距离设置 |
LOD Distance Range | 设置LOD的距离 |
LOD Strand Reduction | LOD 发丝股数减少系数 |
LOD Hair Width Multiplier | LOD 发丝宽度调节系数 |
Enable Thin Tip | 是否开启发梢变薄 |
Hair Thickness | 发丝厚度 ( 上边提到的一般调整发型的四项设定之一 ) |
Tip Length | 发梢长度的调节 |
Global Simulation Settings | 发丝全局模拟设置 |
Location Stiffness | 位置刚度 |
Shape Stiffness | 形状刚度 |
Root Rigidness | 发根坚硬程度 ( 非官方翻译,如有不准请见谅 ) |
Acceleration Constraints | 头发加速度约束 ( 非官方翻译,如有不准请见谅 ) |
Length Constraints | 长度约束 ( 非官方翻译,如有不准请见谅 ) |
Damping | 阻尼调节 |
Gravity Magnitude | 发丝重力大小调节 |
Tip Separation | 发梢分开(蓬松感) |
Length Offset | 长度偏移 ( 非官方翻译,如有不准请见谅 ) |
在头发方面,官方建议我们保留大部分默认设置
我们经常调整的是Location Stiffness(位置刚度)、Shape Stiffness(形状刚度)和Damping(阻尼)。
对于松散的头发,我们会将Location Stiffness和Shape Stiffness设为相似的数值,短发数值更大、长发数值更小。
而对于发辫,Location Stiffness数值与散发一致,Shape Stiffness则会被保留为1来保持辫子的形状。
Damping设定了头发随头部动作运动的快慢。对于普通干发,Damping数值一般为0.04 ~ 0.06。若想让头发像在水底或衣物那样运动,可以将Damping提高到0.1 ~ 0.15
四:如何使用Unity China HairFX Profile设置头发
- 在角色Soldier下创建Hair Styeles空物体;
- 将角色头部Mesh命名为Bob,并设置为Hair Styeles的子物体;
- 选中Bob,在Inspector面上点击Add Compent添加 HairFX Groom、HairFX Simulation两个脚本; HairFX Groom相当于HairFX Profile的容器;HairFX Simulation脚本的作用是控制头发物理效果的模拟,比如这里有关于Wind settings风动设定用于控制Wind Magnitude(风力)和Pulse Magnitude(摆动幅度)的大小;
- 将之前创建的Bob HairFX Profile,添加到HairFX Profile组件中的Hair Profile中;
- Unity Hair Profile 可以连接多个 Unity Hair Assets,也就是我们从Maya导出的 .TFX 文件。如右图所示,我们为Bob Profile的Unity Hair Profile 文件添加 Back、Bangs、Top、Flyways四个Asset资产;如果你还想继续添加其他Asset资产,可以点击“+”号按钮。
- 将头发导出为不同的 TFX 文件的原因是为了我们可以自由地对头发的不同部分进行不同的模型效果的设置和模拟发丝物理效果的设置。
- 我们可以为头发的各个分组指定不同的材质,但材质的数量必须与头发资产的数量相同。
如下图所示,以Bob发型为例,我们需要在Inspector>Mesh Renderer>Materials List下添加四个材质分别对应于Bob发型的四个Asset资产 Back、Bangs、Top、Flyways。
这里我们为Bangsl刘海为例为大家演示如何创建头发材质;
- 在Asset下点击Create创建Material,重命名为Asian Cherry;
- 材质的Shader我们设置为URP>SG_PhysicalHair;
- 修改Hair Color、Root Color、Tip Color的颜色;看个人喜好自己设置就可以,也可以不设置。
- 同样的步骤我们创建Asian Green头发材质;颜色还是按照个人喜好而来。
- 接下来我们Bob Gameobject的Mesh Renderer的材质列表中设置材质;
示例中分别为Bob的四个Asset资产 Back、Bangs、Top、Flyways设置了Asian Green、Asian Cherry, Asian Green、Asian Cherry材质,从而达到如下效果;
注意这里是四个材质,不是四种材质,当然你也可以添加四种不同材质来表现头发不同部分的不同效果; - 官方教程中使用的是HDRP内置的头发着色器。如果你想编写自己的着色器,请一定要按以下参数进行设置:
Graph Settings
● Material : Hair
● Material Type: Physical
● Advanced Options/ Geometry Type: Strands
Master Stacks
● Custom Function node:
○ Name: GetExpandedVertex
○ Source: VertexStrsndGroom (hlsl file)
● Hair Strand Direction: 1,0,0
如果你想编写自己的着色器是URP的,也请一定要按以下参数进行设置:
Graph Settings
● Material : Physical Hair
● Geometry Type: Strands
Master Stacks
● Custom Function node:
○ Name: GetExpandedVertex
○ Source: VertexStrsndGroom (hlsl file)
● Hair Strand Direction: 1,0,0
- 到此,本节课程已经基本完成,剩下的就需要我们自己去探索,去摸索了,希望数字人,元宇宙相关产业越来越好吧,也希望我们更好。
五:特别声明
本文参考Unity China HairFX 毛发系统使用说明 而来,并且成功跑通,下面引用毛发系统的特别声明。
希望大家:点赞,留言,关注咯~
😘😘😘😘
唠家常
今日分享结束啦,小伙伴们你们get到了么,你们有没有更好的办法呢,可以评论区留言分享,也可以加我QQ:841298494,大家一起进步。
- 客官,看完get之后记得点赞哟!
- 小伙伴你还想要别的知识?好的呀,分享给你们😄
今日推荐
- 博客杂货铺
- GoF23 种设计模式的分类和功能