神经变形器简介

神经变形器Neural Deformer)是团结引擎中的一种基于机器学习的高保真度网格变形解决方案。

打开网易新闻 查看精彩图片


神经变形器是什么

角色动画中的蒙皮网格要实现高质量的非线性变形通常依赖复杂的离线计算,难以满足实时场景对性能和响应速度的严格要求。

打开网易新闻 查看精彩图片

神经变形器提供了一种高效的解决方案:通过采集并预处理外部提供的变形数据,训练轻量级的神经网络模型,使其在运行时能够高效近似还原复杂的网格变形效果。这使得团结引擎能够在呈现高质量变形效果的同时,有效规避传统非线性几何计算在实时渲染中的性能开销。

神经变形器的应用场景

肌肉变形

 神经变形器 Neural Deformer:基于机器学习的高保真网格变形方案
打开网易新闻 查看更多视频
神经变形器 Neural Deformer:基于机器学习的高保真网格变形方案

布料变形

 神经变形器 Neural Deformer:基于机器学习的高保真网格变形方案
打开网易新闻 查看更多视频
神经变形器 Neural Deformer:基于机器学习的高保真网格变形方案

神经变形器的特性

  • 高保真度实时变形

    通过学习外部数字内容创作(Digital Content Creation,DCC)软件采集的复杂变形数据,神经网络模型能够在运行时以较低成本重现高精度网格变形,适用于布料、肌肉、装备等非刚性物体的表现。

  • 开箱即用的训练流程

    与生成网格变形模拟数据的复杂过程解耦,支持从多种 DCC 软件导入 FBX 动画与 Alembic 网格变形数据,通过自动化的数据处理与模型训练,适应多样化应用需求。

  • 高可用性与引擎集成

    所有核心功能(数据处理、模型训练和模型推理)均可在团结引擎编辑器中完成,覆盖从训练数据生成到模型部署的全过程,无需切换至外部平台,并且可以嵌入现有团结引擎角色系统与动画控制流程。

  • 多平台与多硬件后端支持:

    基于 Sentis 推理框架,可以在 Windows、MacOS、Android、iOS 等多个平台运行,且模型推理与变形计算均支持 CPU 和 GPU 后端,允许按需切换以适配不同硬件资源与性能要求。


神经变形器的工作流
要使用神经变形器包完成一个网格变形任务,您首先需要安装神经变形器包,再依次执行以下步骤:

1.构建训练数据集

2.训练神经网络模型

3.应用网格变形

打开网易新闻 查看精彩图片

团结引擎中的神经变形器包提供了专门的组件分别对应上述各个步骤,并向用户开放了必要的参数设置接口以及便捷的图形化操作界面:

  • Neural Deformer Dataset Builder

    用于从角色动画与 Alembic 网格变形数据中自动构建训练所需的数据集,包括顶点匹配、动画采样与数据导出等功能;

  • Neural Deformer Trainer

    提供可视化的模型训练管理界面,允许在团结引擎内配置训练超参数、管理训练流程、查看日志与结果;

  • Neural Deformer Player

    加载并运行训练好的神经网络模型,通过 CPU/GPU 硬件后端进行推理,驱动网格实时变形并完成法线重计算。


安装神经变形器
要将神经变形器包添加到团结引擎项目:

1.创建一个新的团结引擎项目或打开一个现有的项目;

2.转到Window>Package Manager


3.在Package Manager窗口中,选择+>Add Package by name...

4.输入cn.tuanjie.neural-deformer ;

5.点击“添加”以将包添加到您的项目中。

导入示例场景与快速验证

1.在Package Manager窗口中,选中Neural Deformer,在右侧页面选择“Samples”标签。根据当前项目所适配的渲染管线(URP/HDRP),选择对应的示例,点击“Import”导入到当前项目中。

打开网易新闻 查看精彩图片

2.打开示例场景。

以 Character URP 为例,示例场景的路径为:

Assets/Samples/Neural Deformer/ / Character URP/Scenes/NeuralDeformer.unity

Character HDRP 的操作方法与之类似。

