# LookAt（视线）

# LookAt

在VRM中，可以通过计算头部与目标(注视点)之间的相对旋转(偏航角Yaw,俯仰角Pitch)，并将这些旋转应用到眼睛上。

- 通过 VRMLookAtHead + VRMLookAtBoneApplyer 或 VRMLookAtBlendShapeApplyer 两个组件来设置。

### **LookAt 的类型[​](https://vrm.dev/univrm/lookat/univrm_lookat/#lookat%E3%81%AE%E7%A8%AE%E9%A1%9E "LookAtの種類 への直接リンク")**

有三种方法可以将注视点的 Yaw 和 Pitch角度应用于模型上。请根据您模型的情况选择其中一种。

#### **Bone[​](https://vrm.dev/univrm/lookat/univrm_lookat/#bone "Bone への直接リンク")**

[靠眼睛骨骼旋转控制眼睛的运动。](https://docs.vrcd.org.cn/books/vrm-univrm/page/lookatbone)

#### **BlendShape[​](https://vrm.dev/univrm/lookat/univrm_lookat/#blendshape "BlendShape への直接リンク")**

[靠BlenderShape的顶点移动控制眼睛的运动。](https://docs.vrcd.org.cn/books/vrm-univrm/page/lookatblendshape)

#### **TextureUV[​](https://vrm.dev/univrm/lookat/univrm_lookat/#textureuv "TextureUV への直接リンク")**

[靠眼睛纹理的 `UV offset(UV 偏移)` 控制眼睛的运动。](https://docs.vrcd.org.cn/books/vrm-univrm/page/lookatuv)

### **VRMLookAtHead[​](https://vrm.dev/univrm/lookat/univrm_lookat/#vrmlookathead "VRMLookAtHead への直接リンク")**

<figure id="bkmrk-%E8%AF%A5%E7%BB%84%E4%BB%B6%E8%AE%A1%E7%AE%97%E4%BB%8E%E6%A8%A1%E5%9E%8B%E5%A4%B4%E9%83%A8%E7%9C%8B%E5%90%91%E7%9B%AE%E6%A0%87%EF%BC%88targe">[![VRMLookAtHead.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/HORWNuJREVRKd9JB-vrmlookathead.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/HORWNuJREVRKd9JB-vrmlookathead.png)  
<figcaption></figcaption>该组件计算从模型头部看向目标（target）的方向。  
</figure>#### **Target[​](https://vrm.dev/univrm/lookat/univrm_lookat/#target "Target への直接リンク")**

<p class="callout info">这是 Application(应用程序) 的设置，而不是针对 VRM 模型设置的。 </p>

这是模型眼睛要追踪的目标。如果设置为摄像头，模型将始终注视着摄像头。

### **视线计算的基准位置** 

在 VRMFirstPerson 的 FirstPersonOffset 中，您可以设置相对于 head 骨骼的基准位置。

[![firstperson.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/kvMPf7UjahzHuog0-firstperson.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/kvMPf7UjahzHuog0-firstperson.png)

<figure id="bkmrk--1">  
</figure>

# LookAt(Bone)

LookAlt Bone 需要 VRMLookAltHead 和 VRMLookAtBoneApplyer 两个组件组合。

### **骨骼控制的视线：VRMLookAtBoneApplyer**

[![VRMLookAtBoneApplyer.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/jym0ajbp5V89hfrf-vrmlookatboneapplyer.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/jym0ajbp5V89hfrf-vrmlookatboneapplyer.png)  
将 VRMLookAtHead 计算出的视线方向参数应用到 EyeBone上。

#### **DegreeMapping（角度映射）**

如果将相对于目标物的 yaw, pitch 角度直接赋值给眼睛骨骼的旋转角度，眼睛可能会动得过于夸张。

- yaw, pitch 最大角度 =&gt; Curve X Range Degree
- yaw, pitch 达到上限时 eye bone 的旋转角度 =&gt; Curve Y Range Degree

请设置以下4个方向的角度映射：

- VerticalDown
- VerticalUp
- HorizontalOuter
- HorizontalInner

注意横向设置的不是左右而是内外。

# LookAt(Blendshape)

LookAt Blendshape 需要 VRMLookAtHead 和 VRMLookAtBlendShapeApplyer 这两个组件。在默认设置中，请删除 `VRMLookAtBoneApplyer` 并在VRM模型的检查器窗口中添加 `VRMLookAtBlendShapeApplyer`。

请在 `Inspector(检查器)` 面板中点击 `Add Component -> VRMLookAtBlendShapeApplyer`。

[![dd_vrm_lookat_blendshape.jpg](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/bT48zOobaJXCxirC-dd-vrm-lookat-blendshape.jpg)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/bT48zOobaJXCxirC-dd-vrm-lookat-blendshape.jpg)

### **形变控制视线：VRMLookAtBlendShapeApplyer** 

[![blendshape_applye.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/RbH4XqGBHVUxxBBB-blendshape-applye.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/RbH4XqGBHVUxxBBB-blendshape-applye.png)

  
这是用于使用 BlendShape 控制视线的模型的组件。请预先设置好 `LookUp`、`LookDown`、`LookLeft` 和 `LookRight` 这四种 BlendShape。

#### **DegreeMapping（角度映射）**

以下的设置可以让您调整目标物体的相对角度 yaw 和 pitch 的应用程度。

- yaw 和 pitch 角度的上限值 =&gt; Curve X Range Degree
- yaw 和 pitch 达到上限时的 blendShape 应用比例(0～1)。请将其设置为1 =&gt; Curve Y Range Degree

请设置以下三个方向的角度映射：

- VerticalDown
- VerticalUp
- Horizontal

# LookAt(UV)

<div id="bkmrk-lookat-uv-%E9%9C%80%E8%A6%81-vrmlook">LookAt UV 需要 VRMLookAtHead 和 VRMLookAtBlendShapeApplyer 这两个组件。在默认设置中，请删除 `VRMLookAtBoneApplyer` 并在 VRM 模型的检查器窗口中添加 `VRMLookAtBlendShapeApplyer`。</div><div id="bkmrk-">  
</div><div id="bkmrk-%E8%AF%B7%E5%9C%A8-inspector%28%E6%A3%80%E6%9F%A5%E5%99%A8%29-%E9%9D%A2%E6%9D%BF">请在 `Inspector(检查器)` 面板中点击 `Add Component -> VRMLookAtBlendShapeApplyer`。</div><div id="bkmrk--1">  
</div><div id="bkmrk--2">[![dd_vrm_lookat_blendshape.jpg](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/bT48zOobaJXCxirC-dd-vrm-lookat-blendshape.jpg)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/bT48zOobaJXCxirC-dd-vrm-lookat-blendshape.jpg)</div><div id="bkmrk--3">  
</div><div id="bkmrk--4">  
</div>### **用纹理的UV来控制视线**

[![blendshape_applye.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/RbH4XqGBHVUxxBBB-blendshape-applye.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/RbH4XqGBHVUxxBBB-blendshape-applye.png)

<div id="bkmrk-%E8%BF%99%E7%A7%8D%E6%96%B9%E5%BC%8F%E9%80%9A%E8%BF%87%E4%B8%8A%E4%B8%8B%E5%B7%A6%E5%8F%B3%E7%A7%BB%E5%8A%A8%E7%BA%B9%E7%90%86%28textu">这种方式通过上下左右移动 Texture(纹理)来移动模型眼睛。Unity Chan(Unity酱) 就属于这种类型。</div><p class="callout info">译者补充：Unity酱是一个由Unity官方开发的虚拟角色模型，用于展示Unity引擎的功能和潜力。</p>

<div id="bkmrk--6">  
</div><div id="bkmrk--7">  
</div>#### **找到眼睛材质**

<div id="bkmrk-%E5%9C%A8%E9%A1%B9%E7%9B%AE%E7%AA%97%E5%8F%A3%E4%B8%AD%E6%90%9C%E7%B4%A2%E7%9C%BC%E7%9D%9B%E6%9D%90%E8%B4%A8%EF%BC%8C%E6%B3%A8%E6%84%8F%E6%98%BE%E7%A4%BA%E5%9C%A8%E6%A3%80%E6%9F%A5">在项目窗口中搜索眼睛材质，注意显示在检查器窗口中的 `Tiling(平铺) 和 Offset(偏移)` 设置。</div><div id="bkmrk--8">  
</div><div id="bkmrk--9">[![material_tiling_offset.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/H3GLlxSXE3FSItUO-material-tiling-offset.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/H3GLlxSXE3FSItUO-material-tiling-offset.png)</div><div id="bkmrk--10">  
</div><div id="bkmrk-%E8%BF%99%E4%BA%9B%E5%80%BC%E5%BA%94%E8%AF%A5%E6%98%AF-1%2C1%2C0%2C0%EF%BC%88%E5%A6%82%E6%9E%9C%E5%80%BC%E4%B8%8D%E5%90%8C">这些值应该是 `1,1,0,0`（如果值不同，说明情况特殊，可以参考以下内容）</div><div id="bkmrk--11">  
</div><div id="bkmrk-%E7%8E%B0%E5%9C%A8%EF%BC%8C%E6%82%A8%E5%8F%AF%E4%BB%A5%E5%B0%9D%E8%AF%95%E6%9B%B4%E6%94%B9-offset-x-">现在，您可以尝试更改 `Offset` X 和 Y 的值。X 值控制眼睛的左右移动，Y 值控制眼睛的上下移动。找到所需的设置以后，将 X 和 Y 值恢复为0，并继续进行下一步。</div><div id="bkmrk--12">  
</div><div id="bkmrk--13">  
</div><div id="bkmrk--14">  
</div>#### **BlenderShap 的准备**

<div id="bkmrk-%E5%9C%A8%E4%B8%8B%E9%9D%A2%E7%9A%84%E7%A4%BA%E4%BE%8B%E4%B8%AD%EF%BC%8C%E6%88%91%E4%BB%AC%E5%B0%86%E5%9F%BA%E4%BA%8E%E6%9D%90%E8%B4%A8-eye_">在下面的示例中，我们将基于材质 eye_L1 的 UV 值来设置眼睛的运动（请参考上面的图像）。</div><div id="bkmrk--15">  
</div><div id="bkmrk-lookup%2C-lookdown%2C-lo">LookUp, LookDown, LookLeft, LookRight 用于操作目标材质的颜色材质的UV坐标。在这个例子中，我们使用的是 unlit/transparent cutout 材质。</div><div id="bkmrk--16">  
</div><div id="bkmrk--17">  
</div><div id="bkmrk--18">  
</div>##### **以 LookLeft 为例**

<div id="bkmrk-%E8%AF%B7%E5%9C%A8-project%E7%AA%97%E5%8F%A3-%E4%B8%AD%EF%BC%8C%E8%BF%9B%E5%85%A5%E3%80%90%E6%96%87%E4%BB%B6">请在 Project窗口 中，进入【文件名】.BlenderShapes 文件夹选择 `LookLeft` 资源。</div><div id="bkmrk--19">[![lookleft.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/3Kvqc3nicK5erLSR-lookleft.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/3Kvqc3nicK5erLSR-lookleft.png)</div><div id="bkmrk--20"></div><div id="bkmrk-%E5%9C%A8%E6%A3%80%E6%9F%A5%E5%99%A8%E4%B8%AD%E5%88%87%E6%8D%A2%E5%88%B0%C2%A0material-li">在检查器中切换到 `Material List` 标签</div><div id="bkmrk-%E7%82%B9%E5%87%BB-serialized-proper">点击 Serialized Property 一栏右下角的 “`+`”</div><div id="bkmrk-%E9%80%89%E6%8B%A9eye_l1%28%E7%9C%BC%E7%9D%9B%E7%9A%84%E8%B4%B4%E5%9B%BE%29---_m">选择`eye_L1`(眼睛的贴图) - `_MainTex_ST`(控制平铺和偏移的效果)</div><div id="bkmrk-%E8%AE%BE%E7%BD%AEtliling-%3D-1%2C-1%2C-of">设置`Tliling = 1, 1`, `Offset = 0, 0 `</div><p class="callout info">译者补充：  
\_MainTex\_ST\_S只控制水平效果，Y轴设置的数值不会产生影响  
\_MainTex\_ST\_T只控制垂直效果，X轴设置的数值不会产生影响</p>

<div id="bkmrk--21">[![tiling_offset.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/eSArNTGQvpflmtJa-tiling-offset.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/eSArNTGQvpflmtJa-tiling-offset.png)</div><div id="bkmrk--22">  
</div><div id="bkmrk-%E8%B0%83%E6%95%B4-lookleft-%E8%AE%BE%E7%BD%AE%E4%B8%AD%E7%9A%84%E5%81%8F%E7%A7%BB%E5%80%BC%28">- 调整 LookLeft 设置中的 Offset(偏移值)
- 对 `eye_R1(另一只眼睛的贴图)` 也进行相应的设置

</div>[![look_left.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/scaled-1680-/11J3XOEaODphvQjF-look-left.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-09/11J3XOEaODphvQjF-look-left.png)

<div id="bkmrk-%C2%A9-utj%2Fucl">[© UTJ/UCL](http://unity-chan.com/)</div><div id="bkmrk--24"></div>##### **DegreeMapping（角度映射）**

以下的设置可以让您调整目标物体的相对角度 yaw 和 pitch 的应用程度。

<div id="bkmrk-yaw-%E5%92%8C-pitch-%E8%A7%92%E5%BA%A6%E7%9A%84%E4%B8%8A%E9%99%90%E5%80%BC-%3D">- yaw 和 pitch 角度的上限值 =&gt; Curve X Range Degree
- yaw 和 pitch 达到上限时的 blendShape 应用比例(0～1)。请将其设置为1 =&gt; Curve Y Range Degree

</div>请设置以下三个方向的角度映射：

<div id="bkmrk-verticaldown-vertica">- VerticalDown
- VerticalUp
- Horizontal

</div>