Unity毛发系统TressFX Exporter

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.pyLoaded选项卡,重新启动Maya

 4. 导出TFX发行曲线文件


二:在Maya中使用TressFX Exporter

既然已经在maya中安装完成了AMD TressFX plugin,那么接下来按照官网课程, 就要给大家介绍下如何使用AMD TressFX plugin了; 

大致分为以下3个步骤:

  1. 使用任意头发梳理工具来制作想要的发型曲线(如Maya Xgen、Zbush…)
  2. 使用AMD TressFX plugin for Unity进行导出
  3. 将导出的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为例:

  1. 创建一个HDRP的Unity工程,这里我使用的Unity 版本是Unity 2021.3.4f1c1,并导入我们的角色模型贴图等素材;
  2. 创建好工程后,打开该Unity新建项目的文件夹,找到Packages文件夹下的manifest文件,为工程添加HDRP / URP HairFX Shader Package

注意: URPHDRP的操做基本一致, 不过我这边用的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文件的参数以及含义:

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 StiffnessShape Stiffness设为相似的数值,短发数值更大、长发数值更小。

而对于发辫,Location Stiffness数值与散发一致,Shape Stiffness则会被保留为1来保持辫子的形状。

Damping设定了头发随头部动作运动的快慢。对于普通干发,Damping数值一般为0.04 ~ 0.06。若想让头发像在水底或衣物那样运动,可以将Damping提高到0.1 ~ 0.15


四:如何使用Unity China HairFX Profile设置头发

  1. 在角色Soldier下创建Hair Styeles空物体;
  2. 将角色头部Mesh命名为Bob,并设置为Hair Styeles的子物体;
  3. 选中Bob,在Inspector面上点击Add Compent添加 HairFX Groom、HairFX Simulation两个脚本; HairFX Groom相当于HairFX Profile的容器;HairFX Simulation脚本的作用是控制头发物理效果的模拟,比如这里有关于Wind settings风动设定用于控制Wind Magnitude(风力)和Pulse Magnitude(摆动幅度)的大小;
  4. 将之前创建的Bob HairFX Profile,添加到HairFX Profile组件中的Hair Profile中;
  5. Unity Hair Profile 可以连接多个 Unity Hair Assets,也就是我们从Maya导出的 .TFX 文件。如右图所示,我们为Bob ProfileUnity Hair Profile 文件添加 Back、Bangs、Top、Flyways四个Asset资产;如果你还想继续添加其他Asset资产,可以点击“+”号按钮。
  6. 将头发导出为不同的 TFX 文件的原因是为了我们可以自由地对头发的不同部分进行不同的模型效果的设置和模拟发丝物理效果的设置。
  7. 我们可以为头发的各个分组指定不同的材质,但材质的数量必须与头发资产的数量相同。
    如下图所示,以Bob发型为例,我们需要在Inspector>Mesh Renderer>Materials List下添加四个材质分别对应于Bob发型的四个Asset资产 Back、Bangs、Top、Flyways

这里我们为Bangsl刘海为例为大家演示如何创建头发材质;

  1.  在Asset下点击Create创建Material,重命名为Asian Cherry
  2. 材质的Shader我们设置为URP>SG_PhysicalHair
  3. 修改Hair Color、Root Color、Tip Color的颜色;看个人喜好自己设置就可以,也可以不设置。
  4. 同样的步骤我们创建Asian Green头发材质;颜色还是按照个人喜好而来。
  5. 接下来我们Bob Gameobject的Mesh Renderer的材质列表中设置材质;

    示例中分别为Bob的四个Asset资产 Back、Bangs、Top、Flyways设置了Asian Green、Asian Cherry, Asian Green、Asian Cherry材质,从而达到如下效果;
    注意这里是四个材质,不是四种材质,当然你也可以添加四种不同材质来表现头发不同部分的不同效果;

  6. 官方教程中使用的是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

  7. 到此,本节课程已经基本完成,剩下的就需要我们自己去探索,去摸索了,希望数字人,元宇宙相关产业越来越好吧,也希望我们更好。

 


