Files
loneseDocument/Content/Blueprints/BP_CameraPawn.md
meishibiezb a8bdf281ff update
2026-06-05 03:01:15 +08:00

3.7 KiB
Raw Permalink Blame History

BP_CameraPawn

基本信息

  • 类型: Blueprint (Pawn)
  • 父类: ACameraPawn
  • 源文件: /Game/Blueprints/BP_CameraPawn.BP_CameraPawn
  • 模块: Content/Blueprints

功能概述

BP_CameraPawn 是分离式第三人称摄像机的蓝图实现,继承 C++ 的 ACameraPawn。在蓝图层面配置摄像机参数初始旋转、臂长范围、速度等并提供编辑器内可视化调整能力。

设计用意

ACameraPawn 在 C++ 层提供了完整的 SpringArm+Camera 组件和缩放、旋转、移动、重置逻辑。BP_CameraPawn 作为蓝图配置层,将摄像机的默认参数(初始旋转 -60 度、初始臂长 1200、臂长范围 300-3000、旋转速度 2.0、缩放速度 10.0、移动速度 10.0、移动限制 800暴露在蓝图中方便在编辑器内调整和迭代。

职责范围

BP_CameraPawn 负责摄像机参数的蓝图级配置和编辑器内可视化调整。底层的摄像机变换逻辑SpringArm 的臂长插值、旋转计算、移动偏移等)全部由 ACameraPawn C++ 层处理。

项目内依赖

依赖项 关系 源文件
ACameraPawn 父类 C++ 源码

外部视角

BP_CameraPawn 是 ACameraPawn 的蓝图子类(自身不添加新变量或函数),从外部调用者视角,其接口全部继承自 C++ 父类:

组件BlueprintReadOnly

  • SpringArmComponentUSpringArmComponent*)— 弹簧臂组件,外部只读
  • CameraComponentUCameraComponent*)— 摄像机组件,外部只读
  • FollowTargetAPawn*)— 当前跟随的目标 Pawn外部只读

配置参数BlueprintReadOnly可在蓝图默认值面板调整

  • InitialRotationFRotator默认 -60°, 0°, 0°— 初始摄像机旋转
  • InitialArmLengthfloat默认 1200— 初始臂长
  • MinArmLengthfloat默认 300 / MaxArmLengthfloat默认 3000— 臂长范围
  • RotateSpeedfloat默认 2.0)— 旋转速度
  • ZoomSpeedfloat默认 10.0)— 缩放速度
  • MoveSpeedfloat默认 10.0)— 移动速度
  • CameraMoveClampdouble默认 800.0)— 摄像机移动范围限制

操作函数(蓝图可调用)

  • CameraZoom(FInputActionValue) — 根据输入值缩放臂长
  • CameraRotate(FInputActionValue) — 根据输入值旋转摄像机
  • CameraMove(FInputActionValue) — 根据输入值移动摄像机位置
  • CameraReset(FInputActionValue) — 重置摄像机到初始状态

EventGraph 事件

事件 类型 触发时机 行为
事件开始运行 原生覆盖 (BeginPlay) Pawn 生成时由引擎自动触发 预留(当前无连线逻辑)
事件Actor开始重叠 原生覆盖 (OnActorBeginOverlap) 与其他 Actor 碰撞时 预留(当前无连线逻辑)
事件Tick 原生覆盖 每帧 预留(当前无连线逻辑)

外部交互方式

  • 通常通过 BP_TestChar 的 CameraActorClass 设置自动创建
  • C++ 层通过 Cast<ACameraPawn> 获取引用并调用其操作函数

使用方法

BP_CameraPawn 在项目中的典型调用流程:

  • 摄像机初始化流程 — BP_TestChar 的 CameraActorClass 设为 BP_CameraPawn → BP_TestChar Possess 后自动生成 BP_CameraPawn 实例 → ACameraPawn 的 C++ 逻辑绑定 SpringArm + Camera 组件 → 读取蓝图配置的 InitialRotation/InitialArmLength 初始化
  • 摄像机控制流程 — 玩家输入 → Enhanced Input 系统 → ACameraPawn 的 CameraZoom/Rotate/Move/Reset 函数 → C++ 层处理 SpringArm 变换和臂长插值

用例

引用方 路径 用途
BP_TestChar /Game/Blueprints/BP_TestChar 设为 CameraActorClass在角色生成时自动创建分离式摄像机