跳转至

GFCameraRig3D

API Reference / Camera / 类索引

  • 路径:addons/gf/extensions/camera/nodes/gf_camera_rig_3d.gd
  • 模块:Camera
  • 继承:Node3D
  • API:public
  • 类别:运行时句柄 (runtime_handle)
  • 首次版本:3.17.0

通用 3D 相机姿态提供节点。 Rig 只计算期望 Camera3D Transform,不直接控制 Camera3D。 项目可用多个 Rig 表达不同视角,再交给 GFCameraDirector3D 按优先级选择。

成员概览

类型 名称 签名
信号 active_changed signal active_changed(active: bool)
信号 priority_changed signal priority_changed(priority: int)
属性 active var active: bool = true:
属性 priority var priority: int = 0:
属性 target_path var target_path: NodePath = NodePath("")
属性 look_at_target_path var look_at_target_path: NodePath = NodePath("")
属性 offset var offset: Vector3 = Vector3.ZERO
属性 offset_follows_rotation var offset_follows_rotation: bool = false
属性 use_target_rotation var use_target_rotation: bool = true
属性 look_at_enabled var look_at_enabled: bool = false
属性 up_axis var up_axis: Vector3 = Vector3.UP
属性 rotation_degrees_offset var rotation_degrees_offset: Vector3 = Vector3.ZERO
属性 blend var blend: GFCameraBlend = null
属性 group_name var group_name: StringName = &"gf_camera_rig_3d"
属性 metadata var metadata: Dictionary = {}
方法 get_target_node func get_target_node() -> Node3D:
方法 get_look_at_target_node func get_look_at_target_node() -> Node3D:
方法 get_camera_transform func get_camera_transform() -> Transform3D:
方法 is_available func is_available() -> bool:

信号

active_changed

  • API:public
signal active_changed(active: bool)

Rig 激活状态变化后发出。

参数:

名称 说明
active 当前是否激活。

priority_changed

  • API:public
signal priority_changed(priority: int)

Rig 优先级变化后发出。

参数:

名称 说明
priority 当前优先级。

属性

active

  • API:public
var active: bool = true:

是否参与 Director 选择。

priority

  • API:public
var priority: int = 0:

选择优先级。数值越大越优先。

target_path

  • API:public
var target_path: NodePath = NodePath("")

可选跟随目标。为空时使用 Rig 自身的全局姿态。

look_at_target_path

  • API:public
var look_at_target_path: NodePath = NodePath("")

可选朝向目标。look_at_enabled 为 true 时生效。

offset

  • API:public
var offset: Vector3 = Vector3.ZERO

位置偏移。

offset_follows_rotation

  • API:public
var offset_follows_rotation: bool = false

偏移是否跟随目标旋转。

use_target_rotation

  • API:public
var use_target_rotation: bool = true

是否读取目标旋转。

look_at_enabled

  • API:public
var look_at_enabled: bool = false

是否朝向 look_at_target_path。

up_axis

  • API:public
var up_axis: Vector3 = Vector3.UP

look_at 使用的上方向。为零向量时会回退到 Vector3.UP。

rotation_degrees_offset

  • API:public
var rotation_degrees_offset: Vector3 = Vector3.ZERO

额外旋转偏移,单位度。

blend

  • API:public
var blend: GFCameraBlend = null

进入该 Rig 时使用的过渡。为空时使用 Director 默认过渡。

group_name

  • API:public
var group_name: StringName = &"gf_camera_rig_3d"

自动加入的分组名。Director 可按该分组收集候选。

metadata

  • API:public
var metadata: Dictionary = {}

项目自定义元数据。框架不解释该字段。

结构:

  • metadata: Dictionary,项目自定义元数据;框架不会读取或改写其中字段。

方法

get_target_node

  • API:public
func get_target_node() -> Node3D:

获取跟随目标。

返回:目标 Node3D;不存在时返回 null。

get_look_at_target_node

  • API:public
func get_look_at_target_node() -> Node3D:

获取朝向目标。

返回:目标 Node3D;不存在时返回 null。

get_camera_transform

  • API:public
func get_camera_transform() -> Transform3D:

获取当前期望相机 Transform。

返回:期望全局 Transform。

is_available

  • API:public
func is_available() -> bool:

检查 Rig 是否可被选择。

返回:可用时返回 true。