五:特别声明

本文参考Unity China HairFX 毛发系统使用说明 而来,并且成功跑通,下面引用毛发系统的特别声明。


希望大家:点赞,留言,关注咯~    
😘😘😘😘

唠家常

今日分享结束啦,小伙伴们你们get到了么,你们有没有更好的办法呢,可以评论区留言分享,也可以加QQ:841298494,大家一起进步。

  • 客官,看完get之后记得点赞哟!
  • 小伙伴你还想要别的知识?好的呀,分享给你们😄

今日推荐

  • 博客杂货铺
  • GoF23 种设计模式的分类和功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/22441.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode配置go开发环境,插件超时问题解决

今天想试下golang,用goland太贵所以打算配置vscode来试一试,但是发现许多插件安装超时,查阅资料说是配置一下环境变量开启代理就好, go env -w GO111MODULEon go env -w GOPROXYhttps://goproxy.io,direct 但是尝试后发现依然没…

解决IDEA插件安装慢、超时、不成功问题

解决IDEA插件安装慢、超时、不成功问题 1.修改本地hosts文件,打开文件位置: Windows 系统 Hosts 文件路径:C:\Windows\System32\drivers\etc\hosts 用工具打开hosts文件 2.打开国内插件的节点IP地址 http://tool.chinaz.com/speedtest/pl…

chatgpt赋能python:Python如何突破VIP限制

Python如何突破VIP限制 在这个数字内容时代,我们经常使用各种网站和应用程序来获取视频、音乐、软件等数字资源。但是,某些资源可能受到VIP限制,这意味着我们需要付费才能获得完整的访问权限。但是,如果你了解Python编程&#xf…

武汉总部裁掉九成35岁以上员工?小米最新回应→

上一篇:00后太猛了,正强势整顿职场 导读:小米方面表示,在社交媒体平台上陆续出现有关小米武汉总部35岁以上员工只保留10%的信息,经查皆为谣言。 5月14日,微博端有消息称小米武汉总部正式裁掉90% 35岁以上员…

来上海一个月的记录、思考和感悟

作者 | gongyouliu 编辑 | gongyouliu 从4月3号早上来上海,到今天差不多整整一个月了,也是自己正式从杭州离职创业(我更愿意称之为自由职业者,毕竟我没有招聘全职员工,有两个朋友业余时间在帮我)的第一个月…

Prompt learning 教学[案例篇]:文生文案例设定汇总,你可以扮演任意角色进行专业分析

Prompt learning 教学[案例篇]:文生文案例设定汇总,你可以扮演任意角色进行专业分析 1.角色扮演 行为Prompt写法“牙医”““我想让你扮演一名牙医。我会向你提供有关寻找牙科服务(例如 X 光、清洁和其他治疗)的个人的详细信息。…

桌面管理,Windows自带工具!很强!

这两天看到自己桌面上的快捷方式图标越来越多,真是折磨,有时候找个软件找半天(悄悄bb一句,主要是挡住我的壁纸了),真的是很令人难受!就想着整理一下桌面,如下是用windows自带的工具整…

基于GMap.NET库实现的Windows桌面地图工具软件分享

0 前言 由于工作中经常和地图、GPS坐标转换、GPS轨迹查看等内容相关,经常要借助一些在线网站和工具来查看地图和位置等,在一次偶然的机会中了解到一个GMap.NET开源的桌面地图库和基于GMap.NET实现的MapDownloader地图下载工具,于是也想实现一…

小伙用AI“复活”奶奶引争议 科技边界在哪里(图)

小伙用AI“复活”奶奶引争议 科技边界在哪里(图) 上海00后用AI“复活”奶奶引发巨大争议:科技的边界在哪里。(图片来源:视频截图) 上海00后小伙用AI“复活”奶奶,还原其生前的音容笑貌,却引发巨大争议,人们在思考&…

音视频技术开发周刊 | 300

