当前位置: 首页 > news >正文

Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5

这段视频教程讲解了如何在 Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5 中,重点是如何处理头发的物理模拟和材质。

作者 Andrew Giovannini 首先展示了一个已完成的带物理模拟的头发模型,并介绍了他自己的游戏行业背景。然后,他详细解释了如何在 Maya 的 XGen 中创建头发,包括使用不同的描述(Description)来制作头发主体、刘海、填充和细节,并演示了如何使用曲线工具、晶格修改器和噪波来控制头发的形状和细节。他还特别讲解了如何创建一个填充层(Fill Layer)来避免头发过于稀疏,以及如何使用晶格来调整头发的整体形状。

接下来,他讲解了如何将 XGen 头发导出到 Unreal Engine 5。为了提高导出效率,他推荐使用自己编写的 Python 脚本工具 Spline Groom Manager 来管理和重命名曲线组,并提供了 Discord 链接供观众下载。他还解释了如何设置必要的属性,例如 groom guide、groom group ID 和 groom root UV,以便 Unreal Engine 5 正确识别和模拟头发。他还提到了如何修复脚本中的一些 Python 版本兼容性问题。

在 Unreal Engine 5 中,他演示了如何导入导出的头发模型,并使用 Groom Binding 功能将头发与不同的头部模型匹配。他还推荐使用 MetaHuman 自带的头发材质,并讲解了如何调整材质参数,例如黑色素、红色度、高光和染发等,来实现不同的头发颜色和效果。最后,他讲解了如何在 Unreal Engine 5 中设置头发的物理模拟,包括预加载、子步数、迭代次数、重力、空气速度、碰撞半径和弯曲约束等参数,并演示了如何调整这些参数来实现逼真的头发动态效果。他还简要提到了后续视频将讲解的内容,例如发片(Hair Cards)、LOD 和优化等。

User

arrow_upwardarrow_downwardedit

more_vert

总结时增加时间戳

Model

51.5s

arrow_upwardarrow_downwardedit

more_vert

这段视频教程讲解了如何在 Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5 中,重点是如何处理头发的物理模拟和材质。

  • [00:00-00:02] 作者 Andrew Giovannini 首先展示了一个已完成的带物理模拟的头发模型(alembic版本),并提到之后会制作发片版本。

  • [00:00-00:02] 他也介绍了他自己的游戏行业背景,曾参与赛博朋克2077、星际公民42中队等项目。

  • [00:00-00:02] 展示了模型以及一些基础的物理模拟效果和参数。

  • [00:02-00:07] 解释了 XGen 中头发的创建过程,包括头发主体、刘海、填充和细节分层等。并讲解了如何使用曲线工具创建填充层(Fill Layer)。

  • [00:07-00:08] 演示了如何使用晶格修改器调整头发的整体形状。

  • [00:08-00:12] 讲解了 XGen 中的噪波和 clumping modifier 的使用方法和参数设置。

  • [00:12-00:19] 展示了如何开启和导出头发曲线作为引导线(guides)。

  • [00:19-00:24] 强调了将引导线放置在名为 "XG groom" 的组下的重要性,方便后续脚本处理。

  • [00:24-00:31] 指出了 Maya UI 操作速度慢的问题,并引出了自己开发的 Spline Groom Manager 工具。

  • [00:31-00:38] 演示了如何使用 Spline Groom Manager 工具快速管理和重命名曲线组,以提高导出效率。

  • [00:38-00:40] 讲解了导出头发缓存的步骤和设置,包括 current frame 和 write final width。

  • [00:40-00:41] 在 Unreal Engine 5 中演示了导入 Alembic 缓存,并设置导入参数进行坐标转换。

  • [00:41-00:46] 讲解了 Groom Binding 的使用方法,以及如何将头发与不同的头部模型匹配。

  • [00:46-00:53] 推荐使用 MetaHuman 的头发材质,并讲解了材质参数的调整方法。

  • [00:53-00:56] 讲解了 Unreal Engine 5 中头发物理模拟的参数设置,包括预加载、子步数、迭代次数、重力、空气速度、碰撞半径和弯曲约束等。

  • [00:56-00:56] 简单提到了后续视频内容,包括发片、LOD 和优化。

