3.7 KiB
3.7 KiB
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)
SpringArmComponent(USpringArmComponent*)— 弹簧臂组件,外部只读CameraComponent(UCameraComponent*)— 摄像机组件,外部只读FollowTarget(APawn*)— 当前跟随的目标 Pawn,外部只读
配置参数(BlueprintReadOnly,可在蓝图默认值面板调整)
InitialRotation(FRotator,默认 -60°, 0°, 0°)— 初始摄像机旋转InitialArmLength(float,默认 1200)— 初始臂长MinArmLength(float,默认 300) /MaxArmLength(float,默认 3000)— 臂长范围RotateSpeed(float,默认 2.0)— 旋转速度ZoomSpeed(float,默认 10.0)— 缩放速度MoveSpeed(float,默认 10.0)— 移动速度CameraMoveClamp(double,默认 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,在角色生成时自动创建分离式摄像机 |