167 lines
22 KiB
Markdown
167 lines
22 KiB
Markdown
# 机甲射击落地开发计划
|
||
|
||
本计划把 [玩法设计](../Design/GameDesign.md) 拆成有前置依赖的开发任务,按 [项目规范](ProjectConventions.md) 存放产出。Unity 工程操作通过 Unity MCP 完成,3D 制作和导出通过 Blender MCP 完成。首个交付是 Windows PC 键鼠驾驶试验场,随后交付一个能搜索、运货、整机撤离并正确保存收益的战区,再扩展为 20–30 分钟的完整出击。
|
||
|
||
## 工程起点
|
||
|
||
tree1–tree3 最初按 [资源初始化计划](TreeInitializationPlan.md) 建立普通资源副本,初始化阶段未创建分支或注册 worktree,结果见 [初始化验收](../QA/Workspaces/Initialization.md)。`tree1` 后续已在 `D:/vibeCoding/unityRouge/workTree/tree1` 注册独立工作区,分支为 `codex/models-weapons-equipment-animation`,用于玩家机甲模型、武器、动作与装备系统改善。
|
||
|
||
2026-11-12 增补的[搜打撤装备系统扩展计划](EquipmentSystemPlan.md)梳理实物库存、携装出击、搜索换装、回收与损失、存档迁移及模型动作交接,按 E0–E7 分步实施。用户已确认实物可带出并再次携入,并增补[弹射式安全箱与多格库存计划](EjectionSafeCaseAndGridPlan.md):机毁时安全箱自动返基地,任何放得下的未安装物品均可保全,箱外物品损失、机库库存保留;容器采用可旋转的二维网格。S1–S6 合入首个装备工作包,玩法设计已同步;当前原型已接入实物库存、安全箱与网格,按用户要求以 v2 新档开发。已测范围见[装备验证](../QA/Equipment/DataFoundation.md)。
|
||
|
||
2026-11-12 增补的主页语言切换及全局双语工作按 [多语言实施计划](LocalizationPlan.md) 的 L1–L7 执行,完成后继续原有美术、实战与性能工作。
|
||
|
||
多语言增量已交付简体中文、English、主页右下角即时切换与独立偏好。验证与 Windows 产物见 [多语言验收记录](../QA/Localization/Acceptance.md)。
|
||
|
||
本轮已交付首个灰盒可运行原型,Windows 构建与自动化检查见 [原型验收记录](../QA/Prototype/Acceptance.md)。阶段 0–2 已有对应工程和核心流程验证,阶段 3–4 已接入配装、路线和终局状态。独立战区内容、动画、战斗平衡、20–30 分钟整局试玩与规范性能采样继续按表中任务推进。
|
||
|
||
以下工程起点与连接情况为执行前记录。
|
||
|
||
本次核查时,工程使用 Unity 6000.6.8f1,Assets 中只有示例场景与编辑器目录。示例场景包含相机和方向光,Windows 构建入口尚未登记,玩法脚本和首版资产需要随下列任务制作。
|
||
|
||
2026-11-11 的只读连接检查确认 Blender MCP 可访问 Blender 4.5.10 LTS,插件版本为 1.8,场景是尚未保存的默认场景。工程内已安装 MCP for Unity 10.3.0,包清单锁定 Git 提交 81542a7e86292b5c4c21b1782c5af23b567f45ce。当前会话的工具列表尚未提供 Unity MCP 调用,0.0 需要完成客户端联通与目标工程回读。Blender 的资产库集成当前未启用,素材获取先走公开网页下载与本地文件导入。
|
||
|
||
| 项目 | 当前情况 | 实施安排 |
|
||
| --- | --- | --- |
|
||
| 渲染 | 工程使用 Built-in 渲染配置。 | 灰盒与首版素材按此配置制作,导入时核对材质。 |
|
||
| 输入 | 包清单尚未包含 Input System,当前使用旧输入后端。 | 在 0.2 安装编辑器兼容的正式版 Input System,锁定包版本,切换输入后端并验证重启后的工程。 |
|
||
| 场景 | 现有 SampleScene,构建场景列表为空。 | 按阶段建立启动入口、机库、驾驶试验场和各战区场景。 |
|
||
| MCP 通道 | Blender MCP 已完成只读连接检查,Unity MCP 包已安装。 | 0.0 验证 Unity 客户端工具、目标工程身份和场景读取。 |
|
||
| 原型状态 | 玩法方案与文件规范已经归档。 | 工具检查已有上述记录,其余开发与模型导入验证随任务执行。 |
|
||
|
||
## 已采用的实施默认值
|
||
|
||
| 部分 | 实施方式 | 选择依据与检查点 |
|
||
| --- | --- | --- |
|
||
| 输入 | 一个 Input Actions 资产,包含驾驶与界面动作。默认键位沿用玩法设计。 | Actions 承载按键和动作关系。驾驶与界面切换时明确交接鼠标和开火输入。安装与后端切换遵循 [Input System 官方说明](https://docs.unity3d.com/Packages/com.unity.inputsystem@1.20/manual/Installation.html)。 |
|
||
| 机体移动 | CharacterController 配合一个共享移动组件,轻、中、重三套配置。 | 水平移动、跳跃、升空、重力和能源都由机体逻辑计算。Move 接收位移且需要自行处理重力,详见 [Unity 6.6 API](https://docs.unity.com/en-us/engine/6000.6/script-reference/unityengine/charactercontroller/move)。 |
|
||
| 相机与武器 | 一个相机控制器切换越肩和驾驶舱挂点。武器共用瞄准目标与枪口检测。 | M1 检查近墙、视角切换和精瞄,确保镜头视野、枪口遮挡与实际命中可理解。 |
|
||
| 配置 | 底盘、装备、掉落和战区用 ScriptableObject 保存静态定义,使用稳定的内容编号。 | 当局耐久、能源、装备和战利品保存在运行数据中,编辑配置与存档数据各有明确用途。 |
|
||
| HUD 与菜单 | UI Toolkit 承载屏幕 HUD、货仓、机库和路线图。 | 使用 UXML、USS 与运行时组件。先验证简化驾驶舱和鼠标货仓交互,参见 [Unity 运行时 UI 说明](https://docs.unity3d.com/cn/6000.0/Manual/ui-systems/introduction-ui-toolkit.html)。 |
|
||
| 保存 | 本地带版本号的存档快照,同时包含机库、当前出击与已结算事件。 | 新状态写入成功后反馈入库,支持临时文件、完整快照替换和上一份有效备份。结算按出击编号和事件类型去重。 |
|
||
| 关卡 | 手工灰盒布局、任务和物资配置组合成分层路线图。 | 每个战区放置地面通路、搜索点、推进目标、下一站出口与整机撤离点。 |
|
||
| 模型与声音 | 用 Unity MCP 搭建占位战区,用 Blender MCP 制作机体、舱框和道具,并修整下载模型。声音按公开免费条目获取后导入。 | 在 0.4 用一个样件验证完整导出导入流程。每次替换资产后核对尺寸、挂点、材质与来源记录。 |
|
||
|
||
## MCP 工作分工
|
||
|
||
| 工作 | 执行通道 | 落盘与回读 |
|
||
| --- | --- | --- |
|
||
| 读当前工程、编辑场景与组件、组装预制体 | Unity MCP | 先读取当前工程路径和活动场景,使用相应场景、对象、组件和预制体工具修改,保存后回读层级与引用。 |
|
||
| C#、UXML、USS、配置文本与文档 | 工作区文件工具编写,Unity MCP 导入验证 | 代码按功能目录保存。修改后触发 Unity 刷新,等待编译结束,读取 Console,再进入播放验证。 |
|
||
| 建模、模型修整、挂点、材质和导出 | Blender MCP | 先读取当前文件与场景,在项目资产集合中工作,保存源 blend,按选定对象导出,回读尺寸并检查多角度预览。 |
|
||
| 免费素材获取 | 公开资源页与下载工具 | 保存原始文件、条目地址、许可和校验值,再交给 Blender MCP 或 Unity MCP 导入。登记在 [素材台账](AssetSources.md)。 |
|
||
| 编辑器测试、播放检查和画面检查 | Unity MCP | 定向运行测试并等待任务完成,读取结果与 Console。越肩和驾驶舱各保留实际画面截图。 |
|
||
| Windows 构建与试玩 | Unity MCP 发起构建,本机启动产物 | 等构建状态完成,确认可执行文件和日志,再实际启动试玩并写入验收记录。 |
|
||
|
||
Unity 工具名已对照工程内插件源码核查。场景使用 manage_scene,对象与组件使用 manage_gameobject、manage_components,资产与预制体使用 manage_asset、manage_prefabs,包使用 manage_packages,编译与错误读取使用 refresh_unity、read_console。测试使用 run_tests 并以 get_test_job 取结果,构建使用 manage_build 并轮询其 status。实施时以客户端实际提供的参数为准,先读后改,运行结果回写到阶段记录。
|
||
|
||
每轮 Unity 操作采用「读取工程和场景 → 小批修改 → 保存并等待导入/编译 → 读取结果 → 播放或测试 → 截图与日志归档」。涉及脚本重编译或编辑器重启时,恢复后重新读取工程和活动场景,再继续当前任务。
|
||
|
||
## Blender 与 Unity 的资产交接
|
||
|
||
1. 在 Unity MCP 中确定占位体尺寸和机体朝向,用同一份尺寸参照供 Blender 制作。源文件以米为尺度,机体根节点、武器挂点和驾驶舱视点使用稳定名称。
|
||
2. Blender MCP 保存 SourceAssets/Blender 下的源文件,导出选中的模型、骨架和必要挂点。自制 FBX 放到 Assets/Game/Art/Models,纹理和动画分别进入对应目录。原始下载文件进 SourceAssets/ThirdParty,导入的外部包进 Assets/ThirdParty。
|
||
3. Unity MCP 刷新导入并检查模型的实际尺寸、朝向、材质和挂点。项目自己的驾驶组件、碰撞体和控制逻辑组装在 Assets/Game/Prefabs 的预制体中。
|
||
4. 将资产放入试验场,用轻、中、重配置及两种相机检查碰撞、枪口遮挡和舱框视野。记录 Blender 预览和 Unity 实际画面,完成后再替换下一项。
|
||
5. 导出与修整中复用的 Blender 脚本保存到 Tools/Blender。重复导入同一资产时沿用已有文件与引用,保留 Unity 生成的 meta。
|
||
|
||
以下任务按编号跟踪。依赖完成后即可开始对应任务,每个阶段交付一份 Windows x64 可执行构建和对应的操作记录。
|
||
|
||
## 0 · 工程基线
|
||
|
||
| 编号 | 依赖 | 工作与文件产出 | 完成条件 |
|
||
| --- | --- | --- | --- |
|
||
| 0.0 | 工程起点 | 核对 Unity MCP 客户端连接与 Blender MCP。Unity 回读目标工程路径、编辑器状态、活动场景和 Console,Blender 回读版本、当前文件与场景。 | Unity 工程路径为本仓库,两个 MCP 均可成功只读调用。将结果归档到 Docs/QA/Environment。 |
|
||
| 0.1 | 0.0 | 通过 Unity MCP 核对编辑器、Windows 构建模块与现有包锁。建立版本控制基线,按规范配置 Unity 生成目录与构建产物的忽略规则。 | 工程可打开,包可解析,资产与 meta 可追溯。记录本机可构建的编辑器版本。 |
|
||
| 0.2 | 0.1 | 通过 Unity MCP 配置 Input System。动作资产放在 Assets/Game/Input/GameInput.inputactions,输入读取放在 Scripts/Input。建立 Bootstrap.unity 与最小启动逻辑。 | 编译通过,驾驶动作与界面动作可分别启用。切出窗口后重新聚焦,按键状态恢复正确。 |
|
||
| 0.3 | 0.2 | 通过 Unity MCP 建立 Windows x64 构建入口并发起构建,跟踪到完成。启动场景能进入一个空试验场。 | 从可执行文件启动并进入场景,用 Esc 释放鼠标并正常退出。 |
|
||
| 0.4 | 0.1 | Blender MCP 制作带尺寸参照和一个挂点的样件,保存源 blend 并导出 FBX,Unity MCP 导入后组装一个测试预制体。 | 在 Unity 回读尺寸、朝向、材质和挂点,截图留证。再次导出导入后,预制体组件与模型引用正常。 |
|
||
|
||
## 1 · 双视角驾驶试验场
|
||
|
||
| 编号 | 依赖 | 工作与文件产出 | 完成条件 |
|
||
| --- | --- | --- | --- |
|
||
| 1.1 | 0.2 | Mechs 下的移动与能源组件,Data/Mechs 下的轻、中、重配置,三套占位预制体。 | WASD、冲刺、跳跃可操作。轻型可短时升空,中型可短冲刺换位,重型可沿地面路线抵达目标。能源消耗与恢复可见。 |
|
||
| 1.2 | 1.1 | 共享相机控制、越肩挂点、简化驾驶舱挂点与 HUD。 | V 连续切换时保留朝向,右键在当前视角精瞄。移动、推进、精瞄均可在两种视角下使用。 |
|
||
| 1.3 | 1.2 | Combat 下的一种主武器、伤害接收和一个可受击目标。 | 枪口遮挡有反馈,两种视角瞄准同一目标时命中规则一致。打开再关闭界面后,重新按左键才开火。 |
|
||
| 1.4 | 1.3、0.3、0.4 | Unity MCP 组装 MechTestRange.unity,含掩体、地面坡道与高差路线。输出阶段构建与操控记录。 | 三套底盘均完成一段驾驶与射击。记录近墙、空中切视角、窗口切换和鼠标捕获的检查结果。 |
|
||
|
||
第一个工作包按 0.0 → 0.1 → 0.2 → 0.3 → 0.4 → 1.1 → 1.2 → 1.3 → 1.4 执行。它需要的资产为往返测试样件、占位机甲、基础掩体、目标靶和驾驶舱边框。
|
||
|
||
## 2 · 单战区搜打撤
|
||
|
||
| 编号 | 依赖 | 工作与文件产出 | 完成条件 |
|
||
| --- | --- | --- | --- |
|
||
| 2.1 | 1.4;二维扩展按 S1–S3 | Loot 下的物品定义、长宽与旋转、搜索交互、普通货仓/安全箱和货物选择界面。固定样本为蓝图、合金、电芯与多格装备。 | 搜索后可摆放物资。材料每堆最多 10 个;容量按边界、连续形状和重叠检查,超过堆叠上限或摆不下时明确说明。 |
|
||
| 2.2 | 2.1 | Save 下的版本化存档,Runs 下的出击状态,一次性入库逻辑和基础机库库存页。 | 同一次货舱或整机结算重试两遍,机库只增加一次。写入失败时保留原状态,玩家可重试。 |
|
||
| 2.3 | 2.2;网格回收与安全箱按 S4 | Extraction 下的主动回收舱,按二维布局装舱,原地按住 G 准备发射;机毁另行触发安全箱自动弹射。 | 每次出击仅 1 次主动货舱发射。主动准备可中断并保留物资;成功后共同保存扣货、入库和已用。安全箱不占该次数,机毁按已保存的箱内归属保全。 |
|
||
| 2.4 | 2.2 | 本区撤离点、接应倒计时、运输机占位体和主动登机交互。 | 任意任务进度均可到点呼叫,等待期间能移动作战。运输机到达后再次按 E 登机才结算。 |
|
||
| 2.5 | 2.3、2.4 | WarzonePrototype.unity,含一项推进目标、搜索物、一个守卫和下一站出口。 | 完成目标开放出口。目标完成前可以搜物资、发射货舱或整机撤离。每次成功返航在基础机库库存页查看所得。 |
|
||
| 2.6 | 2.5 | Windows 单战区构建,结算逻辑测试与实机操作记录。 | 跑完下方「关键结算验证」。重开游戏后,机库物资、舱使用状态、机毁损失符合记录。 |
|
||
|
||
这一阶段的重点样例是「主动货舱先送回蓝图 → 另一件装备放进安全箱 → 机甲被击毁 → 回机库看到蓝图与弹射保全装备,箱外其余物资丢失」。
|
||
|
||
## 3 · 配装与分支出击
|
||
|
||
| 编号 | 依赖 | 工作与文件产出 | 完成条件 |
|
||
| --- | --- | --- | --- |
|
||
| 3.1 | 2.6 | Equipment 下的四槽装配、载重与额定功率检查,局内候选部件比较与替换。 | 替换推进器或防护模块,下一场立即体验到动作差异。装配超预算时能看见原因,三种底盘共用这套规则。 |
|
||
| 3.2 | 3.1;实物库存按 E1–E4 扩展 | Hangar.unity、机库实物库存、蓝图研究、材料消耗与初始配装方案。 | 蓝图和材料来自实际回收,初始配装引用可用装备实例。成功带出的装备可再次携入,机毁保全安全箱、损失箱外物品;新出击保留机库库存与解锁,重置临时强化与货舱次数。 |
|
||
| 3.3 | 3.2 | Runs 下的路线生成、节点情报、普通目标与中段终局分流。 | 地图公开任务与物资类别,具体战利品入场才发现。中段选首领或护送方向,任务完成后可继续搜再进下一站。 |
|
||
| 3.4 | 3.3 | 战区切换与当前出击存档,三个普通战区布局及轮换任务。 | 进入下一站保留机体状态、当局装备、普通货仓与安全箱布局、已用主动货舱标记。每站都能呼叫整机撤离。 |
|
||
|
||
## 4 · 完整试玩版
|
||
|
||
| 编号 | 依赖 | 工作与文件产出 | 完成条件 |
|
||
| --- | --- | --- | --- |
|
||
| 4.1 | 3.4 | BossArena.unity 的首领目标与 EscortRoute.unity 的护送工程机。 | 两条路线均能达成终局。分别记录任务达成与物资撤出,护送目标损毁时存活玩家可撤离。 |
|
||
| 4.2 | 4.1,美术制作可从 1.4 后开始 | 补齐三种主武器、两种副武装、两种推进器、两种防护与三类普通敌人。Blender MCP 制作和修整机体、工业组件,由 Unity MCP 导入组装,并接入免费音效。 | 三种机体风格可独立完成两种终局。资产尺度、挂点、材质、碰撞和来源记录齐全。 |
|
||
| 4.3 | 4.2 | 单局节奏、掉落价值、回收时机和敌群压力调整。 | 三类底盘各完成两种终局,记录至少六次完整通关的用时与回收收益。围绕 20–30 分钟目标调整,记录提前撤离的收益。 |
|
||
| 4.4 | 4.3 | Windows x64 试玩构建、性能采样与回归记录。 | 键鼠完成完整循环。指定测试机在 1080p、中等画质下采样,按项目规范核查 60 FPS 目标并记录实际结果。 |
|
||
|
||
按阶段记录实际工作量,再用已完成阶段校准后续排期。关键依赖为双视角操控、回收结算、跨战区状态、两种终局和完整出击调试。
|
||
|
||
## 数据归属与结算顺序
|
||
|
||
| 数据 | 谁持有 | 何时保存或变化 |
|
||
| --- | --- | --- |
|
||
| 底盘、部件、战区定义 | Data 下的配置资产 | 制作阶段调整,以内容编号关联。 |
|
||
| 永久解锁、机库材料、装备实物和配装方案 | 玩家存档 | 解锁、制造、携装出击或成功回收时提交,保存唯一归属。 |
|
||
| 出击编号、随机种子、当前节点、机体状态、当局装备、普通货仓和安全箱布局 | 当前出击 | 出击开始、合法流转/摆放、进入战区、成功回收、返航或机毁时提交对应状态。 |
|
||
| 舱可用/准备中/已用 | 当前出击中的货舱记录 | 准备中锁住所选货物,成功发射后提交已用。加载一个发射前的完整快照时,从可重试状态恢复。 |
|
||
| 安全箱携带中/已弹射/随整机返回,机毁待结算记录 | 当前出击 | 致命状态锁存后冻结库存输入;安全箱返库、箱外损失、弹射收据与出击结束共同提交。正常登机只回收一次,跨区不重置箱内容。 |
|
||
| 接应未呼叫/等待中/可登机 | 当前战区 | E 呼叫后进入等待。可登机时玩家主动交互返航。进入下一战区后,由该区自己的撤离点接应。 |
|
||
| 终局达成与物资返航 | 两类独立事件记录 | 首领或护送目标达成时记战果,登机时结算机上可回收物资。 |
|
||
|
||
主动货舱、整机回收和安全箱结算都先校验物资、布局、机体状态与事件编号,在新快照中计算归属转移。写入成功后采用新状态并显示完成,动画不发放库存。机毁写入失败时保持锁定并重试待结算记录;损坏文件从上一份完整备份恢复,相关流程用针对性的存档测试覆盖。
|
||
|
||
## 关键结算验证
|
||
|
||
| 操作 | 预期结果 | 首次验收 |
|
||
| --- | --- | --- |
|
||
| 将 1×3 物品装入 2×2 舱,或多件物品争用同一格 | 两个朝向均不适配或发生重叠时拒绝;不按物品件数替代几何校验。 | 2.3、S2/S4 |
|
||
| 发射准备期间松键、移动或受击 | 原有物资仍在随身清单,货舱可再次使用。 | 2.3 |
|
||
| 发射成功后机甲被击毁 | 已主动回收货物在机库,安全箱内容弹射保全,箱外机上货物损失。 | 2.6、S4 |
|
||
| 安全箱放入未安装完整武器或模块,随后机毁 | 尺寸合法即可装入,箱内装备按原 UID 弹射入库,箱外装备损失,机库原库存保留。 | E4、S4 |
|
||
| 已保存安全箱布局后跨区、正常撤离或待机毁结算重载 | 跨区保留摆放,正常撤离不再发放弹射收益,待机毁结算使用同一事件键完成一次。 | E4、S4/S6 |
|
||
| 已用货舱后进入下一站,再打开货仓 | 舱保持已用,格位与机库物资正确。 | 3.4 |
|
||
| 运输机到达但玩家尚未登机 | 玩家仍可操作,随身货物仍由机甲携带。 | 2.4 |
|
||
| 已完成终局但尚未登机,随后机毁 | 终局战果保留,安全箱物资保全,箱外未送回的随身物资丢失。 | 4.1、S4 |
|
||
| 同一事件回调重复、保存后重开游戏 | 同一份货物只结算一次。货舱回收后还可正常结算整机返航。 | 2.6 |
|
||
| 结算写入失败或临时快照损坏 | 可从有效状态恢复,背包、机库与结算标记相互一致。 | 2.6 |
|
||
|
||
结算去重、写入失败和货舱中断适合做小范围自动化测试。驾驶手感、切视角、两种终局和完整节奏在可执行构建中实际试玩。
|
||
|
||
## 美术与资产工作包
|
||
|
||
1. 在驾驶试验场确定机体基准尺寸、地面通路、武器挂点与驾驶舱视点,导出一份尺寸参照。
|
||
2. Blender MCP 先制作一台可驾驶的机体和共用驾驶舱边框,再围绕底盘参数制作轻、中、重外观。源文件进 SourceAssets/Blender,Unity MCP 用导出模型组装预制体。
|
||
3. 工业组件先覆盖地板、坡道、掩体、货箱、维修设施与撤离标识,组成三个可辨认的普通战区。
|
||
4. 音效先覆盖推进、开火反馈、受击、交互完成、货舱升空和运输机抵达。画面与声音共同提示状态。
|
||
5. 每份引入的免费模型、声音和代码在 [素材台账](AssetSources.md) 登记来源、版本、许可与实际路径。导入后在现有灰盒场景逐项替换并核对玩法挂点。
|
||
|
||
## 每阶段归档内容
|
||
|
||
构建产物放在 Builds/Windows/x64 对应阶段目录。记录包含构建编号、入口场景、使用的底盘与装备、复现操作、实际结果,以及需要跟进的问题,归档到 Docs/QA 对应阶段。截图进入该阶段 Screenshots,测试结果和 Console/构建日志进入 TestResults 与 Logs。Unity MCP 截图时指定这些输出位置,Blender 多角度预览与导出检查也使用相同阶段记录。首次性能记录同时填写测试机 CPU、GPU、内存、分辨率和画质。
|
||
|
||
0.0 的联通、0.4 的模型交接、1.4 的驾驶原型和 2.6 的核心回收结算已形成工程产出。后续按验收记录中的内容制作与实战测试项继续完成首版。
|