> For the complete documentation index, see [llms.txt](https://docs.convai.com/api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/unity-plugin-beta-overview/getting-started/setup/add-lip-sync-to-your-character/lip-sync-profiles-and-mappings.md).

# Lip Sync 配置文件与映射

## 简介

Convai 口型同步通过将传入的语音动画通道与角色上的 blendshape 匹配，实时驱动面部 blendshape 动画。为了可靠地实现这一点，系统需要两样东西：

* A **Profile**，它定义了角色使用的通道架构
* A **映射**，它告诉 SDK 这些通道如何连接到网格上的实际 blendshape 名称

这两个资源共同使口型同步流程变得可预测、可编辑，并且易于在 Unity 编辑器中适配。

## 概述

从高层来看，口型同步系统要回答两个问题：

1. **当前启用了哪种面部骨骼架构？**\
   这由 **Profile**.
2. **每个传入通道应如何影响这个特定的角色网格？**\
   这由 **映射**.

二者都存储为 Unity `ScriptableObject` 资源，因此可以在编辑器中直接检查、分配和自定义。

## 什么是配置文件？

A **口型同步配置文件** 定义了面部骨骼架构所期望的通道布局。它充当传入面部动画数据的架构。

例如，如果某个配置文件期望一个名为 `jawOpen`的通道，系统就会根据该配置文件的规则来解释这个通道。这使得 SDK 能在任何与网格相关的映射发生之前，知道正在发送什么数据以及如何对其进行分类。

配置文件并不绑定到单个角色。它定义的是一种可重复使用的面部骨骼格式，多个角色可以共享。

## 什么是映射？

A **口型同步映射** 将配置文件通道连接到角色的实际 blendshape 名称上 `SkinnedMeshRenderer`.

这就是口型同步能够在真实角色资源上工作的原因。即使传入的通道架构是有效的，只有系统知道每个通道应该驱动哪个网格 blendshape 时，动画才能正确应用。

映射不仅仅能做简单的一对一路由，它还可以：

* 将一个源通道路由到多个目标 blendshape
* 缩放或偏移单个通道
* 限制过强的数值
* 禁用不应被驱动的通道
* 可选地允许未映射的名称直接透传

### 配置文件与映射如何协同工作

流程很简单：

1. 口型同步配置文件决定当前启用哪种通道架构
2. 口型同步映射从该架构中读取通道
3. 映射将处理后的数值写入角色网格上的目标 blendshape

这种分离很重要，因为它允许一个配置文件在许多不同角色之间复用，而每个角色仍然可以拥有自己的映射。

例如，两个角色可能都使用 `arkit` 配置文件，但一个可能使用默认映射，而另一个由于 blendshape 名称不同而使用自定义映射。

## 支持的配置文件格式

目前，Convai 支持以下口型同步配置文件格式：

| Profile   | ID             |
| --------- | -------------- |
| ARKit     | `arkit`        |
| MetaHuman | `mha`          |
| CC4 扩展    | `cc4_extended` |

这些是目前唯一受支持的传输格式。

这意味着：

* 你可以在项目中创建自定义配置文件资源
* 你可以根据工作流重命名或组织配置文件
* 你可以覆盖某个配置文件所使用的受支持传输格式
* 你 **不能** 通过输入自定义值来引入一种全新的传输格式

换句话说，创建自定义配置文件并不会为新的后端格式添加支持。传输格式仍然必须解析为以下受支持值之一： `arkit`, `mha`，或 `cc4_extended`.

### 内置配置文件

SDK 为受支持的格式包含了内置配置文件。这些代表了口型同步系统使用的标准架构，并且旨在作为权威的内置定义。

每个配置文件资源都包含：

| 字段          | 用途             |
| ----------- | -------------- |
| **配置文件 ID** | 内部运行时标识符       |
| **显示名称**    | 在编辑器中显示的人类可读标签 |
| **传输格式**    | 活动流程使用的受支持格式标记 |

内置配置文件资源位于：

```
Resources/LipSync/Profiles/
```

### 配置文件注册表

配置文件被分组到一个 **配置文件注册表** 中，而不是逐个加载。

内置注册表位于：

```
Resources/LipSync/ProfileRegistries/LipSyncBuiltInProfileRegistry
```

在运行时，SDK 会加载内置注册表，扫描同一 `Resources` 路径下的其他注册表，并将它们合并为一个单一目录。

注册表按优先级合并：

* 优先级数值较低的项先处理
* 优先级更高的项可以覆盖现有的配置文件 ID
* 重复的配置文件 ID 会产生警告，且优先级更高的定义生效

这让你无需直接编辑内置 SDK 资源，就能扩展或覆盖配置文件定义。

## 内置默认映射

SDK 还包含适用于受支持配置文件类型的内置默认映射。

它们位于：

```
Resources/LipSync/DefaultMaps/
```

内置集合包括：

<table><thead><tr><th width="291.9630126953125">资源</th><th>目标配置文件</th><th>用途</th></tr></thead><tbody><tr><td><code>ConvaiLipSyncDefaultMap_ARKit</code></td><td><code>arkit</code></td><td>ARKit 通道的同构式默认映射</td></tr><tr><td><code>ConvaiLipSyncDefaultMap_MetaHuman</code></td><td><code>mha</code></td><td>MetaHuman 通道的同构式默认映射</td></tr><tr><td><code>ConvaiLipSyncDefaultMap_CC4Extended</code></td><td><code>cc4_extended</code></td><td>CC4 扩展通道的同构式默认映射</td></tr><tr><td><code>ConvaiLipSyncDefaultMap_ARKitToCC4Extended</code></td><td><code>arkit</code></td><td>从 ARKit 通道到 CC4 扩展 blendshape 名称的跨骨骼架构转换</td></tr></tbody></table>

这些默认映射旨在开箱即用地覆盖常见用例。

#### 为什么某些内置通道会被限制或禁用

某些内置映射会有意降低或抑制特定通道，以便在常见角色设置上保持结果稳定且自然。

例如包括：

* **下颌张开限制** 以减少夸张的口部运动
* **眼球旋转通道禁用** 适用于不使用由 blendshape 驱动眼部运动的骨骼架构
* **装饰性通道禁用** 适用于这些通道不适合语音动画的骨骼架构

### 默认映射注册表

该 **默认映射注册表** 定义每个配置文件自动使用哪一个默认映射。

它位于：

```
Resources/LipSync/DefaultMaps/LipSyncDefaultMapRegistry
```

此注册表将每个受支持的配置文件 ID 映射到其默认的 `ConvaiLipSyncMapAsset`.

### 映射解析如何工作

当口型同步组件初始化时，SDK 会通过一个回退链确定要使用哪个映射：

1. **组件上的显式映射**\
   如果直接分配了一个映射资源，并且其目标配置文件与活动配置文件匹配，则使用该映射。
2. **默认映射注册表查找**\
   如果没有分配有效的显式映射，系统会检查活动配置文件的默认映射注册表。
3. **安全禁用回退**\
   如果找不到有效映射，SDK 会创建一个安全回退，输出零值而不是为角色做动画。

这种行为可确保缺失或不匹配的设置以安全方式失败，而不会导致场景崩溃。

## 何时创建自定义资源

通常你 **不是** 不需要自定义资源，如果你的角色已经匹配某个内置受支持格式，并且它的 blendshape 名称遵循预期的命名约定。

在以下情况下，你应该创建一个 **自定义映射** ：

* 你的角色使用不同的 blendshape 名称
* 你需要自定义限制或缩放
* 你希望一个源通道驱动多个目标
* 你希望更好地控制哪些通道被启用

你可以创建一个 **自定义配置文件** ：

* 你希望有一个项目特定的配置文件标识或标签
* 你希望在项目内部以不同方式组织受支持格式
* 你需要一个自定义配置文件资源，但它仍应解析为当前受支持的传输格式之一

如需逐步说明，请继续查看：

* [**创建配置文件**](/api-docs/zh/cha-jian-yu-ji-cheng/unity-plugin-beta-overview/getting-started/setup/add-lip-sync-to-your-character/lip-sync-profiles-and-mappings/creating-a-profile.md)
* [**创建自定义映射**](/api-docs/zh/cha-jian-yu-ji-cheng/unity-plugin-beta-overview/getting-started/setup/add-lip-sync-to-your-character/lip-sync-profiles-and-mappings/creating-a-custom-map.md)

## 结论

配置文件定义通道架构。映射定义该架构如何驱动特定网格。

一旦你理解了这种分离，口型同步工作流就会变得很直接：选择与你的角色设置相匹配的受支持配置文件格式，然后使用内置映射或自定义映射，将这些通道连接到角色的 blendshape。

{% hint style="info" %}
**需要帮助？** 如有疑问，请访问 [**Convai 开发者论坛**](https://forum.convai.com/).
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/unity-plugin-beta-overview/getting-started/setup/add-lip-sync-to-your-character/lip-sync-profiles-and-mappings.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
