跳转至

脚本标签(Script Tab)

脚本标签VoiceScriptPlayer 的核心逻辑系统
用于通过 条件(Condition)与动作(Action) 控制项目中的所有事件、交互、动画、UI 与声音等。


1. 基本界面

script-main

组件 说明
① 拖拽添加脚本 创建新的实例脚本并添加到项目中。
② 全局脚本 管理始终加载的全局脚本。
③ 导入 载入现有的脚本模板。
④ 新建 创建新的脚本模板。
⑤ 编辑 ✏️ 在编辑器中打开选定的脚本。
⑥ 删除 🗑️ 从列表中移除所选脚本。
⑦ 打开文件夹 📂 直接打开 Asset/Trigger/ 文件夹。

💡 提示:
全局脚本默认始终存在,但可以通过“仅在被调用时执行”选项将其作为模板使用。


2. 脚本编辑器

script-editor

脚本编辑器允许你自由组合 条件块(Condition)动作块(Action)
以可视化方式构建复杂逻辑。


🧭 顶部面板

项目 说明
名称 指定脚本的唯一名称。
描述 记录脚本的用途或功能说明。
单次执行 仅执行一次,不会再次触发。
暂停时执行 即使在暂停状态下也可执行(用于菜单、设置界面等)。
仅在被调用时执行 仅在被外部触发或调用时执行。

🧩 局部变量

功能 说明
添加(+) 在脚本中创建局部变量。
编辑(✏️) 修改变量名称或初始值。
删除(🗑️) 删除选中的变量。

💡 注意:
局部变量仅在当前脚本中有效,不会与全局变量冲突。


3. 条件块(Condition)

条件块决定脚本 是否执行
你可以组合多个条件来构建 精确的触发逻辑


⚙️ 基本概念

  • 当所有条件为 真(True) 时,执行相连的 动作块(Action)
  • 多个条件时,默认以 AND(并且) 逻辑计算。
  • 使用 分支块(Branch) 可根据条件结果设置不同执行路径。
  • 详情见 条件列表

🧩 示例

场景 条件示例
键盘输入 “当按下 [Space] 键时”
语音识别 “当识别到语音 ‘开始’ 时”
变量判断 “当变量 [Score] ≥ 100 时”
字幕触发 “当字幕包含 ‘Hello’ 时”

💡 提示:
条件可与 UI、声音、Live2D 等资源联动,例如:
“当前轨道为 1 且字幕包含指定文本” 等复合条件。


4. 动作块(Action)

动作块定义 条件满足后执行的操作
例如播放声音、修改变量、切换轨道、打开 UI 等。


⚙️ 基本概念

  • 动作按 自上而下 顺序执行。
  • 可插入 等待(Wait) 动作以控制时间。
  • 结合循环可实现 持续逻辑
  • 详情见 动作列表

🧩 示例

场景 动作示例
播放声音 “播放声音 [Voice01]。”
切换轨道 “切换到轨道 [NextScene]。”
修改变量 “变量 [Volume] 增加 10。”
打开 UI “打开 UI [OptionMenu],标识符为 [Main]。”
控制 Live2D “在 [Scene01] 中播放动画 [smile]。”

💡 说明:
动作也可基于时间执行,例如:
“3 秒内增加变量”、“2 秒内渐变动画”等。


5. 分支块(Branch)

分支块用于区分 条件为真条件为假 时的执行逻辑。

结构 说明
条件成立 当条件为 True 时执行。
条件不成立 当条件为 False 时执行。

💡 可嵌套多个分支以构建复杂事件逻辑。


6. 循环块(Loop)

循环块在条件为真时持续执行指定动作。

项目 说明
循环条件 根据变量或状态判断是否继续循环。

💡 常用于“按键持续时重复动作”或“等待字幕出现”等场景。


7. 条件与动作的组合

script-logic

脚本由多个条件与动作组合而成。
可拖拽调整顺序,并通过顶部图标实现复制、剪切或移动。

图标 功能
新增条件或动作块
🔀 添加分支(If / Else)
🔁 添加循环
✏️ 编辑选定块
✂️ 剪切
📋 复制 / 粘贴
🗑️ 删除
⬆️ / ⬇️ 调整顺序

⚙️ 提示:
脚本结构可随时修改,且支持实时调试。


8. 全局脚本与实例脚本

类型 说明
全局脚本 始终加载并在项目范围内生效。
实例脚本 绑定到特定轨道、UI 或事件上执行。

💡 示例:
- 全局脚本 → HUD 更新、计时事件
- 实例脚本 → 特定分支场景逻辑


9. 脚本执行模式

选项 说明
单次执行 条件满足后仅执行一次。
仅在被调用时执行 需由其他脚本或触发器调用。
暂停时执行 暂停状态下也可运行(如菜单)。
无限循环 条件为真时持续执行。

10. 条件列表

脚本执行的触发条件定义如下。


🖱️ 键盘输入

🔹 KeyDown

当按下 [Key] 时触发。
- Key:键名(如 ASpaceEnter

🔹 KeyUp

[Key] 释放时触发。

🔹 KeyPressed

检测到按键按下(Down → Up)时触发。


🗣️ 语音 / 字幕

🔹 SpeechRecognition

当识别到语音 [Text] 且音量 ≥ [Volume]、精度 ≥ [Precision] 时触发。
- Volume:最小音量 (0~1)
- Precision:识别精度 (0~1)

🔹 SubtitleRecognition

当字幕包含 [Text] 时触发。


📊 状态 / 变量

🔹 VariableComparison

当变量 [Variable][Value] 满足 [Comparison] 条件时。
- Comparison><==!=

🔹 CurrentTrack

当前轨道为 [Track] 时触发。

🔹 CumAction

当发生特定射精动作 [CumType] 时触发。

🔹 RestStatus

休息状态为 [Status] 时触发。

🔹 EventStatus

当事件 [EventType] 状态为 [EventStatus] 时触发。


11. 动作列表

定义条件满足时执行的操作。


⏱️ 时间控制

🔹 WaitTime

等待 [Seconds] 秒。


🔊 声音控制

🔹 PlaySound

播放声音 [Sound],左右声道音量分别为 [LeftVolume][RightVolume]


📦 变量 / 轨道控制

🔹 SetVariable

修改变量 [Variable] 的值,方式为 [Modify],持续 [Seconds] 秒。

🔹 MoveTrack

切换到轨道 [Track]

🔹 SeekTime

将轨道时间跳转到 [Seconds] 秒。


💾 数据管理

🔹 Save / Load

保存或加载到 Slot:[Slot]

🔹 Close

关闭程序。


🧩 UI 控制

🔹 OpenUI / CloseUI

打开或关闭 UI [UI],标识符为 [Text]


🔁 脚本控制

🔹 TriggerExec / ReturnScript

执行或返回脚本 [Trigger]


💦 动作 / 事件控制

🔹 CumActionExec

强制触发射精动作 [CumType]

🔹 RestTime

休息 [Seconds] 秒。

🔹 StrokeExec

执行 [Stroke] 持续 [Seconds] 秒。


🎬 Live2D / Spine 控制

🔹 SpinePlayAnimation

在 Live2D [Live2D] 的 Spine 模型 [Model] 上播放动画 [Animation]

🔹 SpineSetSkin

设置 Spine 模型 [Model] 的皮肤为 [Skin]


⚙️ 说明:
所有条件与动作均以可视化积木形式呈现。


12. 文件结构

项目 路径
全局脚本 Asset/Trigger/

⚠️ 注意:
脚本必须保存在项目内部,不能引用外部文件。


14. 相关文档