# Expression(表情) 的设置

<p class="callout warning">**旧BLENDSHAPE**  
VRM-0.X 中的 BlendShape 已经在 VRM-1.0中更名为 Expression。</p>

### **<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false"><span data-kimi-disabled="false" data-kimi-id="1726822806120" data-kimi-recommend="false">Expression(表情) 分配设置</span></span>**

在 [<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false">VrmObject</span>](https://docs.vrcd.org.cn/books/vrm-vrm-10/page/vrmobject-extractvrm)<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false"> 的 Expression GUI 分配表情。</span>

<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false">[![vrm_expression_settings.jpg](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/HVkcNTYzT0aUdUwV-vrm-expression-settings.jpg)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/HVkcNTYzT0aUdUwV-vrm-expression-settings.jpg)</span>

### **<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false"><span data-kimi-disabled="false" data-kimi-id="1726822806120" data-kimi-recommend="false">个别的 Expression(表情) 设置</span></span>**

<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false"><span data-kimi-disabled="false" data-kimi-id="1726822806120" data-kimi-recommend="false">每个表情都是独立的资产。</span></span>

**<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false"><span data-kimi-disabled="false" data-kimi-id="1726822806120" data-kimi-recommend="false">[![expression_asset.jpg](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/9ZSWf3nupTlZ84Wn-expression-asset.jpg)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/9ZSWf3nupTlZ84Wn-expression-asset.jpg)</span></span>**

**<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false"><span data-kimi-disabled="false" data-kimi-id="1726822806120" data-kimi-recommend="false">[![expression.jpg](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/4uHdNESweoAEAkxC-expression.jpg)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/4uHdNESweoAEAkxC-expression.jpg)</span></span>**

#### **MorphTarget（变换目标）**

具有 blendshape 的 `SkinnedMeshRenderer` 将被列出。

<p class="callout info">SkinnedMeshRenderer：带蒙皮的 网格 渲染器/着色器</p>


#### **<span data-kimi-disabled="false" data-kimi-id="1726822684293" data-kimi-recommend="false"><span data-kimi-disabled="false" data-kimi-id="1726822806120" data-kimi-recommend="false">List（列表）</span></span>**

##### MorphTarget（变换目标）

- 显示 MorphTarget 的列表

##### MaterialColor（纹理颜色）

可以使用\[0-1\]的权重值来动画化Material颜色。

- <span data-kimi-disabled="false" data-kimi-id="1726823628192" data-kimi-recommend="false">Color（颜色）</span>
- <span data-kimi-disabled="false" data-kimi-id="1726823628192" data-kimi-recommend="false">EmissionColor（自发光颜色）</span>
- <span data-kimi-disabled="false" data-kimi-id="1726823628192" data-kimi-recommend="false">ShadeColor（阴影颜色）</span>
- <span data-kimi-disabled="false" data-kimi-id="1726823628192" data-kimi-recommend="false">RimColor</span>
- <span data-kimi-disabled="false" data-kimi-id="1726823628192" data-kimi-recommend="false">OutlineColor（轮廓线颜色）</span>

##### TextureTransform（纹理变换）

可以使用\[0-1\]的权重值来动画化纹理的偏移和缩放。

#### **Option（选项）**

除了 MorphTarget 之外的详细设置项。

##### IsBinary（二值化）[​](https://vrm.dev/univrm1/vrm1_tutorial/expression/#isbinary "IsBinary への直接リンク")

为了更具有动漫感，你可能希望表情切换时没有变化过程。激活该选项，表情将不会有过渡动画。

##### Override（覆盖）​

控制 程序化表情 的值。

> **程序化 Expression(表情)** 考虑到应用程序通常会自动生成权重值，我们为其定义了一种`程序化表情`。并且设置了3个组：`Blink`、`LookAt`、`Mouth`。
> 
> <div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning"><div class="admonitionContent_BuS1"><table border="1" style="border-collapse: collapse; border-color: rgb(206, 212, 217);"><thead><tr><th style="border-color: rgb(206, 212, 217);">组</th><th style="border-color: rgb(206, 212, 217);">weight(权重) 生成示例</th><th style="border-color: rgb(206, 212, 217);">包含的 Expression preset(表情预设)</th></tr></thead><tbody><tr><td style="border-color: rgb(206, 212, 217);">Blink</td><td style="border-color: rgb(206, 212, 217);">随机（自动眨眼功能）</td><td style="border-color: rgb(206, 212, 217);">Blink, BlinkLeft, BlinkRight</td></tr><tr><td style="border-color: rgb(206, 212, 217);">LookAt</td><td style="border-color: rgb(206, 212, 217);">由Vrm组件的LookAt功能生成</td><td style="border-color: rgb(206, 212, 217);">LookUp, LookDown, LookLeft, LookRight</td></tr><tr><td style="border-color: rgb(206, 212, 217);">Mouth</td><td style="border-color: rgb(206, 212, 217);">由声音或文本分析生成</td><td style="border-color: rgb(206, 212, 217);">Aa, Ih, Ou, Ee, Oh</td></tr></tbody></table>
> 
> </div></div>

<div class="theme-admonition theme-admonition-warning admonition_xJq3 alert alert--warning" id="bkmrk--3">  
</div>程序化Expression(表情) 的 Weight(权重) 是由系统自动生成的，这种情况下，与现有的 Expression Weight(表情权重) 结合时可能会出现问题。

> Expression(表情) 的组合导致问题的例子
> 
> - 激活`happy` 的同时，触发 `aa` =&gt; 两个表情都会让嘴巴张开，同时触发导致嘴巴张开的过大，显得很奇怪。
> - 激活 `sad` 的同时，触发 `blink` =&gt; 两个表情都会移动眼睑，导致眼睑最终传过脸颊。
> - `blink` 与 `lookRight` 同时触发 =&gt; 眼睛穿过眼睑。

<span class="">为避免组合问题，对自动生成的`Blink`、`LookAt`和`Mouth`权重值进行“加工”。当设置了 Override 后，如果 Expression(表情) 的权重值大于0，该功能就会生效。</span>

<table border="1" id="bkmrk-%E9%80%89%E9%A1%B9-%E4%BD%9C%E7%94%A8-none-procedual" style="width: 100%; border-collapse: collapse; border-color: rgb(206, 212, 217);"><thead><tr><th style="width: 12.3919%; border-color: rgb(206, 212, 217);">选项</th><th style="width: 87.6081%; border-color: rgb(206, 212, 217);">作用</th></tr></thead><tbody><tr><td style="width: 12.3919%; border-color: rgb(206, 212, 217);">None</td><td style="width: 87.6081%; border-color: rgb(206, 212, 217);">procedual.weight = procedual.weight  
什么也不做</td></tr><tr><td style="width: 12.3919%; border-color: rgb(206, 212, 217);">Block(阻断)</td><td style="width: 87.6081%; border-color: rgb(206, 212, 217);">procedual.weight = 0   
将目标的权重设置为0。  
例如，当“happy”表情的 <var>overrideBlink </var>属性被设置为 <var>block </var>时，如果<var>happy.weight</var>的值大于0，那么就会将 <var>blink</var>、<var>blinkLeft</var>、<var>blinkRight </var>的权重 override(覆盖) 为0。  
</td></tr><tr><td style="width: 12.3919%; border-color: rgb(206, 212, 217);">Blend(混合)</td><td style="width: 87.6081%; border-color: rgb(206, 212, 217);">procedual.weight = (1 - expression.weight)  
减少目标权重。  
例如，当为'happy'设置'overrideBlink=blend'时，将'blink'、'blinkLeft'、'blinkRight'与'happy.weight' 进行混合并衰减(下面详述)  
</td></tr></tbody></table>

<p class="callout info">**blend**<span class="">  
例如，如果将 <var>happy</var> 设置为 <var>overrideBlink = blend</var>，那么随着 <var>happy</var> 的值从 0 变化到 1，<var>blink</var> 将线性地衰减。权重在 0 到 1 之间的中间值的行为与 <var>block</var> 不同。</span>  
</p>

<span class="">如果此处的内容不太好懂，可以参考GitHub的文件规范。[参考规范(GitHub)](https://github.com/vrm-c/vrm-specification/blob/master/specification/VRMC_vrm-1.0/expressions.ja.md)</span>

#### **预览**[​](https://vrm.dev/univrm1/vrm1_tutorial/expression/#preview "Preview への直接リンク")

Expression 资产的检查器下方的预览窗口会显示头部的画面。它显示了应用 Expression 设置后的结果。

- 预览 Prefab
- 预览权重：通过移动滑块，您可以预览在\[0-1\]范围内的变化。您可以测试 Advanced(高级选项) 中的 `IsBinary` 复选框的影响。

#### **示例[​](https://vrm.dev/univrm1/vrm1_tutorial/expression/#%E4%BD%9C%E6%A5%AD%E4%BE%8B "作業例 への直接リンク")**

<table border="1" id="bkmrk-asset-morphtarget-aa" style="border-collapse: collapse; border-color: rgb(206, 212, 217);"><thead><tr><th style="border-color: rgb(206, 212, 217);">asset</th><th style="border-color: rgb(206, 212, 217);">morphtarget</th></tr></thead><tbody><tr><td style="border-color: rgb(206, 212, 217);">aa</td><td style="border-color: rgb(206, 212, 217);">head.lip\_a =&gt; 100</td></tr></tbody></table>