Skip to content

异步运镜

功能描述

异步运镜(asyncam)用于在不阻塞主线对话流程的情况下,在后台独立运行动画。与同步的 cam 命令不同,asyncam 启动镜头动画后,玩家可以继续点击对话推进剧情,镜头动画在后台独立运行。

使用场景:

  • 背景动画/演出与对话同时进行
  • 玩家可随时点击跳转台词,不受镜头动画影响
  • 剧情需要镜头瞬间到位时,使用 asyncam stop 强制终止

语法结构

text
asyncam move [目标镜头ID] [过渡类型] [过渡时间]
asyncam reset [过渡类型] [过渡时间]
asyncam shake [持续时间]
asyncam stop

异步移动(asyncam move)

功能描述

将镜头异步移动到指定的目标镜头位置,启动过渡动画后立即返回,不阻塞对话流程。

参数详解

参数必需示例说明
目标镜头IDcam1要移动到的镜头资源标识符
过渡类型linear / ease_in_out / none过渡动画类型,不填或填 none 表示无动画
过渡时间1.0 / 2.5过渡动画的持续时间(秒),默认值为 1.0

过渡类型说明

类型说明
不填默认无动画,直接切换
none显式指定无动画
linear线性过渡
ease_in_out缓入缓出过渡

默认值规则

  • 不写过渡类型 → 无动画,直接切换
  • none → 无动画
  • 写其他过渡类型但不写时间 → 默认 1.0

示例

text
asyncam move cam1
asyncam move cam1 none
asyncam move cam1 linear
asyncam move cam1 linear 1.0
asyncam move cam1 ease_in_out 2.5

异步重置(asyncam reset)

功能描述

将镜头异步重置到默认位置(屏幕中心,缩放 1.0),启动过渡动画后立即返回,不阻塞对话流程。

参数详解

参数必需示例说明
过渡类型linear / ease_in_out / none过渡动画类型,不填或填 none 表示无动画
过渡时间1.0 / 2.5过渡动画的持续时间(秒),默认值为 1.0

默认值规则

asyncam move 的默认值规则。

示例

text
asyncam reset
asyncam reset none
asyncam reset linear
asyncam reset linear 1.0
asyncam reset ease_in_out 2.5

异步晃动(asyncam shake)

功能描述

使镜头异步产生随机抖动效果,启动后立即返回,不阻塞对话流程。晃动期间玩家可以正常点击推进对话。

参数详解

参数必需示例说明
持续时间1.0 / 2.5晃动持续时间(秒),默认值为 1.0

效果说明

  • 晃动强度随时间逐渐减弱(从强到弱)
  • 晃动结束后镜头自动恢复到晃动前的位置
  • 晃动期间会在当前镜头位置周围产生随机偏移

示例

text
asyncam shake
asyncam shake 1.0
asyncam shake 2.5

强制停止(asyncam stop)

功能描述

强制终止所有正在运行的异步相机 Tween 动画,相机瞬间直接定格到动画最终目标坐标,放弃剩余过渡动画。

使用场景:

  • 玩家点击跳过演出,需要镜头立即到位
  • 剧情需要镜头瞬间切换,不能再等待当前动画完成

参数

无参数。

效果说明

  • 终止所有进行中的异步相机 Tween(move / reset / shake)
  • 镜头瞬间定格到最终目标位置和缩放
  • 清除晃动导致的偏移,恢复平稳画面
  • 对同步 cam 命令的 Tween 无影响

示例

text
asyncam stop

完整示例

text
# 异步移动镜头到 cam1,对话继续推进
"alice" "看,那边的风景多美!"
asyncam move cam1 linear 3.0

# 镜头在后台移动中,玩家可以继续点击对话
"alice" "镜头正在慢慢移过去……"

# 异步晃动镜头,模拟地震效果
asyncam shake 2.0
"alice" "地震了!小心!"

# 玩家快速跳过,镜头需要瞬间到位
asyncam stop
"alice" "好了,镜头已经到位了。"

# 异步重置镜头
asyncam reset linear 1.0
"alice" "让我们回到最初的位置。"

cam 命令的区别

特性cam(同步)asyncam(异步)
对话流程阻塞,等待动画完成不阻塞,立即继续
后台运行
玩家可点击跳过需等待动画结束可随时点击下一句
强制停止不支持支持 asyncam stop
适用场景需要镜头到位后再继续剧情镜头动画与对话并行

Released under BSD3-Clause License.