> 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/web-plugins/convai-web-sdk/vanilla-typescript/mappings-reference.md).

# Blendshape 声道顺序参考

Convai Web SDK 为唇形同步和面部动画流式传输的 ARKit 和 MetaHuman blendshape 帧通道顺序参考。

中的每个混合形状帧 `client.blendshapeQueue` 是一个 `Float32Array` 其位置 `i` 保存通道的值 `i` 如下。顺序取决于 `blendshapeConfig.format` 并适用于原始帧，在任何 `customMapper` 更改它们之前。两个表都导出自 `@convai/web-sdk/lipsync-helpers`，因此请在代码中读取它们，而不是复制它们。

### ARKit 顺序

`ARKIT_ORDER_61` 给出……的顺序 `格式："arkit"` 帧：61 个值。索引 0 到 51 是 52 个 ARKit 面部混合形状，顺序与 Apple 的标准顺序不同。索引 52 到 60 是头部和眼睛旋转。

| 索引 | 通道        |
| -- | --------- |
| 0  | `左眼眨眼`    |
| 1  | `左眼向下看`   |
| 2  | `左眼向内看`   |
| 3  | `左眼向外看`   |
| 4  | `左眼向上看`   |
| 5  | `左眼眯眼`    |
| 6  | `左眼睁大`    |
| 7  | `右眼眨眼`    |
| 8  | `右眼向下看`   |
| 9  | `右眼向内看`   |
| 10 | `右眼向外看`   |
| 11 | `右眼向上看`   |
| 12 | `右眼眯眼`    |
| 13 | `右眼睁大`    |
| 14 | `下颌前伸`    |
| 15 | `下颌右移`    |
| 16 | `下颌左移`    |
| 17 | `JawOpen` |
| 18 | `闭嘴`      |
| 19 | `嘴唇成漏斗状`  |
| 20 | `嘴唇噘起`    |
| 21 | `嘴向右`     |
| 22 | `嘴向左`     |
| 23 | `左侧嘴角微笑`  |
| 24 | `右侧嘴角微笑`  |
| 25 | `左侧嘴角下撇`  |
| 26 | `右侧嘴角下撇`  |
| 27 | `左侧酒窝`    |
| 28 | `右侧酒窝`    |
| 29 | `左侧嘴角拉伸`  |
| 30 | `右侧嘴角拉伸`  |
| 31 | `嘴唇下卷`    |
| 32 | `嘴唇上卷`    |
| 33 | `嘴唇下耸`    |
| 34 | `嘴唇上耸`    |
| 35 | `左侧嘴唇压紧`  |
| 36 | `右侧嘴唇压紧`  |
| 37 | `左侧下唇下压`  |
| 38 | `右侧下唇下压`  |
| 39 | `左侧上唇上提`  |
| 40 | `右侧上唇上提`  |
| 41 | `左眉下压`    |
| 42 | `右眉下压`    |
| 43 | `双眉内侧上提`  |
| 44 | `左眉外侧上提`  |
| 45 | `右眉外侧上提`  |
| 46 | `鼓腮`      |
| 47 | `左脸颊眯眼`   |
| 48 | `右脸颊眯眼`   |
| 49 | `左侧鼻翼皱起`  |
| 50 | `右侧鼻翼皱起`  |
| 51 | `伸舌`      |
| 52 | `头部偏航`    |
| 53 | `头部俯仰`    |
| 54 | `头部滚转`    |
| 55 | `左眼偏航`    |
| 56 | `左眼俯仰`    |
| 57 | `左眼滚转`    |
| 58 | `右眼偏航`    |
| 59 | `右眼俯仰`    |
| 60 | `右眼滚转`    |

`标准 ARKit 顺序` 按 Apple 的标准顺序保存 52 个面部混合形状，并且 `convertOrder61ToStandard(values61)` 将一个 61 值帧重新排序为该顺序。 `mapOrder61ToNames(values61)` 将帧作为以通道名称为键的对象返回。 `getHeadRotation`, `getEyeRotations`，以及 `getLipSyncValuesFromOrder61` 读取帧的子集。

