Files
ChildHood/docs/design/systems/player-controller.md
T
starmen1265 887b6e4485 docs(design): 添加游戏愿景、系统设计与v0.1范围文档
新增: 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 命令模板
2026-06-01 00:54:58 +08:00

3.9 KiB
Raw Blame History

玩家角色控制 — 设计文档

对应程序实现:角色控制器、摄像机系统、动画蓝图


设计目标

让玩家"成为那个男孩"——操作直觉、移动流畅,通过简单的操控就能沉浸在城郊场景的漫游中。控制器不应成为体验的障碍。


视角设计

摄像机:第三人称跟随

  • 风格参考: 《我的暑假》的观察距离——不远不近,能看到角色全身和周围环境
  • 默认距离: 角色身后约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 优先键鼠)
  • 角色换装/自定义