# 使用约束处理穿高跟鞋时与地面穿模的问题

<p class="callout info">本文面向初、中级创作者，假定您已经对变换，约束组件，动画都有一定了解，理解其基本的运行逻辑</p>

<p class="callout info">自VRChat SDK 3.7.0 更新后，所有约束组件在上传时会自动更改为官方提供的VRC Constraint组件，您也可以使用VRC Parent Constraint组件来替换文中的Parent Constraint，不论使用哪种组件，都不会对文中所提的方法产生不必要的影响</p>

当为模型穿上高跟鞋时，因为高跟鞋的高度原因，导致鞋子和地面穿模，所以和各位分享一个小技巧~

[![image.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/scaled-1680-/otMuSxk7MdS0eQOP-image.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/otMuSxk7MdS0eQOP-image.png)

如图所示，首先我们有一双默认状态下穿模的高跟鞋  
如果你的模型只有一套衣服，或者全都是高跟鞋，那么只需要直接将模型的根对象Transform变换的y轴高度拉高到合适的数值即可，也就是直接拉高模型。  
如果你的模型同时有高跟鞋和平底鞋，需要在切换衣服时，自动调整模型的高度以适应不同的鞋底高度，那可以按照以下方法处理

#### 1. 添加骨骼约束

在你的模型根骨骼Armature上添加一个父约束组件，然后再在根对象内添加新建一个游戏对象，这个对象是父约束的对象，将作为模型的高度锚点

[![image.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/scaled-1680-/Vnl3Pb6HYYEEreG8-image.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/Vnl3Pb6HYYEEreG8-image.png)

[![image.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/scaled-1680-/RJfIGIuTB8n69VUF-image.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/RJfIGIuTB8n69VUF-image.png)

这样做的目的是为了绕过当模型开始运行起来后，模型的骨骼变换就无法被直接修改了的限制，只能通过父约束组件来间接地调整，这时，我们对模型锚点的位置改变，都将直接影响到模型本身

#### 2. 测量数据

修改衣服的根骨骼y轴坐标（请注意是衣服的根骨骼，因为如果使用MA绑定的衣服，直接拖动模型根骨骼可能衣服不会跟上），直接高跟鞋底刚好与地面平行（如果你的场景中没有地面可以临时添加一个，添加一个平面对象在地面放平即可），然后将这个数值记录下来，在我这里这个数值为0.0112

[![image.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/scaled-1680-/0EhLCnYnrmBm3Oe5-image.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/0EhLCnYnrmBm3Oe5-image.png)

#### 3. 制作动画

切换到该高跟鞋的动画片段中，为它录制新的节点，进入录制模式，直接修改模型锚点的y轴坐标，然后将其中y轴的数值修改为刚刚测量得到的数值

[![image.png](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/scaled-1680-/fTSR64ZQb21wpavG-image.png)](https://docs.vrcd.org.cn/uploads/images/gallery/2024-04/fTSR64ZQb21wpavG-image.png)

到这里就完成了，如果还有其他的衣服有需求，那么也对其他的衣服录制一样的动画即可

有什么建议或者不懂的话，可以来社区找我~