### MetaHuman 顺序

`METAHUMAN_ORDER_251` 给出……的顺序 `格式："mha"` 帧：251 个值，每个值都以一个 MetaHuman `CTRL_expressions_` 控件。

| 索引  | 通道                                    |
| --- | ------------------------------------- |
| 0   | `CTRL_expressions_左眉下压`               |
| 1   | `CTRL_expressions_右眉下压`               |
| 2   | `CTRL_expressions_左眉横移`               |
| 3   | `CTRL_expressions_右眉横移`               |
| 4   | `CTRL_expressions_左眉内侧上提`             |
| 5   | `CTRL_expressions_右眉内侧上提`             |
| 6   | `CTRL_expressions_左眉外侧上提`             |
| 7   | `CTRL_expressions_右眉外侧上提`             |
| 8   | `CTRL_expressions_左耳上提`               |
| 9   | `CTRL_expressions_右耳上提`               |
| 10  | `CTRL_expressions_左眼眨眼`               |
| 11  | `CTRL_expressions_右眼眨眼`               |
| 12  | `CTRL_expressions_左侧眼颊上提`             |
| 13  | `CTRL_expressions_右侧眼颊上提`             |
| 14  | `CTRL_expressions_左眼面部皱缩`             |
| 15  | `CTRL_expressions_右眼面部皱缩`             |
| 16  | `CTRL_expressions_左眼睑压紧`              |
| 17  | `CTRL_expressions_右眼睑压紧`              |
| 18  | `CTRL_expressions_左眼向下看`              |
| 19  | `CTRL_expressions_右眼向下看`              |
| 20  | `CTRL_expressions_左眼向左看`              |
| 21  | `CTRL_expressions_右眼向左看`              |
| 22  | `CTRL_expressions_左眼向右看`              |
| 23  | `CTRL_expressions_右眼向右看`              |
| 24  | `CTRL_expressions_左眼向上看`              |
| 25  | `CTRL_expressions_右眼向上看`              |
| 26  | `CTRL_expressions_左下眼睑下拉`             |
| 27  | `CTRL_expressions_右下眼睑下拉`             |
| 28  | `CTRL_expressions_左下眼睑上提`             |
| 29  | `CTRL_expressions_右下眼睑上提`             |
| 30  | `CTRL_expressions_眼睛平行注视方向`           |
| 31  | `CTRL_expressions_左瞳孔缩小`              |
| 32  | `CTRL_expressions_右瞳孔缩小`              |
| 33  | `CTRL_expressions_左瞳孔放大`              |
| 34  | `CTRL_expressions_右瞳孔放大`              |
| 35  | `CTRL_expressions_左眼放松`               |
| 36  | `CTRL_expressions_右眼放松`               |
| 37  | `CTRL_expressions_左眼内侧眯起`             |
| 38  | `CTRL_expressions_右眼内侧眯起`             |
| 39  | `CTRL_expressions_左上眼睑上提`             |
| 40  | `CTRL_expressions_右上眼睑上提`             |
| 41  | `CTRL_expressions_左眼睁大`               |
| 42  | `CTRL_expressions_右眼睁大`               |
| 43  | `CTRL_expressions_左内侧睫毛下压`            |
| 44  | `CTRL_expressions_右内侧睫毛下压`            |
| 45  | `CTRL_expressions_左外侧睫毛下压`            |
| 46  | `CTRL_expressions_右外侧睫毛下压`            |
| 47  | `CTRL_expressions_左内侧睫毛上提`            |
| 48  | `CTRL_expressions_右内侧睫毛上提`            |
| 49  | `CTRL_expressions_左外侧睫毛上提`            |
| 50  | `CTRL_expressions_右外侧睫毛上提`            |
| 51  | `CTRL_expressions_下颌后移`               |
| 52  | `CTRL_expressions_左下巴压缩`              |
| 53  | `CTRL_expressions_右下巴压缩`              |
| 54  | `CTRL_expressions_左下巴下压`              |
| 55  | `CTRL_expressions_右下巴下压`              |
| 56  | `CTRL_expressions_左下巴上提`              |
| 57  | `CTRL_expressions_右下巴上提`              |
| 58  | `CTRL_expressions_左下颌咬紧`              |
| 59  | `CTRL_expressions_右下颌咬紧`              |
| 60  | `CTRL_expressions_下颌前伸`               |
| 61  | `CTRL_expressions_下颌左移`               |
| 62  | `CTRL_expressions_jawOpen`            |
| 63  | `CTRL_expressions_极度张嘴`               |
| 64  | `CTRL_expressions_下颌右移`               |
| 65  | `CTRL_expressions_左脸颊鼓气`              |
| 66  | `CTRL_expressions_右脸颊鼓气`              |
| 67  | `CTRL_expressions_左脸颊吸入`              |
| 68  | `CTRL_expressions_右脸颊吸入`              |
| 69  | `CTRL_expressions_左嘴角下压`              |
| 70  | `CTRL_expressions_右嘴角下压`              |
| 71  | `CTRL_expressions_左嘴角向下`              |
| 72  | `CTRL_expressions_右嘴角向下`              |
| 73  | `CTRL_expressions_左嘴角收窄`              |
| 74  | `CTRL_expressions_右嘴角收窄`              |
| 75  | `CTRL_expressions_左嘴角拉伸`              |
| 76  | `CTRL_expressions_右嘴角拉伸`              |
| 77  | `CTRL_expressions_左下嘴角圆化`             |
| 78  | `CTRL_expressions_右下嘴角圆化`             |
| 79  | `CTRL_expressions_左上嘴角圆化`             |
| 80  | `CTRL_expressions_右上嘴角圆化`             |
| 81  | `CTRL_expressions_左下嘴角尖化`             |
| 82  | `CTRL_expressions_右下嘴角尖化`             |
| 83  | `CTRL_expressions_左上嘴角尖化`             |
| 84  | `CTRL_expressions_右上嘴角尖化`             |
| 85  | `CTRL_expressions_左嘴角上提`              |
| 86  | `CTRL_expressions_右嘴角上提`              |
| 87  | `CTRL_expressions_左嘴角加宽`              |
| 88  | `CTRL_expressions_右嘴角加宽`              |
| 89  | `CTRL_expressions_左酒窝`                |
| 90  | `CTRL_expressions_右酒窝`                |
| 91  | `CTRL_expressions_嘴向下`                |
| 92  | `CTRL_expressions_左下嘴唇成漏斗状`           |
| 93  | `CTRL_expressions_右下嘴唇成漏斗状`           |
| 94  | `CTRL_expressions_左上嘴唇成漏斗状`           |
| 95  | `CTRL_expressions_右上嘴唇成漏斗状`           |
| 96  | `CTRL_expressions_嘴向左`                |
| 97  | `CTRL_expressions_左嘴唇鼓气`              |
| 98  | `CTRL_expressions_右嘴唇鼓气`              |
| 99  | `CTRL_expressions_左嘴唇压紧`              |
| 100 | `CTRL_expressions_右嘴唇压紧`              |
| 101 | `CTRL_expressions_左嘴唇向下拉`             |
| 102 | `CTRL_expressions_右嘴唇向下拉`             |
| 103 | `CTRL_expressions_左嘴唇向上拉`             |
| 104 | `CTRL_expressions_右嘴唇向上拉`             |
| 105 | `CTRL_expressions_左嘴唇噘起`              |
| 106 | `CTRL_expressions_右嘴唇噘起`              |
| 107 | `CTRL_expressions_左嘴唇前推`              |
| 108 | `CTRL_expressions_右嘴唇前推`              |
| 109 | `CTRL_expressions_左嘴唇推动`              |
| 110 | `CTRL_expressions_右嘴唇推动`              |
| 111 | `CTRL_expressions_左嘴唇推动`              |
| 112 | `CTRL_expressions_右嘴唇推动`              |
| 113 | `CTRL_expressions_左嘴唇黏连L阶段1`          |
| 114 | `CTRL_expressions_左嘴唇黏连L阶段2`          |
| 115 | `CTRL_expressions_左嘴唇黏连L阶段3`          |
| 116 | `CTRL_expressions_右嘴唇黏连R阶段1`          |
| 117 | `CTRL_expressions_右嘴唇黏连R阶段2`          |
| 118 | `CTRL_expressions_右嘴唇黏连R阶段3`          |
| 119 | `CTRL_expressions_左下嘴唇加厚`             |
| 120 | `CTRL_expressions_右下嘴唇加厚`             |
| 121 | `CTRL_expressions_左下嘴唇向内加厚`           |
| 122 | `CTRL_expressions_右下嘴唇向内加厚`           |
| 123 | `CTRL_expressions_左上嘴唇向内加厚`           |
| 124 | `CTRL_expressions_右上嘴唇向内加厚`           |
| 125 | `CTRL_expressions_左上嘴唇加厚`             |
| 126 | `CTRL_expressions_右上嘴唇加厚`             |
| 127 | `CTRL_expressions_左下嘴唇变薄`             |
| 128 | `CTRL_expressions_右下嘴唇变薄`             |
| 129 | `CTRL_expressions_左下嘴唇向内变薄`           |
| 130 | `CTRL_expressions_右下嘴唇向内变薄`           |
| 131 | `CTRL_expressions_左上嘴唇向内变薄`           |
| 132 | `CTRL_expressions_右上嘴唇向内变薄`           |
| 133 | `CTRL_expressions_左上嘴唇变薄`             |
| 134 | `CTRL_expressions_右上嘴唇变薄`             |
| 135 | `CTRL_expressions_左下嘴唇收紧`             |
| 136 | `CTRL_expressions_右下嘴唇收紧`             |
| 137 | `CTRL_expressions_左上嘴唇收紧`             |
| 138 | `CTRL_expressions_右上嘴唇收紧`             |
| 139 | `CTRL_expressions_左下嘴唇靠拢`             |
| 140 | `CTRL_expressions_右下嘴唇靠拢`             |
| 141 | `CTRL_expressions_左上嘴唇靠拢`             |
| 142 | `CTRL_expressions_右上嘴唇靠拢`             |
| 143 | `CTRL_expressions_左下嘴唇向内靠近`           |
| 144 | `CTRL_expressions_右下嘴唇向内靠近`           |
| 145 | `CTRL_expressions_左上嘴唇向内靠近`           |
| 146 | `CTRL_expressions_右上嘴唇向内靠近`           |
| 147 | `CTRL_expressions_左下唇咬住`              |
| 148 | `CTRL_expressions_右下唇咬住`              |
| 149 | `CTRL_expressions_左下唇下压`              |
| 150 | `CTRL_expressions_右下唇下压`              |
| 151 | `CTRL_expressions_左下唇内卷`              |
| 152 | `CTRL_expressions_右下唇内卷`              |
| 153 | `CTRL_expressions_左下唇外卷`              |
| 154 | `CTRL_expressions_右下唇外卷`              |
| 155 | `CTRL_expressions_下唇左移`               |
| 156 | `CTRL_expressions_下唇右移`               |
| 157 | `CTRL_expressions_左下唇靠近牙齿`            |
| 158 | `CTRL_expressions_右下唇靠近牙齿`            |
| 159 | `CTRL_expressions_左下按压`               |
| 160 | `CTRL_expressions_右下按压`               |
| 161 | `CTRL_expressions_左上按压`               |
| 162 | `CTRL_expressions_右上按压`               |
| 163 | `CTRL_expressions_嘴向右`                |
| 164 | `CTRL_expressions_左尖角拉动`              |
| 165 | `CTRL_expressions_右尖角拉动`              |
| 166 | `CTRL_expressions_嘴唇粘连DC`             |
| 167 | `CTRL_expressions_嘴唇粘连DINL`           |
| 168 | `CTRL_expressions_嘴唇粘连DINR`           |
| 169 | `CTRL_expressions_嘴唇粘连DOUTL`          |
| 170 | `CTRL_expressions_嘴唇粘连DOUTR`          |
| 171 | `CTRL_expressions_嘴唇粘连UC`             |
| 172 | `CTRL_expressions_嘴唇粘连UINL`           |
| 173 | `CTRL_expressions_嘴唇粘连UINR`           |
| 174 | `CTRL_expressions_嘴唇粘连UOUTL`          |
| 175 | `CTRL_expressions_嘴唇粘连UOUTR`          |
| 176 | `CTRL_expressions_左嘴唇拉伸`              |
| 177 | `CTRL_expressions_左嘴唇拉伸并闭合`           |
| 178 | `CTRL_expressions_右嘴唇拉伸并闭合`           |
| 179 | `CTRL_expressions_右嘴唇拉伸`              |
| 180 | `CTRL_expressions_嘴向上`                |
| 181 | `CTRL_expressions_左上唇咬住`              |
| 182 | `CTRL_expressions_右上唇咬住`              |
| 183 | `CTRL_expressions_左上唇上提`              |
| 184 | `CTRL_expressions_右上唇上提`              |
| 185 | `CTRL_expressions_左上唇内卷`              |
| 186 | `CTRL_expressions_右上唇内卷`              |
| 187 | `CTRL_expressions_左上唇外卷`              |
| 188 | `CTRL_expressions_右上唇外卷`              |
| 189 | `CTRL_expressions_左上唇左移`              |
| 190 | `CTRL_expressions_右上唇右移`              |
| 191 | `CTRL_expressions_左上唇靠近牙齿`            |
| 192 | `CTRL_expressions_右上唇靠近牙齿`            |
| 193 | `CTRL_expressions_颈部二腹肌下压`            |
| 194 | `CTRL_expressions_颈部二腹肌上提`            |
| 195 | `CTRL_expressions_左胸锁乳突肌收缩`           |
| 196 | `CTRL_expressions_右胸锁乳突肌收缩`           |
| 197 | `CTRL_expressions_左颈拉伸`               |
| 198 | `CTRL_expressions_右颈拉伸`               |
| 199 | `CTRL_expressions_颈部吞咽阶段1`            |
| 200 | `CTRL_expressions_颈部吞咽阶段2`            |
| 201 | `CTRL_expressions_颈部吞咽阶段3`            |
| 202 | `CTRL_expressions_颈部吞咽阶段4`            |
| 203 | `CTRL_expressions_喉部下压`               |
| 204 | `CTRL_expressions_喉部呼气`               |
| 205 | `CTRL_expressions_喉部吸气`               |
| 206 | `CTRL_expressions_喉部上提`               |
| 207 | `CTRL_expressions_左鼻唇沟加深`             |
| 208 | `CTRL_expressions_右鼻唇沟加深`             |
| 209 | `CTRL_expressions_左鼻孔压缩`              |
| 210 | `CTRL_expressions_右鼻孔压缩`              |
| 211 | `CTRL_expressions_左鼻孔下压`              |
| 212 | `CTRL_expressions_右鼻孔下压`              |
| 213 | `CTRL_expressions_noseNostrilDilateL` |
| 214 | `CTRL_expressions_noseNostrilDilateR` |
| 215 | `CTRL_expressions_noseWrinkleL`       |
| 216 | `CTRL_expressions_noseWrinkleR`       |
| 217 | `CTRL_expressions_noseWrinkleUpperL`  |
| 218 | `CTRL_expressions_noseWrinkleUpperR`  |
| 219 | `CTRL_expressions_teethBackD`         |
| 220 | `CTRL_expressions_teethBackU`         |
| 221 | `CTRL_expressions_teethDownD`         |
| 222 | `CTRL_expressions_teethDownU`         |
| 223 | `CTRL_expressions_teethFwdD`          |
| 224 | `CTRL_expressions_teethFwdU`          |
| 225 | `CTRL_expressions_teethLeftD`         |
| 226 | `CTRL_expressions_teethLeftU`         |
| 227 | `CTRL_expressions_teethRightD`        |
| 228 | `CTRL_expressions_teethRightU`        |
| 229 | `CTRL_expressions_teethUpD`           |
| 230 | `CTRL_expressions_teethUpU`           |
| 231 | `CTRL_expressions_tongueBendDown`     |
| 232 | `CTRL_expressions_tongueBendUp`       |
| 233 | `CTRL_expressions_tongueDown`         |
| 234 | `CTRL_expressions_tongueIn`           |
| 235 | `CTRL_expressions_tongueLeft`         |
| 236 | `CTRL_expressions_tongueNarrow`       |
| 237 | `CTRL_expressions_tongueOut`          |
| 238 | `CTRL_expressions_tonguePress`        |
| 239 | `CTRL_expressions_tongueRight`        |
| 240 | `CTRL_expressions_tongueRoll`         |
| 241 | `CTRL_expressions_tongueThick`        |
| 242 | `CTRL_expressions_tongueThin`         |
| 243 | `CTRL_expressions_tongueTipDown`      |
| 244 | `CTRL_expressions_tongueTipLeft`      |
| 245 | `CTRL_expressions_tongueTipRight`     |
| 246 | `CTRL_expressions_tongueTipUp`        |
| 247 | `CTRL_expressions_tongueTwistLeft`    |
| 248 | `CTRL_expressions_tongueTwistRight`   |
| 249 | `CTRL_expressions_tongueUp`           |
| 250 | `CTRL_expressions_tongueWide`         |

