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 系统可以使用这些引导线作为模拟的基础,而不是随机生成引导线。这样做的好处是:
-
模拟结果更可预测和稳定: 使用从 Maya 中导出的引导线,可以确保在 Unreal 中的模拟结果与 Maya 中的造型更加一致,避免出现意外的形状和运动。
-
方便美术调整: 如果模拟结果不理想,美术可以直接在 Maya 中修改引导线的形状和位置,然后重新导出到 Unreal,而不需要在 Unreal 中手动调整大量的引导线。
-
提高模拟效率: 在某些情况下,使用预设的引导线可以减少 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 中进行物理模拟时,引擎会随机生成引导线,这会导致以下问题:
-
模拟结果与 Maya 中的造型不一致: 由于引导线是随机生成的,Unreal Engine 5 中的模拟结果很可能与 Maya 中精心设计的头发造型相差很大,需要在 Unreal 中进行大量的调整才能达到预期的效果。
-
模拟不稳定: 随机生成的引导线可能分布不均匀或者方向混乱,导致模拟结果不稳定,出现头发抖动、穿插等问题。
-
难以控制和调整: 如果需要修改头发的模拟效果,只能在 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),指攻击者通过篡改网页,嵌入恶意脚本程序,在用户浏览网页时,控制用户浏览器进行恶意操作。 XXS的分类 反射型XSS存储型XSSDOM型XSS 原理 反射型XSS 接收用户提交的访问者的姓名࿰…...
liteflow 架构详解
LiteFlow 是一个轻量级的、高性能的流程编排框架,主要用于解决复杂业务流程的编排问题。它提供了一种简单而强大的方式来定义和执行复杂的业务流程。下面是 LiteFlow 的架构详解: 核心概念 组件(Component):是流程中…...

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

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

C++《set与map》
在之前我们已经学习了解了CSTL当中的string和vector等容器,现在我们已经懂得了这些容器提供的接口该如何使用,并且了解了这些容器的底层结构。接下来我们在本篇当中将继续学习STL内的容器set与map,在此这两个容器与我们之前学习的容器提供的成…...
深度学习-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框架中,你可以使用不同的模板来创建应用程序。你提到的这几个项目类型主要针对的是Qt的不同模块和用户界面技术。下面我将分别解释这些项目类型的区别: 根据你提供的信息,以下是每个项目模板的详细描述和适用场景: Qt Widgets…...

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

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

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

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

论文阅读——量子退火Experimental signature of programmable quantum annealing
摘要:量子退火是一种借助量子绝热演化解决复杂优化问题的通用策略。分析和数值证据均表明,在理想化的封闭系统条件下,量子退火可以胜过基于经典热化的算法(例如模拟退火)。当前设计的量子退火装置的退相干时间比绝热演…...

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验二----网络分析(超超超详细!!!)
相信实验一大家已经完成了,对Arcgis已进一步熟悉了,现在开启第二个实验 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用于展示如何使用有缓冲的通道实现资源池,来管理可以在任意数量的goroutine之间共享及独立使用的资源。这种模式在需要共享一组静态资源的情况(如共享数据库连接或者内存缓冲区)下非 常有用。如果goroutine需要从池里得到这些资…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
Java线上CPU飙高问题排查全指南
一、引言 在Java应用的线上运行环境中,CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时,通常会导致应用响应缓慢,甚至服务不可用,严重影响用户体验和业务运行。因此,掌握一套科学有效的CPU飙高问题排查方法&…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...

佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...

R 语言科研绘图第 55 期 --- 网络图-聚类
在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
深入浅出Diffusion模型:从原理到实践的全方位教程
I. 引言:生成式AI的黎明 – Diffusion模型是什么? 近年来,生成式人工智能(Generative AI)领域取得了爆炸性的进展,模型能够根据简单的文本提示创作出逼真的图像、连贯的文本,乃至更多令人惊叹的…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
第八部分:阶段项目 6:构建 React 前端应用
现在,是时候将你学到的 React 基础知识付诸实践,构建一个简单的前端应用来模拟与后端 API 的交互了。在这个阶段,你可以先使用模拟数据,或者如果你的后端 API(阶段项目 5)已经搭建好,可以直接连…...