feat(kite): 优化风筝镜头追赶与双捕捉表现

This commit is contained in:
2026-07-15 19:39:12 +08:00
parent 92087b81ef
commit fa66dbc7c9
3 changed files with 303 additions and 46 deletions
+9 -2
View File
@@ -40,13 +40,20 @@ Kite MaskSpriteMask,以底图为形状,风筝层被裁在天空范围内
### 参数含义
- `height` 对应 Yarn 变量 `$h`,范围会被 clamp 到 `[0, 13]`。缩放曲线是 `0.84^height`,且不低于 12%(避免缩到看不见)。
- `height` 对应 Yarn 变量 `$h`,范围会被 clamp 到 `[0, 13]`。缩放曲线是 `0.76^height`,且不低于 12%(避免缩到看不见)。镜头只补回约 55% 的尺寸变化,因此风筝仍会随高度增加而逐渐变小。
- `wind` 对应 Yarn 变量 `$wind``1` 强风 / `0` 无风 / `-1` 风弱。
- `turbulence`(乱度)范围 `0~1`,**默认表示平稳(0),不是“保持不变”**:
- 省略或传负数 → 平稳,风筝沿 CatmullRom 曲线大而缓地漫游(有风时顶风侧倾巡游,无风时自由漂,风弱时缓缓下坠),绝不抖动。
- 传正数 → 阵风:静一下 → 猛地被拽走一截(位移+旋转,X/Y 不同步走出弧线)→ 慢慢荡回 → 再来一阵。**每一阵的方向、力度、间隔都是随机的,节奏不重复**;数值越大拉扯越猛、间隔越短,乱度 ≥0.7 时还会概率性甩过头再弹回,读出“失控”。
- 传正数 → 阵风:静一下 → 猛地被拽走一截(位移+旋转,X/Y 不同步走出弧线)→ 镜头追回 → 再来一阵。数值越大拉扯越猛、间隔越短;进入超级大风后路线会左右换边,并在每 3~5 次普通出镜后穿插一次“双捕捉”。
- **乱度是粘滞的**:由 `kite_wind` 显式设定后会保留,后续 `kite_state` 只切高度和风向,仍沿用当前乱度,直到下一次 `kite_wind` 改变它。`kite_show` 会把乱度重置为 0。
### 镜头构图与双捕捉
- 镜头横向完整追赶风筝,纵向只做部分跟随:平静阶段约 42%,乱风阶段约 78%。连续放线时,风筝会在画面里逐渐升高、变小,不会每轮回到相同的特写景别。
- 超级大风的普通出镜保持左右和纵向变化;每经过 3~5 次普通出镜,下一次改为“双捕捉”:第一次出镜后等镜头快要框住,再沿同一方向突然加速;第二次追回时镜头轻微跟过头并一次性收住。
- 双捕捉不会连续触发。乱度降低、隐藏风筝或重新显示风筝时,当前双捕捉与镜头过冲都会取消并重新计数。
- 虚焦和“镜头已捕捉”都按目标构图判断;风筝故意处于画面上方或保持较小尺寸时,不会因此持续虚焦。
### `kite_accent` 支持的 profile
| profile | 效果 | 典型使用场景 |