`getMetaHumanBlendshapeIndex(name)` 并且 `getMetaHumanBlendshapeName(index)` 在完整控制名称及其索引之间转换。 `METAHUMAN_CATEGORIES` 将一个区域名称（`眉毛`, `耳朵`, `眼睛`, `睫毛`, `下颌`, `嘴巴`, `颈部`, `鼻子`, `牙齿`, `舌头`）映射到 `起始`, `结束`，以及 `count`，以及 `getMetaHumanBlendshapesByCategory(category)` 返回该范围内的名称。 `KEY_METAHUMAN_LIPSYNC` 将少数与语音相关的控制映射为其索引，例如 `JAW_OPEN`。

### 相关参考

{% content-ref url="/pages/e842433c402c6a1f2b7938d74b7fd4adf7da7152" %}
[在原生 TypeScript 中添加口型同步](/api-docs/zh/cha-jian-yu-ji-cheng/web-plugins/convai-web-sdk/vanilla-typescript/real-time-lipsync.md)
{% endcontent-ref %}

{% content-ref url="/pages/29f9aac19fcc2f8cd08338eeb8c9340da2c133cf" %}
[使用 blendshape 驱动面部动画](/api-docs/zh/cha-jian-yu-ji-cheng/web-plugins/convai-web-sdk/lipsync-and-blendshape.md)
{% endcontent-ref %}

{% content-ref url="/pages/dff296725774f9173a7391e28344f5f94cf35b60" %}
[配置和类型参考](/api-docs/zh/cha-jian-yu-ji-cheng/web-plugins/convai-web-sdk/vanilla-typescript/best-practices-and-type-definitions.md)
{% endcontent-ref %}


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.convai.com/api-docs/zh/cha-jian-yu-ji-cheng/web-plugins/convai-web-sdk/vanilla-typescript/mappings-reference.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
