用途:在 Godot 4.4+ 场景中管理多个摄像机“机位”。适合需要多个不同摄像行为(游戏跟随、过场构图、Boss 战群像)并按优先级自动切换的场景,取代用单个脚本处理所有情况的做法。节点本身不渲染,每个视口仍需保留一个真实 Camera2D/Camera3D。
主要能力:
- 节点模型:PhantomCameraHost 作为真实摄像机的子节点,读取场景中优先级最高的 PCam 并逐帧驱动机位;PhantomCamera2D/3D 可任意数量存在,描述候选机位。
- 优先级切换:每个 PCam 有 priority,Host 跟随与其 host_layers 位掩码相交的最高优先级 PCam,可用 set_priority()/get_priority() 在运行时改变。
- 跟随模式:GLUED、SIMPLE、GROUP、PATH、FRAMED 以及 3D 专用 THIRD_PERSON;共享选项含 follow_axis_lock、rotate_with_target(2D)、lookahead,以及 is_following()、teleport_position()。
- 看向模式(仅 3D):NONE、MIMIC、SIMPLE、GROUP,可设 look_at_target(s)、look_at_damping 与 up_target。
- 补间过渡:每个 PCam 拥有 tween_resource(PhantomCameraTween),含 duration、transition、ease;tween_on_load 控制在实例化时是否补间入场,tween_resource 为 null 时瞬时切换。
- 事件:BecameActive、BecameInactive、TweenStarted、IsTweening、TweenInterrupted、TweenCompleted。
使用方式:通过 Godot AssetLib 或 GitHub zip 安装 addon 并启用插件,会自动注册 PhantomCameraManager 单例,并新增六种自定义节点。C# 项目使用 addon 内自带的源码包装类(命名空间 PhantomCamera),无需 NuGet 包,包装类通过 AsPhantomCamera2D() 等获取,不是 Node 子类。
限制:插件为 v0.11.0.2,MIT,pre-1.0,次要版本可能破坏 API,建议锁定版本;3D 上同时启用非 NONE 的跟随与看向模式官方标注尚未充分测试,需自行验证;priority_override 仅编辑器预览用,导出构建中失效;FollowMode/LookAtMode 在包装类上为只读,需对底层节点用 Set 设置。
其他细节(如每个跟随模式的具体属性与推荐过渡曲线)本资料未完整给出,暂未提供。