当前位置: 首页 > 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需要从池里得到这些资…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集&#xff0c;包含8种湿地亚类&#xff0c;该数据以0.5X0.5的瓦片存储&#xff0c;我们整理了所有属于中国的瓦片名称与其对应省份&#xff0c;方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

基于数字孪生的水厂可视化平台建设:架构与实践

分享大纲&#xff1a; 1、数字孪生水厂可视化平台建设背景 2、数字孪生水厂可视化平台建设架构 3、数字孪生水厂可视化平台建设成效 近几年&#xff0c;数字孪生水厂的建设开展的如火如荼。作为提升水厂管理效率、优化资源的调度手段&#xff0c;基于数字孪生的水厂可视化平台的…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域&#xff0c;MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步&#xff0c;这两种通讯协议也正在被逐步融合&#xff0c;形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

JDK 17 新特性

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

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

LangChain【6】之输出解析器:结构化LLM响应的关键工具

文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器&#xff1f;1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...

起重机起升机构的安全装置有哪些?

起重机起升机构的安全装置是保障吊装作业安全的关键部件&#xff0c;主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理&#xff1a; 一、超载保护装置&#xff08;核心安全装置&#xff09; 1. 起重量限制器 功能&#xff1a;实时监测起升载荷&a…...

工厂方法模式和抽象工厂方法模式的battle

1.案例直接上手 在这个案例里面&#xff0c;我们会实现这个普通的工厂方法&#xff0c;并且对比这个普通工厂方法和我们直接创建对象的差别在哪里&#xff0c;为什么需要一个工厂&#xff1a; 下面的这个是我们的这个案例里面涉及到的接口和对应的实现类&#xff1a; 两个发…...