Camera2 运行时镜头命令
Camera2 新增运行时镜头命令。服务器可以通过 DOS 给玩家下发临时镜头效果,例如震屏、后坐力、冲刺拉镜、落地冲击、镜头聚焦目标,以及多条镜头命令批量播放。
play / patch / clear 三类镜头命令
play 适合一次性镜头冲击,patch 适合持续修改第三人称构图,clear 用来按频道淡出或清除镜头效果。每条命令都有 channel,重复使用同一 channel 可以覆盖旧效果,避免堆出不可控的镜头状态。
播放一次技能后坐和冲刺镜头camera2<->play@skill.recoil@preset=recoil@duration=220@out=180@motionPitch=-1.2@motionFov=1.4
camera2<->play@skill.dash@preset=dash@duration=360@motionZ=-0.32@motionFov=1.85
camera2<->clear@skill.recoil@out=180用 patch 临时调整构图、偏肩和镜头姿态
patch 不只用来叠加震动,也可以临时调整第三人称镜头构图。配置作者可以按频道设置偏移、距离、偏肩、FOV、俯仰、旋转和 roll,并通过 delay、priority、in/out、curve 控制进入顺序和混合节奏。它适合技能蓄力、NPC 对话、Boss 注视、载具镜头和特殊场景构图。
技能蓄力时切到右肩并拉近镜头camera2<->patch@skill.aim@duration=-1@priority=80@shoulder=right@offsetX=0.35@offsetY=-0.1@distance=3.2@fov=4@in=180@out=220@curve=smoothstep
camera2<->play@skill.fire@delay=160@duration=420@preset=recoil@motionPitch=-1.4@motionFov=1.2
camera2<->clear@skill.aim@out=240按频道管理镜头状态
Camera2 命令通过 channel 管理生命周期。默认情况下,同一个 channel 的新命令会替换旧命令,适合持续刷新技能镜头;需要多个镜头效果同时保留时,可以给它们不同 channel,或者显式使用 merge=additive。clear 支持精确频道、前缀通配和全量清理,方便在技能结束、副本退出或玩家死亡时恢复镜头。
按技能前缀统一清理镜头效果camera2<->patch@boss.phase1.focus@duration=-1@subject=entity@entityId=128@focusYaw=0.35
camera2<->play@boss.phase1.hit@preset=shake@duration=650
# 只淡出 boss.phase1 这一组镜头
camera2<->clear@boss.phase1.*@out=260
# 紧急恢复:清理所有 Camera2 运行时镜头命令
camera2<->clear@*@out=180预设快捷命令
如果只是想快速给玩家播放常见镜头反馈,可以直接使用 preset 快捷命令,不需要手写完整的 play / patch 参数。它适合技能测试、服主配置效果、脚本里快速触发后坐力、震屏、冲刺拉镜、落地冲击、聚焦和偏肩演示。
直接播放常用 Camera2 预设camera2<->preset@recoil
camera2<->preset@dash
camera2<->preset@land
camera2<->preset@focus
camera2<->preset@focusOff
camera2<->preset@clear预设组合、偏肩演示和分组清理
preset 也可以用来快速演示一组镜头效果。preset@all 会按顺序播放后坐力、冲刺、落地和震屏,适合确认客户端镜头系统是否生效;preset@shoulder 会把镜头短暂切到右肩再回中,适合测试偏肩构图。需要恢复时,可以只清聚焦,也可以清理 preset、test、effect 和 server.skill 这些常用镜头频道。
快速演示并恢复镜头状态camera2<->preset@all
camera2<->preset@shoulder
# 只关闭持续聚焦
camera2<->preset@focusOff
# 清理常用测试和技能镜头频道
camera2<->preset@clear目标聚焦与批量镜头
subject 可以让镜头柔和看向实体或世界坐标,不强制旋转玩家本体。json / batch 可以一次下发多条命令,适合技能、过场动画、Boss 机制中同时叠加构图、震动和聚焦。
聚焦实体并叠加镜头冲击camera2<->patch@boss.focus@duration=-1@profile=focus@subject=entity@entityId=128@focusYaw=0.35@focusPitch=0.22@maxYaw=9@maxPitch=5
camera2<->play@boss.hit@preset=shake@duration=650@amp=1.0@freq=15
camera2<->clear@boss.focus@out=220JSON / batch 一次下发多条镜头命令
Camera2 命令可以直接接收 JSON。配置作者可以用一个对象表示单条命令,也可以用数组或 commands 包装对象一次下发多条命令。这样 Boss 技能、剧情演出和 GUI 按钮不需要连续写很多行 DOS,也更容易把震屏、构图、聚焦和收尾清理放在同一个配置块里维护。
把聚焦、震屏和清理写成一个批量命令camera2<->batch@{
"commands": [
{
"action": "patch",
"channel": "boss.focus",
"durationMs": -1,
"priority": 60,
"subject": {
"type": "entity",
"entityId": 128,
"yawStrength": 0.35,
"pitchStrength": 0.22,
"maxYaw": 9,
"maxPitch": 5
}
},
{
"action": "play",
"channel": "boss.hit",
"delayMs": 180,
"durationMs": 650,
"motion": {
"preset": "shake",
"amplitude": 1.0,
"frequency": 15
}
},
{
"action": "clear",
"channel": "boss.focus",
"delayMs": 1200,
"blend": { "outMs": 220 }
}
]
}