887b6e4485
新增: game-vision.md, v01-scope.md, brainstorm 记录, player-controller/interaction-system/collection-system 设计, scene-v01-suburban 场景设计 更新: CLAUDE.md 协作规范, style-guide 时代设定, current.md/roadmap.md 进度追踪, design 命令模板
3.9 KiB
3.9 KiB
玩家角色控制 — 设计文档
对应程序实现:角色控制器、摄像机系统、动画蓝图
设计目标
让玩家"成为那个男孩"——操作直觉、移动流畅,通过简单的操控就能沉浸在城郊场景的漫游中。控制器不应成为体验的障碍。
视角设计
摄像机:第三人称跟随
- 风格参考: 《我的暑假》的观察距离——不远不近,能看到角色全身和周围环境
- 默认距离: 角色身后约3-4米,略高于角色头部(约15°俯角)
- 镜头特点:
- 跟随平顺,有轻微延迟(软跟随,不生硬锁定)
- 角色转身时镜头平滑过渡
- 靠墙时镜头自动拉近,避免穿墙
操作方式
| 操作 | 手柄(默认) | 键鼠 |
|---|---|---|
| 移动 | 左摇杆 | WASD |
| 视角 | 右摇杆 | 鼠标移动 |
| 跑步 | 按住左摇杆 / R1 | 按住 Shift |
| 蹲下 | R3 / ○ | 按住 Ctrl |
| 交互 | △ / A | E |
| 取消/返回 | ○ / B | ESC |
注:优先适配键鼠操作,手柄映射作为后续优化。
移动系统
步行(默认)
- 速度: 正常散步节奏,约 2.5 m/s
- 用途: 探索、观察环境、接近可交互物体
- 特征: 步行动画自然,有轻微的左右摇摆
跑步
- 速度: 约步行速度的 1.8 倍(约 4.5 m/s)
- 触发: 按住跑步键 + 移动方向
- 体力: v0.1 不做体力限制,后续版本可考虑加入(跑累了会喘气减速)
- 特征: 跑步时有明显的加速过渡,停下时有减速惯性
蹲下
- 速度: 约步行的 0.5 倍
- 用途:
- 探索低矮空间(桌底、床底、矮灌木丛)
- 悄悄靠近(捉虫、捉迷藏)
- 查看地面上的小东西
- 特征: 蹲下后视角自动降低,能看到平时忽略的细节
转身与停止
- 转身有动画过渡,不瞬移
- 停止时有惯性减速(约0.2秒),不会突兀地定住
- 急停时有一小步调整动画
交互触发方式
靠近触发
- 当角色接近可交互物体(约1.5米)时,屏幕显示交互提示
- 提示样式:物体上方出现简洁的图标 + 文字(如"🔍 查看冰箱")
- 多个可交互物体时,优先显示最近的
- 玩家按交互键执行
交互锁定
- 交互中角色自动面朝物体
- 交互动画播放期间,移动输入被短暂抑制
- 可通过取消键提前退出交互
动画需求清单
基础移动动画
| 动画 | 优先级 | 说明 |
|---|---|---|
| Idle(待机) | P0 | 自然站立,有呼吸起伏和偶尔的小动作 |
| Walk(步行) | P0 | 4方向或8方向步行循环 |
| Run(跑步) | P0 | 跑步循环,起步和停止有过渡 |
| Crouch Idle(蹲伏待机) | P1 | 蹲下时的待机姿势 |
| Crouch Walk(蹲伏移动) | P1 | 蹲下时的缓慢移动 |
交互动画
| 动画 | 优先级 | 说明 |
|---|---|---|
| Pick Up(拾取) | P0 | 弯腰捡起地面物品 |
| Open Door(开门) | P1 | 推门/拉门动作 |
| Open Drawer(翻抽屉) | P2 | 拉开抽屉查看 |
| Examine(端详) | P1 | 拿起物品在手中翻转查看 |
过渡动画
| 动画 | 优先级 | 说明 |
|---|---|---|
| Walk ↔ Run 过渡 | P0 | 步行与跑步之间的平滑混合 |
| Stand ↔ Crouch 过渡 | P1 | 站立与蹲下之间的过渡 |
| Stop(急停) | P1 | 从移动状态停止的过渡 |
v0.1 最小可行范围
v0.1 只需实现以下核心操控:
必做(P0)
- 第三人称摄像机跟随
- WASD 步行移动
- Shift 跑步(速度切换,无体力限制)
- 靠近物体显示交互提示
- E 键交互(拾取地面物品)
可以简化
- 蹲下系统 → v0.2 再实现
- 动画可以用简单的占位动画
- 摄像机碰撞处理可以简化
不做
- 体力系统
- 攀爬/跳跃
- 手柄适配(v0.1 优先键鼠)
- 角色换装/自定义