文件创建人: 北辰 (AI 设计搭档)

目标周期: 1-2 天 (Focus on Core Loop Validation)

核心技术栈: Next.js / React Three Fiber (R3F) / Tailwind CSS / Claude 3.5 Sonnet

1. 核心目标与哲学 (The Goal & Philosophy)

核心验证: 验证 Low-Poly 视觉风格在 Web 3D 中的表现力,以及**“具身领袖近场沟通”**的核心交互流畅性。

开发原则:

  1. MOCK AI 优先: (核心原则不变) 暂不接入真实 LLM API,指令执行逻辑全部在前端代码中模拟 (Mock) 完成。

  2. 视觉至上: 重点投入在光影色彩上,确保画面具有“高级手办感”。

  3. 影响力优先: 交互模式为 “靠近 说话 影响”,彻底废弃“点击选择”的操作模式。

2. 视觉目标 (Visual Target: Stylized Low-Poly)

我们旨在实现风格化 Low-Poly 的高级感,而非简陋的方块堆砌。

元素材质 / 特点
视角45 度等轴测俯视 (Isometric),通过正交相机 (OrthographicCamera) 实现。
光影必须配置 <directionalLight> 投射柔和阴影 (Soft Shadows),让物体具有立体感。
地面浅绿色/棕色大平面,具有接收阴影属性。
植被/资源几何体拼凑:树 = 棕色圆柱 (Cylinder) + 绿色圆锥 (Cone)。
UI采用 Glassmorphism(玻璃拟态)+ 清晰几何风格。

3. 分阶段执行细则 (Execution Plan)

🟢 阶段 1:舞台搭建 (Canvas & Lighting Setup)

  • 设计目的:

    • 确立游戏整体的视觉基调(古典、温暖、史诗感)。

    • 构建 3D 渲染的基础设施,确保性能和兼容性。

  • 工作内容:

    • 配置 R3F 的 <Canvas>,设置高 DPI 支持 (dpr) 和阴影贴图 (shadows)。

    • 配置 正交相机 (OrthographicCamera),锁定上帝视角。

    • 配置 暖色调灯光系统:环境光 + 强烈的日光(平行光),调整阴影参数以获得柔和边缘。

    • 创建一个巨大的 80x80 地面 作为世界承载。

  • 产出结果:

    • app/page.tsx 中包含完整的 3D 场景代码。

    • 浏览器中显示一个温暖、明亮的米黄色大平面。

  • 验收标准 (DOD):

    • 画面不再是黑色,而是米色/暖色调。 ✅ 2025-12-11

    • 地面有清晰的投影(放个测试方块能看到影子)。 ✅ 2025-12-11

    • 视角是 45 度俯视,且无法被随意旋转到底部(限制 OrbitControls 角度)。 ✅ 2025-12-11

🟢 阶段 2:世界生成 (Grid & Resources)

  • 设计目的:

    • 验证 PCG (程序化生成) 的技术可行性。

    • 通过视觉分层(核心区 vs 远景),解决大地图的性能问题。

  • 工作内容:

    • 拆分出独立的 ResourceTile 组件。

    • 编写随机算法,在中心 20x20 区域生成 50+ 个树木和石头。

    • 在外围区域生成低精度的山脉(锥体群)和水体(蓝色平面)。

    • 实现组件化重构:将代码拆分到 /components/World/components/Game

  • 产出结果:

    • /components/World/ResourceTile.tsx

    • /components/Game/GameScene.tsx

  • 验收标准 (DOD):

    • 每次刷新页面,树木和石头的位置都会随机变化。 ✅ 2025-12-11

    • 核心区域资源丰富,边缘有山脉作为视觉阻挡。 ✅ 2025-12-11

    • 所有生成的物体都有阴影,且颜色符合 Low-Poly 审美。 ✅ 2025-12-11

🟢 阶段 3:角色与移动 (Player & Movement)

  • 设计目的:

    • 确立 “具身化” 体验:玩家有实体,必须亲自移动。

    • 验证 Low-Poly 人偶 的表现力(不需要骨骼动画也能动)。

  • 工作内容:

    • 创建 PlayerLeader 组件:白色几何人偶,绑定 WASD 键盘控制

    • 创建 WorkerAgent 组件:土黄色几何人偶,实现 Random Walk (随机漫步) 逻辑。

    • 实现平滑移动算法(Lerp),避免瞬移。

  • 产出结果:

    • /components/Character/PlayerLeader.tsx

    • /components/Character/WorkerAgent.tsx

  • 验收标准 (DOD):

    • 按 WASD 可以控制白色人偶平滑移动,松开按键即停。 ✅ 2025-12-11

    • 黄色人偶(德米特里)在自动闲逛,不会穿墙或飞出地图。 ✅ 2025-12-11

    • 两个角色都有头部和身体的区分,且投射阴影。 ✅ 2025-12-11

🟡 阶段 4:UI与模拟 (UI & Mock Command) [当前重点]

  • 设计目的:

    • 打通 [近场沟通 意图解析 行为反馈] 的核心循环。

    • 验证 “影响力驱动” 的玩法是否成立(不直接控制,只下达愿景)。

  • 工作内容:

    • 状态管理: 使用 zustand 建立 GameState,管理日志、资源、距离检测。

    • UI 开发: 制作常驻底部的对话面板和右侧的系统日志

    • 逻辑实现:

      • 近场检测: 实时计算玩家与 NPC 距离 (<3m 激活)。

      • Mock AI: 编写硬编码逻辑:收到 “砍树” 状态变 Thinking 移动到树 播放动画 树消失 木材+1。

  • 产出结果:

    • /components/Game/GameUI.tsx

    • /components/Game/GameState.ts

  • 验收标准 (DOD):

    • 距离感: 只有靠近德米特里时,输入框才变亮,出现耳朵图标。 ✅ 2025-12-11

    • 指令响应: 输入 “去砍树” 后,日志显示对话,德米特里头顶气泡变色。 ✅ 2025-12-11

    • 行为闭环: 德米特里真的移动到了一棵树旁,树真的消失了,左上角木材真的 +1。 ✅ 2025-12-11

当前进度状态: 阶段 1-3 已完成 (Done)。正在进行 阶段 4 (In Progress)。