User

arrow_upwardarrow_downwardedit

more_vert

为什么要:[00:12-00:19] 展示了如何开启和导出头发曲线作为引导线(guides)。

[00:19-00:24] 强调了将引导线放置在名为 "XG groom" 的组下的重要性,方便后续脚本处理。

Model

3.3s

arrow_upwardarrow_downwardedit

more_vert

errorAn internal error has occurred.

User

arrow_upwardarrow_downwardedit

more_vert

[00:12-00:19] 展示了如何开启和导出头发曲线作为引导线(guides)。

[00:19-00:24] 强调了将引导线放置在名为 "XG groom" 的组下的重要性,方便后续脚本处理。

Model

13.0s

arrow_upwardarrow_downwardedit

more_vert

你说的对,这两个时间段的功能描述重复了。这是我的失误。

导出引导线并将其放置在 "XG groom" 组下的原因是为了在 Unreal Engine 5 中实现更可控的头发模拟。UE5 的 hair groom 系统可以使用这些引导线作为模拟的基础,而不是随机生成引导线。这样做的好处是:

  1. 模拟结果更可预测和稳定: 使用从 Maya 中导出的引导线,可以确保在 Unreal 中的模拟结果与 Maya 中的造型更加一致,避免出现意外的形状和运动。

  2. 方便美术调整: 如果模拟结果不理想,美术可以直接在 Maya 中修改引导线的形状和位置,然后重新导出到 Unreal,而不需要在 Unreal 中手动调整大量的引导线。

  3. 提高模拟效率: 在某些情况下,使用预设的引导线可以减少 Unreal 中计算所需引导线的时间,从而提高模拟效率。

总而言之,导出引导线并正确分组是为了在 Unreal Engine 5 中获得更好的头发模拟效果和工作流程。正确的时间戳应该是 [00:12-00:24] ,涵盖了引导线的导出和分组这两个步骤。

User

arrow_upwardarrow_downwardedit

more_vert

直接用“导出头发缓存” 不行吗

Model

10.2s

arrow_upwardarrow_downwardedit

more_vert

直接导出头发缓存(例如 Alembic)是可以将头发的几何体导入到 Unreal Engine 5 中,但这仅仅是静态的几何体,不包含头发的模拟信息(例如引导线、组ID、根UV等)。

所以,虽然头发的形状会被导入,但在 Unreal Engine 5 中进行物理模拟时,引擎会随机生成引导线,这会导致以下问题:

  1. 模拟结果与 Maya 中的造型不一致: 由于引导线是随机生成的,Unreal Engine 5 中的模拟结果很可能与 Maya 中精心设计的头发造型相差很大,需要在 Unreal 中进行大量的调整才能达到预期的效果。

  2. 模拟不稳定: 随机生成的引导线可能分布不均匀或者方向混乱,导致模拟结果不稳定,出现头发抖动、穿插等问题。

  3. 难以控制和调整: 如果需要修改头发的模拟效果,只能在 Unreal Engine 5 中手动调整随机生成的引导线,这非常繁琐且效率低下。

因此,为了在 Unreal Engine 5 中获得理想的头发模拟效果,除了导出头发缓存外,还需要导出引导线、组ID、根UV等信息,并将引导线放置在名为 "XG groom" 的组下,以便 Unreal Engine 5 的 hair groom 系统能够正确识别和使用这些信息。

相关文章:

Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5

这段视频教程讲解了如何在 Maya 中创建游戏角色的头发,并将其导出到 Unreal Engine 5 中,重点是如何处理头发的物理模拟和材质。 作者 Andrew Giovannini 首先展示了一个已完成的带物理模拟的头发模型,并介绍了他自己的游戏行业背景。然后&a…...

