docs(huoshan): 补充Log释放Yarn命令说明

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-23 18:54:46 +08:00
co-authored by Cursor
parent 2d3cef3875
commit 075d978b4d
+127
View File
@@ -0,0 +1,127 @@
# 火山 Log 释放 Yarn 演出命令
`Stage6.yarn` 已改为使用原子命令编排。除特别标记为“等待”的命令外,命令只启动效果并立即让 Yarn 继续;并行效果之间的节奏用 `<<wait 秒数>>` 调整。
旧命令 `expression_lie_begin``expression_lie_break``expression_truth_reveal` 仍然保留,供其他节点兼容使用。Stage6 不再依赖它们。
## 火山脸与 LOG1 大字
| 命令 | 参数 | 行为 |
|---|---|---|
| `expression_face_fade_in` | `duration` | 显式淡入火山脸并等待完成。三条 LOG 都在完成节点中调用,不再由粒子系统自动淡入。 |
| `expression_actor_flash` | `"text" holdDuration` | 清晰的大字重击;三次连续调用会逐级增强,并由第三次直接衔接中央大字过载。 |
| `expression_actor_slot` | `"characterPool" duration interval` | 中央大字持续换字。命令不等待,节奏由紧随其后的同长度 `wait` 控制;结束后停在最后一帧。 |
| `expression_actor_word_hit` | `"text" holdDuration` | 单字或短词独占屏幕重击,并等待该拍完成。 |
| `expression_actor_scroll` | `"phrase1|phrase2" scrollDuration loopDuration holdDuration` | 多列词组在火山脸范围内无缝向下滚动;移动结束后定格 `holdDuration`,再清理并继续 Yarn。 |
LOG1 结尾示例:
```yarn
<<expression_actor_slot "没问题冇问题帽问题" 5 0.05>>
<<wait 5>>
<<wait 0.35>>
<<expression_actor_word_hit "没" 0.16>>
<<expression_actor_word_hit "问" 0.13>>
<<expression_actor_word_hit "题" 0.24>>
<<expression_actor_scroll "没问题|冇问题|帽问题" 1.8 0.85 0.45>>
```
## 谎话形成
| 命令 | 参数 | 行为 |
|---|---|---|
| `expression_lie_prepare` | `freezeDuration noiseTarget` | 在指定时间内停止记忆推近/横移,并将记忆噪声降到目标值。进入谎话状态。 |
| `expression_truth_squeeze` | `duration jitter alpha` | 将原始真话字符挤到屏幕边缘;`jitter` 控制边缘抖动幅度,`alpha` 控制字符亮度。 |
| `expression_lie_show` | `"keyword" duration characterSpacing` | 从压扁、拥挤状态机械展开谎话关键词。`characterSpacing` 是最终 TMP 字距。 |
| `expression_lie_shuffle` | `"characterPool" duration interval` | 只在谎话关键词现有字符槽位里高速替换字符,不增加新字符。命令不等待。 |
| `expression_scanline` | `duration stalled` | 扫描线。`stalled=false` 时完整扫过,`true` 时停在屏幕中部并跳闪。 |
示例:
```yarn
<<expression_lie_prepare 0.25 0.005>>
<<expression_truth_squeeze 0.22 0.071 0.28>>
<<expression_lie_show "没问题" 0.22 14>>
<<expression_scanline 0.32 false>>
<<wait 0.25>>
<<expression_lie_shuffle "我就是个笑话" 0.55 0.045>>
<<expression_memory_jolt 0.025 0.22 0.045>>
<<expression_glitch_pulse 0.12 0.05 0.20>>
```
## 谎话开裂与泄漏
| 命令 | 参数 | 行为 |
|---|---|---|
| `expression_lie_crack_begin` | `lieAlpha` | 进入开裂状态并压暗谎话。 |
| `expression_screen_dim` | `alpha riseDuration fallDuration` | 冷色屏幕暗脉冲;命令不等待。 |
| `expression_memory_jolt` | `offset duration tear` | 记忆图水平错位后返回,`tear` 同时设置撕裂强度;命令不等待。 |
| `expression_truth_leak` | `"characterPool" duration` | 兼容旧节点:在谎话字符槽位中进行跳字并等待完成,不再额外点亮真话片段。新节点优先使用 `expression_lie_shuffle`。 |
| `expression_system_message` | `"text" "normal/error" fadeDuration` | 显示屏幕系统提示。样式忽略大小写。 |
| `expression_system_message_hide` | `fadeDuration` | 淡出系统提示;命令不等待。 |
停顿时长直接写成 Yarn 的 `wait`,因此每段不再受预设黑盒限制:
```yarn
<<wait 0.55>>
<<expression_lie_crack_begin 0.48>>
<<expression_scanline 0.22 true>>
<<expression_screen_dim 0.28 0.06 0.12>>
<<expression_memory_jolt 0.08 0.24 0.11>>
<<expression_truth_leak "离开" 0.24>>
```
## 假话到真话的强反转
| 命令 | 参数 | 行为 |
|---|---|---|
| `expression_truth_blackout` | `duration alpha` | 保持一次短促闪黑。此命令等待指定时长,遮罩由紧接着的暖闪/暗脉冲覆盖,或在演出清理时关闭。 |
| `expression_lie_split` | `duration distanceRatio stretchX squashY` | 谎话产生冷暖双影,向左右分裂并横向拉伸、纵向压扁;命令不等待。 |
| `expression_truth_flash` | `alpha riseDuration holdDuration fallDuration` | 暖色真话闪光;命令不等待。 |
| `expression_memory_brightness_pulse` | `amount riseDuration fallDuration` | 只改变记忆图亮度,可用于反转或对白冲击;命令不等待。 |
| `expression_memory_tear` | `peak duration` | 记忆撕裂从峰值回落;命令不等待。 |
| `expression_glitch_pulse` | `peak riseDuration fallDuration` | 背景透明 Glitch 脉冲;命令不等待。 |
| `expression_face_dip` | `duration ratio` | 火山脸向下抽动后回弹;`ratio` 是脸 Bounds 高度比例。 |
| `expression_truth_release` | `alphaDuration` | 原始真话字符从屏幕边缘返回、转暖并恢复亮度,建立 CalmField。 |
| `expression_truth_resolve` | `duration peripheral calmRadius` | 在总时长内稳定全部真话字符;控制记忆外围失真和清晰区半径。此命令等待稳定完成。 |
| `expression_memory_cut` | 无 | 同一帧隐藏两张记忆图,并清空记忆撕裂、噪声、CalmField 和背景 Glitch。 |
| `expression_truth_snap` | `peripheral calmRadius` | 隐藏谎话层,将所有目标字同一帧放到最终位置、改成真话并锁定。 |
典型反转:
```yarn
<<expression_truth_blackout 0.055 0.42>>
<<expression_lie_split 0.35 0.18 1.85 0.42>>
<<expression_truth_flash 0.62 0.045 0.025 0.16>>
<<expression_memory_brightness_pulse 0.16 0.06 0.20>>
<<expression_memory_tear 0.50 0.35>>
<<expression_glitch_pulse 0.50 0.12 0.35>>
<<expression_face_dip 0.35 0.015>>
<<expression_truth_release 0.08>>
<<expression_truth_resolve 0.90 0.30 0.42>>
```
## 调节建议
- 谎话“不自然”的主要旋钮是 `expression_truth_squeeze``jitter``expression_lie_show``characterSpacing`,以及谎话前后的 `wait`
- 反转力度优先调 `expression_truth_blackout``alpha``expression_lie_split``distanceRatio``expression_truth_flash``alpha``expression_glitch_pulse``peak`
- `expression_memory_tear``expression_glitch_pulse` 可以同时触发:前者只作用于记忆图,后者位于记忆图和火山脸之间。
- `expression_truth_resolve` 是等待命令。其 `duration` 决定 Yarn 何时继续到真话对白,并保证最后一个字符在这个总时长内稳定。
- 硬切节奏用 `start_timeline` 同帧启动 Timeline,然后连续调用 `expression_memory_cut``expression_truth_snap`;需要等 Timeline 播完时再调用 `wait_timeline`
- Stage6 三段谎话到真话均使用硬切;Light/Medium/Heavy 的差异只保留在谎话持续期间的跳字、记忆扰动和 Glitch 强度,不再影响真话稳定速度。
- `expression_memory_brightness_pulse 0.18 0.08 0.18` 可直接放在某句对白前,用于精确同步亮度冲击。
- 所有 Alpha、峰值、外围失真和 Calm 半径都会限制在 `01`;时间会保证至少 `0.01s`,避免错误参数卡住 Yarn。
## LOG1 可调参数
```yarn
<<expression_memory_begin "office" "light" 0.55 0.022 0>>
<<expression_actor_flash "没问题" 0.6 10.5 1.15 1.60 0.025 0.20 0.50 0.20>>
<<expression_actor_word_hit "没" 0.16 18 1.60>>
<<expression_actor_scroll "没问题|冇问题|帽问题" 1.8 0.85 0.45 5.2>>
```
- `expression_memory_begin` 后三个数依次为淡入时长、持续推进速度、水平移动速度。
- `expression_actor_flash` 后续参数依次为停留、字号、落定缩放、冲击缩放、色散距离、色散透明度、记忆冲击、Glitch 峰值。
- `expression_actor_word_hit` 最后两个数是字号和冲击缩放。
- `expression_actor_scroll` 最后一个数是字号。滚动固定为单列,并严格裁切在 `ExpressionScreenMaskRect` 内;新字幕按给定词组顺序从上方循环补入。