feat(web-platform): release V0.8.1 常规地图优化
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled

This commit is contained in:
2026-09-03 13:18:35 +08:00
parent deead17a9a
commit a9b07e0abf
49 changed files with 4987 additions and 569 deletions
+18 -6
View File
@@ -110,7 +110,11 @@ Schema V1 支持物理层、视觉层和出生点。Schema V2 增加创作层:
## 7. 编辑交互
地图面板提供“场景 · 资产库 → 认证资产”入口。用户可以点击添加,或把资产卡片拖到画布的 XY 平面落位;落点按 0.1 m 归一化并根据原语尺寸自动贴地。当前没有可编辑地图时,首个资产会立即创建 `map.json`、空物理层和创作层骨架,切换到新场景并作为未应用草稿进入 Three.js 预览;此阶段不调用 MuJoCo。用户点击“应用并重新编译”后才生成并事务提交实际物理层。
地图面板提供统一的“场景 · 资产库”,工程地图源、认证资产和系统程序地形都遵循同一条交互链路:点击或拖放到画布、进入轻量草稿、在场景树选择/删除,最后一次应用。三类卡片共享一种受校验的拖放载荷,画布落点统一按 0.1 m 归一化,任何一种来源的增删都不会隐式触发 MuJoCo 编译。
地图源与场景实例分离。同一工程地图源可创建多个拥有独立 XY/绕 Z 位姿的引用实例;物理层、视觉层和出生点使用同一个实例变换。编辑 `authoring` 内容属于源编辑,会同步影响引用该 descriptor 的实例,界面必须明确提示这一影响范围,不能伪装成实例级覆盖。
当前没有可编辑地图时,首个认证资产会创建临时 `map.json`、空物理层和创作层骨架,切换到新场景并作为未应用草稿进入 Three.js 预览;此阶段不调用 MuJoCo。“放弃场景更改”必须同时撤销临时实例、创作草稿和这三份临时工程文件,下一次创建可以复用同一场景 ID。用户点击“应用并重新编译”后才生成并事务提交实际物理层。
React 中的 `MapEditSession` 是草稿唯一来源。Three.js 预览层只负责:
@@ -132,7 +136,9 @@ React 中的 `MapEditSession` 是草稿唯一来源。Three.js 预览层只负
- `Ctrl+Z`:撤销;
- `Ctrl+Y` 或 `Ctrl+Shift+Z`:重做。
拖动 TransformControls 操纵轴期间禁用 OrbitControls;在画布空白区域按住鼠标左键仍可旋转相机。连续拖动只在 `mouseUp` 时提交一次历史记录。缩放必须写回原语参数,不能把 Three.js 节点 scale 作为持久数据。
拖动 TransformControls 操纵轴期间禁用 OrbitControls;在画布空白区域按住鼠标左键仍可旋转相机。连续拖动只在 `mouseUp` 时提交一次历史记录。缩放必须写回原语参数,不能把 Three.js 节点 scale 作为持久数据。`locked` 的准确语义是“锁定位姿”:禁止位置、旋转和视口变换,但仍允许编辑名称、尺寸、摩擦和颜色。
“自动落位(重力)”通过统一地图表面查询器沿世界 `-Z` 求最高承载面。查询器与物理合成共用确定性程序几何,支持有限平地、坡道、楼梯、障碍物、坑/沟壑和高度场,并应用地图实例变换;因此认证资产可正确落到系统程序地形上,而不是始终假设 `z=0`。
## 8. 只读地图转换
@@ -156,7 +162,7 @@ React 中的 `MapEditSession` 是草稿唯一来源。Three.js 预览层只负
## 9. 事务边界
应用编辑草稿或转换地图时,顺序固定为:
地图实例增删、工程地图实例变换、程序地图参数和认证资产源编辑共享同一个应用基线。普通模型入口切换或 URDF 模式重载只能使用上一次成功应用的地图基线,不能静默提交当前场景草稿。应用编辑草稿或转换地图时,顺序固定为:
1. 生成候选创作层;
2. 确定性生成候选物理层;
@@ -164,9 +170,10 @@ React 中的 `MapEditSession` 是草稿唯一来源。Three.js 预览层只负
4. 在新的 MEMFS 工作区编译 MuJoCo;
5. Viewer 成功 attach 新会话;
6. 最后提交 manifest、地图选择和编辑状态;
7. 释放旧会话和旧工作区。
7. 推进地图实例与创作文档的统一应用基线;
8. 释放旧会话和旧工作区。
任一步失败都必须恢复旧仿真和旧工程状态,同时保留用户草稿。
任一步失败都必须恢复旧仿真和旧工程状态,同时保留完整用户草稿。编译期间禁用所有草稿写入口;提交完成时只清除本次提交的文档版本,不能丢掉晚到修改。系统程序地形会替换无限地面 plane,避免其填平沟壑、深坑和高度场负高度。
## 10. 导出
@@ -190,4 +197,9 @@ ZIP 内路径保持工程相对结构,并继续执行路径安全校验。
- Undo/Redo 和视口变换写回;
- 只读转换的白名单与整体拒绝;
- 编译或 Viewer attach 失败后的事务回滚;
- 地图 ZIP 资产完整性。
- 地图 ZIP 资产完整性;
- 三类地图来源的统一拖放、场景树和单次提交边界;
- 普通模型重载不提交场景草稿,应用失败后草稿仍可放弃或重试;
- 工程地图实例物理/视觉/出生点变换一致;
- 首个认证资产临时场景的完整放弃;
- 认证资产在程序地形上的重力落位,以及坑洞不被无限平面填平。