React 路由(React Router):在 React 应用中管理路由

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

SAP-CPI组件Transformation介绍之Converter

1.配置CSV to XML Converter Field Description XML Schema 选择Select按钮,选择合适 XSD 文件. 或者可以选择 Upload from File System 系统中查找合适的XML文件....

Laravel 代理收益排行榜

创建了一个收入表 CREATE TABLE income_logs (id int(11) unsigned NOT NULL AUTO_INCREMENT,order_id int(11) NOT NULL COMMENT 订单ID,type int(11) NOT NULL DEFAULT 0 COMMENT 类型 0 支出 1收入,user_id int(11) NOT NULL COMMENT 消费者用户,price decimal(10,2) NOT…...

LeetCode hot100面试背诵版(自用)

点击题目可以跳转到LeetCode 哈希 两数之和 public int[] twoSum(int[] nums, int target) {int lengthnums.length;int[] ans new int[2];for (int i 0; i <length-1 ; i) {for (int j i1; j < length; j) {if(nums[i]nums[j]target){ans[0]i;ans[1]j;}}}return an…...

常见的Web安全漏洞——XSS

概念 跨站脚本攻击(XSS&#xff09;&#xff0c;指攻击者通过篡改网页&#xff0c;嵌入恶意脚本程序&#xff0c;在用户浏览网页时&#xff0c;控制用户浏览器进行恶意操作。 XXS的分类 反射型XSS存储型XSSDOM型XSS 原理 反射型XSS 接收用户提交的访问者的姓名&#xff0…...

liteflow 架构详解

LiteFlow 是一个轻量级的、高性能的流程编排框架&#xff0c;主要用于解决复杂业务流程的编排问题。它提供了一种简单而强大的方式来定义和执行复杂的业务流程。下面是 LiteFlow 的架构详解&#xff1a; 核心概念 组件&#xff08;Component&#xff09;&#xff1a;是流程中…...

国产麒麟操作系统上运行LabVIEW

LabVIEW 目前并没有官方支持直接在国产麒麟操作系统&#xff08;Kylin OS&#xff09;上运行。LabVIEW 是由美国国家仪器公司&#xff08;NI&#xff09;开发的软件&#xff0c;主要面向 Windows 和 Linux 操作系统。麒麟操作系统虽然基于 Linux&#xff0c;但其内核和一些软件…...

【C语言】结构体(一)

一&#xff0c;是什么 结构体就是一些值的集合&#xff0c;这些值称为成员变量。 结构体的每个成员可以是不同类型的变量。说到集合&#xff0c;数组也是集合&#xff0c;但是不同的是数组只能是相同类型元素的集合。 二&#xff0c;结构体的声明 struct tag {   member1;…...

C++《set与map》

在之前我们已经学习了解了CSTL当中的string和vector等容器&#xff0c;现在我们已经懂得了这些容器提供的接口该如何使用&#xff0c;并且了解了这些容器的底层结构。接下来我们在本篇当中将继续学习STL内的容器set与map&#xff0c;在此这两个容器与我们之前学习的容器提供的成…...

深度学习-52-AI应用实战之基于Yolo8的目标检测自动标注

文章目录 1 YOLOv81.1 YOLOV8的不同版本1.2 可检测类别1.3 数据说明1.4 网络结构1.5 算法核心步骤2 目标检测的基本原理2.1 安装yolov8(cpu版本)2.2 图片检测2.3 视频检测2.4 自动标注2.5 保存标注结果3 参考附录1 YOLOv8 YOLOv8是一种前沿的计算机视觉技术,它基于先前YOLO版…...

【Elasticsearch】05-DSL查询

1. 查询所有 es最多只支持查询1万条数据。 # 查询所有 GET /items/_search {"query": {"match_all": {}} }2. 叶子查询 全文检索 会对结果进行相关度打分。 # 检索单个字段 GET /items/_search {"query": {"match": {"name&…...

qml项目创建的区别

在Qt框架中&#xff0c;你可以使用不同的模板来创建应用程序。你提到的这几个项目类型主要针对的是Qt的不同模块和用户界面技术。下面我将分别解释这些项目类型的区别&#xff1a; 根据你提供的信息&#xff0c;以下是每个项目模板的详细描述和适用场景&#xff1a; Qt Widgets…...

.NET8/.NETCore 依赖注入:自动注入项目中所有接口和自定义类

.NET8/.NETCore 依赖接口注入&#xff1a;自动注入项目中所有接口和自定义类 目录 自定义依赖接口扩展类&#xff1a;HostExtensions AddInjectionServices方法GlobalAssemblies 全局静态类测试 自定义依赖接口 需要依赖注入的类必须实现以下接口。 C# /// <summary>…...

Flutter:city_pickers省市区三级联动

pubspec.yaml city_pickers插件地址 自己用的GetBuilder页面模板 cupertino_icons: ^1.0.8 # 省市区城市选择 city_pickers: ^1.3.0编辑地址页面&#xff1a;controller class AddressEditController extends GetxController {AddressEditController();Future<Result?>…...

Kafka-Connect自带示例

一、上下文 《Kafka-Connect》中已经阐述了Kafka-Connect的理论知识&#xff0c;为了更生动的理解它&#xff0c;我们今天通过官方的一个小例子来感受下它的妙用。 二、创建topic kafka-topics --create --topic connect-test --bootstrap-server cdh1:9092 --partitions 2 -…...

Hbase应用案例 随机号码生成

Hbase应用案例1 随机号码生成 在Hbase中插入如下格式的数据&#xff0c;数据内容随机生成 名称示例说明phonenumber158randomrowkey&#xff0c;号码dnum199randomcolumn&#xff0c;另一位通话者lengthrandomcolumn&#xff0c;时长valuerandomcolumn&#xff0c;接收或拨打…...

论文阅读——量子退火Experimental signature of programmable quantum annealing

摘要&#xff1a;量子退火是一种借助量子绝热演化解决复杂优化问题的通用策略。分析和数值证据均表明&#xff0c;在理想化的封闭系统条件下&#xff0c;量子退火可以胜过基于经典热化的算法&#xff08;例如模拟退火&#xff09;。当前设计的量子退火装置的退相干时间比绝热演…...

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)

相信实验一大家已经完成了&#xff0c;对Arcgis已进一步熟悉了&#xff0c;现在开启第二个实验 ArcMap实验--网络分析 目录 ArcMap实验--网络分析 1.1 网络分析介绍 1.2 实验内容及目的 1.2.1 实验内容 1.2.2 实验目的 2.2 实验方案 2.3 实验流程 2.3.1 实验准备 2.3.2 空间校正…...

go语言 Pool实现资源池管理数据库连接资源或其他常用需要共享的资源

go Pool Pool用于展示如何使用有缓冲的通道实现资源池&#xff0c;来管理可以在任意数量的goroutine之间共享及独立使用的资源。这种模式在需要共享一组静态资源的情况&#xff08;如共享数据库连接或者内存缓冲区&#xff09;下非 常有用。如果goroutine需要从池里得到这些资…...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂

蛋白质结合剂&#xff08;如抗体、抑制肽&#xff09;在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上&#xff0c;高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术&#xff0c;但这类方法普遍面临资源消耗巨大、研发周期冗长…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效&#xff0c;它能挖掘数据中的时序信息以及语义信息&#xff0c;但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN&#xff0c;但是…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

&#x1f680; C extern 关键字深度解析&#xff1a;跨文件编程的终极指南 &#x1f4c5; 更新时间&#xff1a;2025年6月5日 &#x1f3f7;️ 标签&#xff1a;C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言&#x1f525;一、extern 是什么&#xff1f;&…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...