docs(huoshan): 补充 log 释放真假争夺命令说明
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -9,21 +9,37 @@
|
||||
| 命令 | 参数 | 行为 |
|
||||
|---|---|---|
|
||||
| `expression_face_fade_in` | `duration` | 显式淡入火山脸并等待完成。三条 LOG 都在完成节点中调用,不再由粒子系统自动淡入。 |
|
||||
| `expression_actor_flash` | `"text" holdDuration` | 清晰的大字重击;三次连续调用会逐级增强,并由第三次直接衔接中央大字过载。 |
|
||||
| `expression_actor_slot` | `"characterPool" duration interval` | 中央大字持续换字。命令不等待,节奏由紧随其后的同长度 `wait` 控制;结束后停在最后一帧。 |
|
||||
| `expression_actor_flash` | `"text" holdDuration` | 清晰的大字重击;连续调用会逐级增强,但每次结束都退回晃动粒子字。 |
|
||||
| `expression_actor_flash_in` | 与 `expression_actor_flash` 相同 | 阻塞播放相同的大字重击入场,但保持最后一帧、不退场;用于段落结尾定格。 |
|
||||
| `expression_actor_flash_loop_start` | 无 | 非阻塞启动“没问题 → 冇问题 → 帽问题”三拍无限循环,参数固定为 LOG1 当前节奏。 |
|
||||
| `expression_actor_flash_loop_stop` | 无 | 立即停止循环、清掉当前大字并恢复晃动粒子字。 |
|
||||
| `expression_actor_slot` | `"characterPool" duration interval fontSize "truthPool"` | 中央大字持续换字。`truthPool` 非空时其字符也混入换字池,并在主字上以真话暖色(`truthAccentColor`)显示——真假字符交替闪烁即"争夺"。命令不等待,节奏由紧随其后的同长度 `wait` 控制;结束后停在最后一帧。 |
|
||||
| `expression_actor_truth_flash` | `"text" holdDuration fontSize alpha jitter` | 真话闪现(等待):谎话大字之间,暖色完整真话带细微抖动挣扎浮现一拍。不推进谎话冲击等级、不累积记忆损伤;"被掐断"由紧随其后的 `expression_glitch_pulse` 表现。 |
|
||||
| `expression_actor_word_hit` | `"text" holdDuration` | 单字或短词独占屏幕重击,并等待该拍完成。 |
|
||||
| `expression_actor_scroll` | `"phrase1|phrase2" scrollDuration loopDuration holdDuration` | 多列词组在火山脸范围内无缝向下滚动;移动结束后定格 `holdDuration`,再清理并继续 Yarn。 |
|
||||
|
||||
LOG1 结尾示例:
|
||||
LOG1 爆发段示例(对话推动:乱码台词 → 聚拢被打断 → 疯狂闪切 → glitch 翻转成真话):
|
||||
|
||||
```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>>
|
||||
hs: 我感觉<shake a=0.45><color=\#2B2B2B>■■■■■■</color></shake>
|
||||
<<expression_truth_gather 0.55 1.1>>
|
||||
<<wait 1.05>>
|
||||
<<expression_actor_flash "没问题" 0.35 10.5 1.1 1.45 0.008 0.06 0.50 0>>
|
||||
<<expression_truth_scatter 0.9>>
|
||||
hs: ……我感觉自己<shake a=0.5><color=\#2B2B2B>■■■■</color></shake>
|
||||
...
|
||||
hs: 我感觉自己……像个<shake a=0.6><color=\#2B2B2B>■■</color></shake>
|
||||
<<expression_truth_gather 0.92 1.6>>
|
||||
<<wait 1.5>>
|
||||
<<expression_face_error 0.55 0.9>>
|
||||
<<expression_actor_flash "帽问题" 0.5 12.0 1.1 2.20 0.010 0.08 1.00 0>>
|
||||
<<expression_truth_scatter 1.1>>
|
||||
...
|
||||
<<expression_truth_lie_flicker "没问题|冇问题|帽问题" "■■■■■■" 3.2 0.26 12>>
|
||||
<<wait 3.2>>
|
||||
<<expression_lie_morph_truth "没问题" "我就是个笑话" 0.9>>
|
||||
<<expression_memory_cut>>
|
||||
<<expression_truth_snap 0 0.42>>
|
||||
```
|
||||
|
||||
## 谎话形成
|
||||
@@ -60,6 +76,28 @@ LOG1 结尾示例:
|
||||
| `expression_system_message` | `"text" "normal/error" fadeDuration` | 显示屏幕系统提示。样式忽略大小写。 |
|
||||
| `expression_system_message_hide` | `fadeDuration` | 淡出系统提示;命令不等待。 |
|
||||
|
||||
## 记忆显影与轻微失真
|
||||
|
||||
`expression_memory_begin` 非阻塞启动记忆画面:SpriteRenderer 在对白继续执行的同时从 0 平滑淡入到 1,并按 `pushSpeed` 持续推近,基础层不再横移。记忆预设由图片自动选择(`office / sunset / private_office` 分别对应轻 / 中 / 重),Yarn 不再传预设名。Shader 的 `_SimGlitch` 保留轻微 UV 波动和偶发窄行滑移。争夺真话/假话时,`expression_memory_jolt`、`expression_memory_tear`、`expression_actor_flash` 带来的拉扯、切片、冲击和 Glitch 仍叠加在基础层之上。
|
||||
|
||||
| 命令 | 参数 | 行为 |
|
||||
|---|---|---|
|
||||
| `expression_memory_sim` | `target duration` | 把模拟感调到目标值;命令不等待。用于演出中微调,进入记忆时无需调用。 |
|
||||
| `expression_memory_alpha` | `target duration` | 把当前记忆透明度推进到 `target`;命令不等待,适合放在对白之间逐段显影。 |
|
||||
|
||||
## LOG1 爆发段:玩家推动的真假争夺
|
||||
|
||||
爆发段由对话推进驱动:火山每句台词里"想说的部分"是乱码黑块(Text Animator 内联标签,如 `<shake a=0.5><color=\#2B2B2B>■■■■</color></shake>`),玩家点击推进后目标字聚拢、似乎要说出来,又被谎话大字砸断炸散。三次递进(聚合目标 0.55 → 0.72 → 0.92)后进入乱码块与"没问题"的疯狂闪切,最后停在"没问题",由 glitch 翻转成真话。
|
||||
|
||||
| 命令 | 参数 | 行为 |
|
||||
|---|---|---|
|
||||
| `expression_truth_gather` | `target duration` | 真话聚合尝试(不等待):目标字被慢慢拉向最终位置、乱跳收敛,并按字序逐个锁定成真心话字符。`target<1` 时最后几个字永远差一点锁不住(锁字判定用原始进度,阈值 0.45~0.95 阶梯)。 |
|
||||
| `expression_truth_scatter` | `burst` | 聚合被打断(不等待):目标字向外爆散(世界单位距离)并恢复乱跳、解除已锁定字符。谎话 flash 期间粒子隐藏,所以要放在 flash 命令之后,让字符"带着爆散重现"。 |
|
||||
| `expression_face_error` | `duration intensity` | 火山脸错误闪红(不等待):短暂替换为红屏 Sprite,随后恢复,并轻微下沉。`intensity` 为旧脚本兼容参数。 |
|
||||
| `expression_truth_lie_flicker` | `"lie1\|lie2" "censored" duration interval fontSize` | 快速真假闪切(不等待,节奏由同长度 `wait` 控制):乱码块(暖色字+暖底色)与谎话(冷白字+冷底色)交替独占屏幕,越到后面切得越快,**结束定格在第一条谎话**。底色即"电视头背景",在 Inspector 的 `truthBackdropColor` / `lieBackdropColor` 调。 |
|
||||
| `expression_lie_morph_truth` | `"lie" "truth" duration` | 定格的谎话被 glitch 翻转成真话(等待):大字乱跳中长度从谎话渐变到真话、真假底色抢闪,最后落在暖色真话并轻微收缩定住。紧接 `expression_memory_cut` + `expression_truth_snap`,说出口的那一刻其余效果全部消失。 |
|
||||
| `expression_truth_blackout` | `duration alpha` | 顿挫黑一拍(等待):停掉闪切、隐藏大字并保持黑场。当前 LOG1 未使用,保留备用。 |
|
||||
|
||||
停顿时长直接写成 Yarn 的 `wait`,因此每段不再受预设黑盒限制:
|
||||
|
||||
```yarn
|
||||
@@ -115,13 +153,16 @@ LOG1 结尾示例:
|
||||
## 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_memory_begin "office" 2.2 0.012 0 false 1>>
|
||||
<<expression_actor_flash "没问题" 0.6 10.5 1.15 1.60 0.025 0.20 0.50 0>>
|
||||
<<expression_actor_truth_flash "我就是个笑话" 0.35 8.5 0.55 0.02>>
|
||||
<<expression_actor_word_hit "没" 0.16 18 1.60>>
|
||||
<<expression_actor_scroll "没问题|冇问题|帽问题" 1.8 0.85 0.45 5.2>>
|
||||
```
|
||||
|
||||
- `expression_memory_begin` 后三个数依次为淡入时长、持续推进速度、水平移动速度。
|
||||
- `expression_memory_begin` 参数依次为记忆图、淡入时长、持续推进速度、旧水平速度、是否保留 Glitch、目标 Alpha。LOG1 使用 `2.2 / 0.012 / 0 / false / 1`,一次连续淡入,不再按对白阶梯式补透明度。
|
||||
- LOG1 不再使用全屏噪声 glitch:`expression_actor_flash` 的最后一个参数(Glitch 峰值)传 0。
|
||||
- `expression_actor_truth_flash` 后续参数依次为停留、字号、透明度、抖动幅度。
|
||||
- `expression_actor_flash` 后续参数依次为停留、字号、落定缩放、冲击缩放、色散距离、色散透明度、记忆冲击、Glitch 峰值。
|
||||
- `expression_actor_word_hit` 最后两个数是字号和冲击缩放。
|
||||
- `expression_actor_scroll` 最后一个数是字号。滚动固定为单列,并严格裁切在 `ExpressionScreenMaskRect` 内;新字幕按给定词组顺序从上方循环补入。
|
||||
|
||||
Reference in New Issue
Block a user