init
This commit is contained in:
52
Content/Blueprints/BP_CameraPawn.md
Normal file
52
Content/Blueprints/BP_CameraPawn.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# BP_CameraPawn
|
||||
|
||||
## 基本信息
|
||||
- **类型**: Blueprint (Pawn)
|
||||
- **父类**: ACameraPawn
|
||||
- **源文件**: /Game/Blueprints/BP_CameraPawn.BP_CameraPawn
|
||||
- **模块**: Content
|
||||
|
||||
## 功能概述
|
||||
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++ 源码 |
|
||||
|
||||
## 对外接口
|
||||
- **继承自 ACameraPawn 的 BlueprintCallable 函数**:
|
||||
- `CameraZoom(const FInputActionValue& Value)` -- 摄像机缩放,调整 SpringArm 臂长
|
||||
- `CameraRotate(const FInputActionValue& Value)` -- 摄像机旋转,调整 SpringArm 的旋转偏移
|
||||
- `CameraMove(const FInputActionValue& Value)` -- 摄像机平移,调整 SpringArm 的 SocketOffset
|
||||
- `CameraReset(const FInputActionValue& Value)` -- 重置摄像机到默认位置和旋转
|
||||
- **继承自 ACameraPawn 的 BlueprintReadOnly 属性**:
|
||||
- `SpringArmComponent` (USpringArmComponent*) -- SpringArm 组件引用
|
||||
- `CameraComponent` (UCameraComponent*) -- Camera 组件引用
|
||||
- `FollowTarget` (APawn*) -- 跟随目标 Pawn(VisibleInstanceOnly)
|
||||
- **蓝图可调的配置参数**(EditDefaultsOnly, BlueprintReadOnly):
|
||||
- `InitialRotation` = FRotator(-60, 0, 0) -- 初始俯仰角
|
||||
- `InitialArmLength` = 1200.0f -- 初始臂长
|
||||
- `RotateSpeed` = 2.0f -- 旋转速度
|
||||
- `ZoomSpeed` = 10.0f -- 缩放速度
|
||||
- `MoveSpeed` = 10.0f -- 平移速度
|
||||
- `MaxArmLength` = 3000.0f / `MinArmLength` = 300.0f -- 臂长范围
|
||||
- `CameraMoveClamp` = 800.0 -- 平移限制范围
|
||||
|
||||
## 使用方法
|
||||
- 通过 BP_TestChar (AMyCharacter) 的 `CameraActorClass` 属性配置,角色 Possess 时自动生成摄像机实例
|
||||
- 继承自 ACameraPawn,C++ 层提供了完整的 SpringArm+Camera 组件和变换逻辑
|
||||
- 蓝图层面可在 EventGraph 中响应事件(event_count=3,node_count=3)
|
||||
- 配置参数均为 `EditDefaultsOnly`,在蓝图类默认值中调整摄像机行为,无需修改 C++ 代码
|
||||
- ACameraPawn 的 Tick() 处理每帧的臂长插值、旋转跟随和移动偏移,蓝图不参与底层变换
|
||||
- `FollowTarget` 在运行时由 SetFollowTarget 逻辑自动设置为当前控制的角色
|
||||
|
||||
## 用例
|
||||
- BP_TestChar (AMyCharacter) 中 `CameraActorClass` 属性引用,作为角色的分离式摄像机
|
||||
- 被 Possess 角色时自动生成,跟随 `FollowTarget` Pawn
|
||||
Reference in New Issue
Block a user