3.在 Hierarchy 中导航并选中TG_Hero_Interactive>Hero>LOD0>TG_Outfit_01,这是该人物的服装 GameObject。在 Inspector 窗口里可看到,该 GameObject 已经预先挂载好和 Neural Deformer 有关的组件,以及一个包含 4 组角色动画的 Timeline。

打开网易新闻 查看精彩图片

4.在 Inspector 窗口中找到Neural Deformer Player组件,确保它处于激活状态且Enable Deformation被选中。

5.在编辑模式下,打开 Timeline 窗口,设置人物动画的时间节点。接着,在Neural Deformer Player组件中调整Deformation WeightAlpha Mask Influence Weight的值,并在场景中观察角色服装的形变情况。

6.点击“Play”进入播放模式,检查 Runtime 下角色服装的形变情况。

快速上手
准备数据

为了把神经变形器应用到您的动画网格,您需要完成如下的数据准备:

1.目标网格GameObject,它通过SkinnedMeshRenderer组件被动画驱动,并且已经妥善设置了顶点权重;

2.关于目标网格的一系列动画剪辑(AnimationClip),通常以 FBX 资产的形式导入引擎。您需要将它们放在同一个文件夹下,如Assets/path/to/fbx

3.与动画剪辑逐一对应的Alembic资产,它们模拟对应动画中目标网格的真实形变。您需要将它们放在同一个文件夹下,如Assets/path/to/abc

4.检查前两步导入的所有资产,确保它们在引擎中的网格顶点数完全一致。必要时可在Inspector里调整 FBX 或 Alembic 的导入设置,防止同一个顶点因法线、颜色、UV 等属性分裂成多个点。

打开网易新闻 查看精彩图片
打开网易新闻 查看精彩图片

使用Neural Deformer Dataset Builder 构建训练数据集

Deformer Data Dataset Builder组件的主要作用是:自动化地解析原始数据,提取出从角色的骨骼动画到目标网格复杂变形的对应关系,从而生成可直接用于训练神经网络的数据集。

首先,选择场景中需要变形的游戏对象,在Inspector下方点击Add Compoent>Neural Deformer>Neural Deformer Dataset Builder,可添加该组件:

打开网易新闻 查看精彩图片

使用Neural Deformer Trainer 训练神经网络模型

Deformer Data Trainer组件的主要作用是:设置神经网络训练的各种属性与超参数,直接在编辑器界面启动或终止训练流程,并预览训练结果。全过程无需再切换到其他环境手动执行,工作流简洁流畅。

首先,选择挂载了Deformer Data Dataset Builder组件的游戏对象,在 Inspector 下方点击Add Compoent>Neural Deformer>Neural Deformer Trainer,可添加该组件。

打开网易新闻 查看精彩图片

使用Neural Deformer Player 应用网格变形

Neural Deformer Player 组件是神经变形器的核心组件,其主要作用是基于训练好的神经网络模型实现网格的变形效果。它支持在 CPU 和 GPU 上进行推理和变形处理,适用于需要高效、动态角色或物体变形的场景(如数字人、动画角色等)。

首先,选择场景中需要变形的网格游戏对象,且确保已绑定了Skinned Mesh Renderer后,在 Inspector 下方点击Add Compoent>Neural Deformer>Neural Deformer Player,可添加该组件。

打开网易新闻 查看精彩图片

启用Neural Deformer Player组件,实现网格变形:

打开网易新闻 查看精彩图片

⚠️注意事项

1.神经变形器为数据驱动型算法,其变形效果与训练数据的分布及范围密切相关。若推理时的姿态在训练数据中出现频率较低或超出数据分布范围,变形效果可能会受到影响。因此,建议用户确保有足够的训练数据,并尽可能涵盖变形对象的所有潜在运动范围,以提升变形质量。

2.神经变形器未考虑变形对象在场景中与其他物体的位置关系,这可能导致穿模、自相交、碰撞检测失效等错误。

更多详情可参考官方文档:

https://docs.unity.cn/cn/Packages-cn/cn.tuanjie.neural-deformer@1.0/manual/

Unity 官方微信

第一时间了解Unity引擎动向,学习进阶开发技能

每一个“点赞”、“在看”,都是我们前进的动力

打开网易新闻 查看精彩图片