# Live2D

本指南将帮助您为 SillyTavern 设置和自定义 Live2D 扩展。此扩展允许您为角色使用 Live2D 动画模型，为您的虚拟角色添加动态和互动元素。

## 前提条件

在开始之前，请确保满足以下前提条件：

1. **分支选择**：确保您使用的是最新版本的 SillyTavern，以访问最新功能和更新。

2. **扩展安装**：从扩展面板（堆叠块图标）的"Download Extensions & Assets"菜单中安装"Live2D"扩展。

3. **模型文件夹放置**：将您的 Live2D 模型文件夹放入 `/data/<user-handle>/assets/live2d` 目录。一个正确组织的 `live2d` 资源文件夹可能如下所示：

    ![资源文件夹示例](/static/extensions/live2d-folder.png)

    - Live2D 模型文件夹应包含模型所需的所有组件，如表情、动作、纹理、声音和设置文件。特别注意，`***.model.json` 文件必须位于 Live2D 模型文件夹的根目录，以便扩展能够检测到模型。在此示例中，`shizuku` live2d 模型文件夹可能如下所示：

    ![Live2d 模型文件夹示例](/static/extensions/live2d-model.png)

    - 注意：模型也可以放在角色特定的文件夹中，如 `/data/<user-handle>/characters/Shizuku/live2d/`。但是，角色文件夹中的模型只能被该特定角色使用。

## 扩展设置

Live2D 扩展提供了各种设置来自定义您的动画模型的行为。以下是主要设置：

![UI 全局设置](/static/extensions/live2d-global.png)

### 全局设置

1. **启用**：
   - 选中此复选框以激活扩展，允许您的 Live2D 模型在 SillyTavern 中互动。
   - 如果您只想使用普通精灵图，可以禁用此扩展。
   - 当您想在群组聊天中移动普通精灵图时可以禁用此扩展，准备使用 Live2D 模型时再启用。

2. **跟随光标**：
   - 选中此复选框可使 Live2D 模型跟随您的光标移动，前提是模型支持此功能。

3. **自动发送互动**：
   - 选中此复选框可在您点击带有映射消息的区域时自动触发角色互动（详见点击区域部分）。

## 调试设置

这些设置帮助您控制 Live2D 模型的行为和可见性，用于调试目的。

1. **动画前重置模型**：
   - 选中此复选框可在任何动画之前重新加载模型。这会强制动画开始，并允许您根据需要多次点击。某些模型可能需要此功能以确保动画从兼容状态开始。

2. **显示模型框架**：
   - 选中此复选框可显示模型框架，使您更容易识别在哪里点击来拖动模型。如果有点击区域，也会显示出来。将鼠标悬停在点击区域上会显示其名称。

3. **重新加载按钮**：
    - 点击此按钮可重新加载所有 live2d 模型。如果出现故障时使用。

## 角色选择

这些设置允许您管理角色并为其分配 Live2D 模型。

1. **刷新按钮**：
   - 点击刷新按钮以更新当前聊天中的角色列表。

2. **选择角色**：
   - 使用下拉列表选择要分配 Live2D 模型的角色。

3. **移除按钮**：
   - 点击此按钮可删除角色的所有已分配模型。将出现确认提示以确认删除。

## 模型选择

![UI 模型列表](/static/extensions/live2d-list.png)

1. **刷新按钮**：
   - 如果您的 Live2D 模型未出现在列表中，请点击刷新按钮。

2. **选择模型**：
   - 从列表中选择一个模型以分配给所选角色。
   - 模型可以位于资源文件夹或当前角色的文件夹中。
   - 列表显示模型文件夹名称、其来源（资源或角色）以及检测到的模型设置文件名称。
   - 请注意，某些模型文件夹可能包含同一模型的不同版本。您可以尝试不同的模型文件，看看哪个效果最好。
   - 选择"none"将使用普通精灵图（如果有的话）
   - 设置按每个角色和模型保存

## 模型设置

![UI 模型设置](/static/extensions/live2d-settings.png)

1. **模型缩放**：
   - 使用滑块调整模型的大小，使其变大或变小。

2. **模型中心 X 偏移**：
   - 使用滑块更改模型相对于窗口中心的水平位置。

3. **模型中心 Y 偏移**：
   - 使用滑块调整模型相对于窗口中心的垂直位置。

### 备注
- 设置会保存并在不同聊天中保持。
- 您也可以用鼠标拖动模型，这些设置会更新并保存。
- 如果您不小心将模型移出视图，请使用这些 UI 设置将其带回屏幕。另外，选中"显示框架"复选框以清楚地看到可以点击拖动模型的位置。

## 模型说话

![UI 模型说话](/static/extensions/live2d-talk.png)

1. **嘴部开启 Y 参数 ID**：
    - 从列表中选择对应模型嘴部 Y 值的参数 ID。并非所有模型都有，名称可能因模型而异。通常是类似"PARAM_MOUTH_OPEN_Y"或"ParamMouthOpenY"的名称。从列表中选择元素时检查模型；它会尝试运行说话动画。如果嘴巴动了，就说明选对了！

2. **嘴部移动速度**：
    - 调整滑块以更改嘴部动画的移动速度。

3. **每个字符的时间**：
    - 设置每个字符的持续时间。说话动画的持续时间将是此时间乘以消息的字符数。

### 备注
- 这个嘴部动画并非在每个模型和每个动画上都有效。即使您的模型有嘴部移动的动画，也不意味着此扩展可以控制嘴部动画。如果参数列表中没有显示任何内容，您的模型可能使用了太旧版本的 Live2D，无法正确访问参数。

## 模型动画

![UI 模型动画](/static/extensions/live2d-animations.png)

1. **启动动画**：
    - 从列表中选择表情和动作，这些将在与角色开始聊天时播放。如果您需要隐藏角色一段时间以达到完美效果，还可以添加延迟，在此期间模型将不可见。

2. **默认动画**：
    - 从列表中选择表情和动作，这些将在角色发送消息时播放。使用分类表情扩展时使用回退动画。

### 备注
- 当您在列表中选择动画时，动画将播放。
- 使用重播按钮重新播放所选动画。
- 某些模型将表情定义为动作。
- 如果列表中没有显示任何内容，可能是您的模型设置文件中没有定义表情/动作。

## 点击区域映射

![UI 模型映射](/static/extensions/live2d-mapping.png)

1. **默认点击动画**：
    - 从列表中选择表情和动作，这些将在您点击模型时播放。您还可以设置一条将作为用户消息发送的消息。

2. **点击区域**：
    - 如果模型有点击区域，它们将被列出，您可以为每个区域分配动画/消息。

### 备注
- 某些模型没有点击区域，但默认点击对所有模型都有效。
- 如果您点击未映射的点击区域或点击任何点击区域之外，将触发默认点击。
- 点击区域在模型中有定义的优先级；例如，"mouth"在"head"内部。如果行为不正确，可能是由于模型文件的原因。
- 对于某些模型，动画需要完成后才能开始另一个动画。如果您想强制刷新和连续播放动画，请使用调试复选框。

## 分类表情映射

![UI 模型分类](/static/extensions/live2d-classify.png)

1. **要求**：
    - 需要使用分类表情扩展；否则，将回退到默认动画。

2. **映射**：
    - 对于分类扩展检测到的每种情绪，您可以分配表情/动作动画。

### 备注
- 如果在收到新消息时前一个动画尚未完成，新动画可能不会播放。这种行为取决于 Live2D 模型。如果您想强制播放动画，请使用调试复选框。

感谢您阅读本指南！您的 SillyTavern 体验现在已通过动画和互动的 Live2D 模型得到增强。
