# Ep.9 — Ani Utils · 动画辅助工具

https://youtu.be/RijqeciqCIA?si=5K39zeb9DrrSJh-9

💡 本教程视频同步发布于我们的 Bilibili 频道。如遇 YouTube 播放不畅，欢迎前往 Bilibili 观看，感谢您的支持与理解！

📺 Bilibili 频道：[https://space.bilibili.com/3706990259865792](https://space.bilibili.com/3706990259865792)

## 概述

**Ani Utils** 选项卡 — **制作动画时**使用的辅助工具集合。  
通常与 Picker **并排**使用。

## 前置条件

- Build 已完成，**Figure Mode 已关闭**
- Build 时已勾选**生成 Rigging Info**（Ep.1）

---

## 功能说明

### Local / World — 以哪个空间为基准移动

| 模式 | 含义 |
|------|------|
| **Local** | 以**父对象（肩膀、手腕等）**为基准旋转和移动 |
| **World** | 以**整个场景（世界空间）**为基准 |

- 要以**躯干为基准**弯曲手臂，使用 Local；要朝**空间中某个方向**旋转，使用 World — **每个部件**的习惯因团队而异。

### Selection · Key · Reset

| 按钮 | 功能 |
|------|------|
| **Selection** | 一次性选择 Left Arm、Spine 等**部位组** |
| **Key** | 对所选对象设置**关键帧** |
| **Reset All** | 将骨架**整体**恢复为**默认姿势** |
| **Reset Selection** | 仅将**选中部分**恢复为默认姿势（Ep.14） |

- 在 Ep.13 中将**自定义控制器**注册到 Rigging Info 后，**Reset All** 也会**一并**包含它们。

### Mirror Pose — 左右姿势复制

1. 在**一侧**制作手臂或腿部姿势。
2. **Copy**（选择方向：Left → Right 等）。
3. **Mirror** 或 **Flip Copy** — 将**镜像姿势**粘贴到**对侧**。
4. 双马尾等**自定义**部件，需在 Ep.13 注册 **Mirror Factor** 后才能**正确**镜像。

### Slide Key · Free Key

- **Slide Key** — 滑动调整关键帧的**时间和数值**（辅助 Max 时间轴）。
- **Free Key** — 仅解锁特定轴进行关键帧（根据团队工作流调整）。

### Scale

- 对所选控制器的**大小（缩放）**设置关键帧 — 与 Squash & Stretch **动画演出**联动。  
  → 若蒙皮撕裂，请检查该骨骼是否为 Ep.7 设置的 **Stretch OFF** 骨骼。

### Range · Play

- **Range** — 指定播放**区间**。
- **Play** — **预览**该区间。

### Pose · Posture 复制

- **Pose** — **保存和粘贴**当前帧的姿势。
- **Posture** — Biped **Posture** 格式（Max Biped 用户熟悉的方式）。

### Transform Snap · Bake

- **Snap** — 将位置/旋转**对齐**到另一个控制器或对象。
- **Bake** — 将约束结果**烘焙为关键帧和变换** — **导出到游戏引擎**时可能需要。

### Prop Snap — 附加武器/道具

- **快速将** **Prop（武器）**控制器对齐到**手部或 Prop 骨骼**的位置。
- 在没有 IK 的情况下设定**装备姿势**时非常实用。

---

## 推荐工作流程（示例）

```
用 Picker 选择 Spine / Arm
  → 在 Local 空间摆姿势
  → Key
  → Mirror Copy 到对侧
  → 用 Play 确认区间
  → 用 Prop Snap 附加武器
```

## 注意事项

- **Reset All** 会将**已注册的自定义控制器**也一并重置 — 请确认是否符合预期。
- **混用 Local 和 World** 可能导致关键帧数值**不自然**。
- 对 Stretch **已开启**的骨骼大量使用 Scale 关键帧 → **蒙皮问题**（Ep.7）。