每周一期,纵览音视频技术领域的干货。 新闻投稿:contributelivevideostack.com。 著名数据和AI企业Databricks,收购类ChatGPT开源平台MosaicML 6月27日,Databricks在官网宣布,以13亿美元(约94亿元&#xff…

比GPT-4 Office还炸裂!阿里版GPT全家桶来袭

Datawhale干货 发布:阿里巴巴,来源:新智元 【导读】通义千问一出世,阿里版GPT全家桶立马来了。草图秒变程序,开会还能摸鱼,会议记录邮件文案全整活!这只是开始,工作和生活将全面进入…

大咖齐聚CCIG论坛——文档图像智能分析的产业前沿

目录 1 文档图像智能分析技术2 大咖齐聚CCIG20233 议题介绍3.1 从模式识别到类脑研究3.2 视觉-语言预训练模型演进及应用3.3 篡改文本图像的生成和检测3.4 智能文档处理在工业界的应用与挑战 4 观看入口&议程 1 文档图像智能分析技术 文档图像智能分析是指使用计算机视觉和…

谷歌tryOnDiffusion实现了高度逼真的虚拟试穿;ChatGPT 或将推出 AI 应用商店

🦉 AI新闻 🚀 ChatGPT Plus 用户已支持联网和插件功能,OpenAI 或将推出 AI 应用商店 摘要:OpenAI 宣布 ChatGPT Plus 用户已支持联网和插件功能。据外媒 The Information 报道,OpenAI 正考虑为 AI 软件创建一个应用商…

可解释机器学习-Task01-导论

💡 博客地址:https://1nnoh.top/3W8VFN4/ 🥇 版权: 本文由【1nnoh】原创 各位大佬敬请查阅 🎉 声明: 本博文禁止转载 感谢尊重和理解 ❤️ 如果文章对你有帮助 欢迎一键三连 可解释机器学习-Task01-导论 0x00 Abstract0x01 什么是…

一、导论——可解释性机器学习(DataWhale组队学习)

目录 导言一、什么是可解释人工智能?二、学可解释机器学习有什么用?2.1学习可解释机器学习的原因2.2 Machine Teaching :人工智能教人类学习2.3 细粒度图像分类2.4前沿AI 三、本身可解释性好的机器学习模型四、传统机器学习算法的可解释性分析五、卷积神经网络的可解释性分析…

在TitanIDE中使用ChatGPT辅助科研开发

作者:行云创新CEO 马洪喜 命题:太空望远镜拍摄的照片处理 假设:我是图形科学家,但不是特别懂Python 先上传一张银河系照片,目的是把彩色转成灰度: 然后我不会啊, 问问chatGPT 彩色图片转灰度…

itest监考机制_iTEST管理员组织大型无纸化考试的经验分享

嘉宾介绍 林涛 集美大学外国语学院在线平台负责人,自2017年起负责学校iTEST大学外语测试与训练系统(下称iTEST系统)的管理工作,曾统筹过七个学期的全校性大学英语在线考试。林老师对于如何使用iTEST系统组织和管理无纸化考试有着丰富的实践经验与使用心得。 经验分享 Q1:请问…

考试系统分享

介绍 学之思考试系统是一款基于k12教育的考试平台,小学、初中、高中和不同学科均可以均可以使用,支持各种题型(单选、多选、判断、填空、解答),里面包含了三大系统:学生系统、教师系统(TODO)、管理员系统、微信小程序学生端。 演…

腾讯云认证FAQ | 考试类型、考试预约等常见问题

要说2023年最火的是什么,云计算必须占一个名额。 为啥这么火呢?看市场反馈就知道了: 2019年以来,云计算领域对技术岗位的人才需求始终在40%以上,并逐年提高。 2022年显示,核心技术人才的招聘需求占比达到…

考试管理系统/在线考试系统

目录 摘要 Abstract 1 绪论 1.1课题研究背景和意义 1.2 国内外现状分析 1.3 课题研究主要内容 2 核心技术介绍 2.1 mysql技术介绍 2.2 eclipse编译器介绍 2.3 Spring框架简介 2.4 Vue.js技术简介 3 需求分析 3.1 系统的设计模式 3.2 系统的设计目标…