Skip to content

Latest commit

 

History

History
221 lines (192 loc) · 17 KB

File metadata and controls

221 lines (192 loc) · 17 KB

MuJoCo 场景编辑器 - 操作指南

欢迎使用 MuJoCo 场景编辑器!这是一个可视化工具,旨在帮助您轻松创建和编辑 MuJoCo 物理引擎所需的场景文件(MJCF/XML格式)。

1. 创建几何体

  • 方法: 在左侧的 "控制面板" 中找到 "创建几何体" 部分。这里列出了各种基础几何体类型(如立方体、球体、圆柱体等)。
  • 操作:
    1. 将鼠标指针悬停在您想创建的几何体按钮上(例如,"立方体")。
    2. 按住鼠标左键。
    3. 将鼠标拖拽到主窗口中间的 3D 视图 区域。
    4. 松开鼠标左键,几何体将被放置在鼠标指针指示的位置。
  • 提示: 新创建的几何体将自动被选中。

2. 属性面板:查看与编辑

当您选中一个几何体(通过在 3D 视图中点击或在左侧 "层级结构" 树中点击)后,右侧的 "属性" 面板将显示该对象的详细信息。

  • 查看属性: 属性面板会显示对象的名称、类型、可见性、变换(位置、旋转、尺寸/缩放)以及材质(颜色、透明度)等信息。
  • 编辑属性:
    • 名称 (Name): 直接在文本框中输入新名称,按 Enter 或鼠标点击别处确认。
    • 可见性 (Visible): 勾选或取消勾选 "可见" 复选框来显示或隐藏对象。
    • 位置 (Position): 分别修改 X、Y、Z 输入框中的数值。
    • 旋转 (Rotation): 分别修改 X、Y、Z 输入框中的数值(单位:度)。
    • 尺寸/缩放 (Scale/Size):
      • 对于立方体 (Box)椭球体 (Ellipsoid),分别修改 X、Y、Z 轴的尺寸。
      • 对于球体 (Sphere),修改"半径 (Radius)"值。
      • 对于圆柱体 (Cylinder)胶囊体 (Capsule),修改"半径 (Radius)"和"长度 (Length)"值。
      • 平面 (Plane) 的尺寸通常不可直接编辑。
    • 颜色 (Color): 点击"选择 (Select)"按钮打开颜色选择器,选择新颜色。旁边的色块会显示当前颜色。
    • 透明度 (Opacity): 调整输入框的值(0.0 完全透明,1.0 完全不透明)。修改颜色时也可以调整 Alpha 通道。
  • 实时更新: 对属性的修改会实时反映在 3D 视图中。

3. 变换工具:移动、旋转与缩放

编辑器提供了直观的 3D 控制器(Gizmo)来操作选中的对象。

  • 选择操作模式:
    • 在左侧 "控制面板""操作模式" 部分,选择您想要执行的操作:
      • 观察 (Observe): 默认模式,用于导航场景(旋转、平移、缩放视图),不操作对象。
      • 平移 (Translate): 移动选中的对象。
      • 旋转 (Rotate): 旋转选中的对象。
      • 缩放 (Scale): 调整选中对象的大小。
  • 使用 Gizmo:
    • 当选中一个对象并选择了平移、旋转或缩放模式后,该对象中心会出现一个 Gizmo。
    • Gizmo 通常由红、绿、蓝三个轴组成,分别代表 X、Y、Z 轴。
    • 平移: 点击并拖动 Gizmo 的轴体,平行拖动,沿对应轴向移动对象。
    • 旋转: 点击并拖动 Gizmo 的轴体,垂直拖动,绕对应轴旋转对象。
    • 缩放: 点击并拖动 Gizmo 的方块(或箭头末端),沿对应轴缩放对象。
    • 当鼠标选中某个轴上时,该轴会高亮显示。
  • 全局与局部坐标系:
    • 切换:
      • 点击 "控制面板" > "操作模式" 下方的 "局部坐标系"/"全局坐标系" 按钮。
      • 或者,在 3D 视图获得焦点时,按 空格键 (Spacebar) 进行切换。
    • 区别:
      • 局部坐标系 (Local): Gizmo 的轴向会跟随对象自身的旋转方向。拖动 X 轴会沿着对象自己的 X 方向移动/旋转/缩放。
      • 全局坐标系 (Global): Gizmo 的轴向始终与世界坐标系对齐(通常 X 红、Y 绿、Z 蓝)。拖动 X 轴会沿着世界的 X 方向移动/旋转/缩放。

4. 层级结构管理 (详细)

左侧的 "层级结构 (Hierarchy)" 面板以树状视图展示了场景中所有对象的父子关系。这是组织复杂场景的关键。

  • 理解层级:
    • 父节点 (Parent): 通常是一个 组 (Group),可以包含其他对象(子节点)。父节点的变换(移动、旋转)会影响其所有子节点。
    • 子节点 (Child): 隶属于某个父节点的对象。子节点的坐标和旋转是相对于其父节点的。
    • 顶层节点 (Top-level): 没有父节点的对象,直接位于场景的根层级。
    • 缩进: 子节点会相对于其父节点向右缩进显示,清晰地表示层级关系。
  • 查看与选择:
    • 点击树中的项(对象名称)来选择对应的对象。3D 视图和属性面板会同步更新。
    • 展开/折叠组: 点击组节点名称旁边的 (展开) 或 ▼ (折叠) 符号,可以显示或隐藏其子对象。
    • 多选: 按住键盘上的 Ctrl 键,然后依次点击多个对象名称,可以选择多个对象。
  • 创建对象 (通过层级树):
    • 创建顶层对象: 在层级树面板的空白区域右键点击,选择 "新建 (New)",然后选择要创建的类型(组 (Group) 或具体的几何体如立方体 (Box) 等)。
    • 创建子对象: 在一个组节点上右键点击,选择 "新建子对象 (New Child)",然后选择要创建的类型。新对象将自动成为该组的子节点。
  • 组合对象 (Grouping):
    1. 使用 Ctrl+点击 选择两个或多个想要组合的对象。
    2. 任意一个被选中的对象上右键点击。
    3. 选择 "组合到新组 (Group into New Group)"
    4. 编辑器会自动创建一个新的组,并将所有选中的对象移动到这个新组下面,成为其子节点。新创建的组会被自动选中。
  • 修改层级 (Reparenting - 拖放):
    1. 在层级树中,用鼠标左键点击并按住您想要移动的对象(或已选中的多个对象)。
    2. 拖拽这个对象:
      • 拖到另一个组节点上: 当目标组节点高亮显示时松开鼠标,被拖拽的对象将成为该组的新子节点。
      • 拖到一个非组几何体上: 当目标几何体高亮时松开鼠标,编辑器会自动创建一个新组,并将被拖拽的对象目标几何体都放入这个新组中。
      • 拖到层级树的空白区域: 松开鼠标,被拖拽的对象将移动到场景的顶层,不再有父节点。
    3. 注意: 不能将一个对象拖拽到它自己的子节点下(避免循环依赖)。
  • 复制与粘贴:
    1. 复制:
      • 选中一个或多个对象。
      • 右键点击选中的对象 -> 选择 "复制 (Copy)""复制选中项 (Copy Selected)"
      • 或者使用快捷键 Ctrl+C。对象及其层级结构(如果是组)会被复制到剪贴板。
    2. 粘贴:
      • 粘贴为子对象: 在目标组节点上右键点击 -> 选择 "粘贴到这个组 (Paste into this group)"
      • 粘贴到顶层: 在层级树的空白区域右键点击 -> 选择 "粘贴 (Paste)"
      • 或者使用快捷键 Ctrl+V (通常粘贴到顶层或当前选中的组下,具体行为可能依应用设定)。
      • 粘贴的对象名称会自动添加 "_copy" 后缀以区分。如果粘贴的是组,其下的子对象也会被一并复制过来。
  • 删除:
    • 选中一个或多个对象。
    • 按键盘上的 Delete 键。
    • 或者,右键点击选中的对象 -> 选择 "删除 (Delete)""删除选中项 (Delete Selected)"。如果删除的是组,其所有子对象也会被一并删除。
  • 重命名:
    • 单个对象上右键点击 -> 选择 "重命名 (Rename)",然后输入新名称并按 Enter。
    • 或者,选中对象后,在右侧的属性面板中修改其 "名称 (Name)" 字段。

5. 主菜单栏功能 (Main Menu Bar)

位于应用程序窗口最上方的是主菜单栏,包含以下菜单:

  • 文件 (File):
    • 新建 (New) (Ctrl+N): 创建一个空的、全新的场景。如果当前场景有未保存的更改,会提示您保存。
    • 打开 (Open)... (Ctrl+O): 从磁盘加载一个现有的 MuJoCo XML 场景文件。
    • 保存 (Save) (Ctrl+S): 将当前场景保存到当前打开的文件。如果是新场景或未保存过的文件,则行为同"另存为"。
    • 另存为 (Save As)... (Shift+Ctrl+S): 将当前场景以新的文件名或路径保存为 MuJoCo XML 文件。
    • 退出 (Exit) (Ctrl+Q): 关闭编辑器。如果当前场景有未保存的更改,会提示您保存。
  • 编辑 (Edit):
    • 撤销 (Undo) (Ctrl+Z): 撤销上一步执行的操作(如移动、创建、删除、修改属性等)。只有在有可撤销的操作时才可用。
    • 重做 (Redo) (Ctrl+Y / Shift+Ctrl+Z): 恢复上一步被撤销的操作。只有在执行过撤销操作后才可用。
    • 复制 (Copy) (Ctrl+C): 复制当前选中的对象(或多个对象)到剪贴板,以便之后粘贴。
    • 粘贴 (Paste) (Ctrl+V): 将剪贴板中的对象粘贴到场景中(通常是顶层或当前选中的组下)。
    • 删除 (Delete) (Delete 键): 删除当前选中的对象。
  • 视图 (View):
    • 重置视图 (Reset View): 将 3D 视图的摄像机恢复到默认位置和角度,并确保所有面板(层级、控制、属性)都可见且回到默认布局位置。
  • 帮助 (Help):
    • 关于 (About): 显示关于编辑器的信息对话框,如版本号和简要描述。

6. 撤销与重做

  • 编辑器会自动记录您的操作(如创建、删除、移动、旋转、缩放、属性修改、层级变更等),保存在临时的历史记录中。
  • 使用菜单栏 "编辑 (Edit)" -> "撤销 (Undo)" (快捷键 Ctrl+Z) 可以回退到上一步操作状态。
  • 使用菜单栏 "编辑 (Edit)" -> "重做 (Redo)" (快捷键 Ctrl+YCtrl+Shift+Z) 可以恢复被撤销的操作状态。
  • 注意:
    • 进行新的操作后,之前的"重做"历史将被清除。
    • 关闭应用程序时,这些临时的撤销/重做历史记录会被清空

7. 存档管理 (Save Management)

除了使用"文件"菜单保存为标准的 MuJoCo XML 文件外,您还可以创建和加载场景的临时存档点。这对于快速保存工作进度或回滚到某个特定状态非常有用。

  • 位置: 该功能位于左侧 "控制面板" 的底部,名为 "存档管理"
  • 创建存档点 (Create Save Point):
    • 点击 "创建存档点" 按钮。
    • 编辑器会将当前场景的所有对象及其属性保存到一个以时间戳命名JSON 文件中。
    • 这些 JSON 文件存储在项目目录下的 save 文件夹内。
    • 这是一种快速保存当前状态的方式,不同于保存为最终的 XML 文件。
  • 查看存档 (View Saves):
    • 点击 "查看存档" 按钮。
    • 会弹出一个名为 "最近存档 (Recent Saves)" 的对话框。
    • 该对话框会列出 save 文件夹中最近创建的几个 JSON 存档文件,并显示存档名称(时间戳)、保存时间和包含的几何体数量。
    • 加载存档:
      1. 在列表中单击选择一个存档文件。
      2. 点击对话框底部的 "加载 (Load)" 按钮。
      3. 或者,直接双击列表中的存档文件。
      4. 编辑器会读取选中的 JSON 文件,并将场景恢复到该存档点保存的状态。
      5. 注意: 加载存档会覆盖当前场景内容,且此操作本身不可撤销 (Undo)。建议在加载前确认是否需要保存当前工作。
  • 与撤销/重做的区别:
    • 存档点 (Save Points): 是用户手动创建的、持久化的场景状态快照(JSON 文件),即使关闭再打开编辑器,这些文件通常仍然存在(除非手动删除 save 文件夹)。它们用于在较大的时间跨度上恢复场景。
    • 撤销/重做 (Undo/Redo): 是临时的、基于操作的历史记录,存储在内存或临时的历史文件中 (save/history)。它们用于回退或恢复最近的几步操作,关闭程序后会被清除。

8. 操作示例 (详细流程)

让我们通过一个更完整的例子来熟悉编辑器的各项功能:

  1. 创建地面和立方体:

    • 控制面板 > 创建几何体 中拖拽一个 "平面 (Plane)" 作地面 "Ground"。调整其颜色和大小(例如,X=5, Y=5)。
    • 拖拽一个 "立方体 (Box)" 作 "MyCube",放在地面上,颜色设为红色。
  2. 旋转立方体:

    • 选中 "MyCube"。
    • 控制面板 > 操作模式 中选择 "旋转 (Rotate)"
    • 确保坐标系模式为 "局部坐标系 (Local)" (按空格键或点击按钮切换)。
    • 使用 Gizmo 绕其自身 Y 轴旋转约 45 度。
  3. 创建球体:

    • 拖拽 "球体 (Sphere)" 作 "MySphere",设为蓝色,放在立方体旁边。
  4. 组合对象:

    • 层级结构 面板中,按住 Ctrl 键,点击 "MyCube" 和 "MySphere" 以同时选中它们。
    • 在选中的任一对象上右键点击 -> 选择 "组合到新组 (Group into New Group)"
    • 现在层级树看起来像:
      Ground
      New Group
        ▶ MyCube
        ▶ MySphere
      
  5. 修改组的属性:

    • 确保 "New Group" 处于选中状态。
    • 属性 面板中,找到 位置 (Position)。将 Y 值修改为 0.5,使整个组(包括立方体和球体)向上移动一点。
  6. 操作组 (局部坐标系):

    • 将"ShapeGroup"置于一个新的旋转组"Rotation"中,保持 "New Group" 选中。
    • 控制面板 切换到 "旋转 (Rotate)" 模式,并确保是 "局部坐标系 (Local)"
    • 使用 Gizmo 绕组的局部 Z 轴 (蓝色轴) 旋转约 30 度。观察立方体和球体都围绕组的中心旋转了。
    • 切换到 "平移 (Translate)" 模式,保持 "局部坐标系 (Local)"
    • 观察 Gizmo 轴向,它们现在是倾斜的,与组的旋转对齐。
    • 沿着组的局部 X 轴 (倾斜的红色轴) 拖动,将组及其内容沿这个倾斜方向移动。
  7. 操作组 (全局坐标系):

    • 保持 "New Group" 选中和 "平移 (Translate)" 模式。
    • 空格键 或点击按钮切换到 "全局坐标系 (Global)"
    • 观察 Gizmo 轴向恢复到与世界坐标系对齐。
    • 沿着全局 Y 轴 (绿色轴) 向上拖动,将组及其内容垂直向上移动。
    • 沿着全局 Z 轴(蓝色轴) 向左右拖动,观察绕轴旋转。
  8. 测试复制与粘贴:

    • 复制组对象: 选中 "New Group",按 Ctrl+C 或右键点击选择 "复制 (Copy)"
    • 粘贴到顶层: 在层级树的空白区域右键点击,选择 "粘贴 (Paste)",或按 Ctrl+V
    • 验证: 一个名为 "New Group_copy" 的新组应该出现在层级树中,它包含了 "MyCube_copy" 和 "MySphere_copy" 两个子对象。
    • 移动复制品: 选中 "New Group_copy",切换到 "平移 (Translate)" 模式,将其移动到原始组旁边的位置,以便区分。
    • 修改复制品: 选中 "MySphere_copy",改变其颜色(例如改为绿色)以便进一步区分原始对象和复制品。
  9. 测试存档与读取:

    • 创建存档点: 在当前状态(例如,所有变换和重做都完成后),点击 控制面板 > 存档管理 > "创建存档点"。记住大概的时间戳。
    • 继续编辑: 选中 "MySphere",切换到 "缩放 (Scale)" 模式,将其稍微放大一点。
    • 加载存档点: 点击 控制面板 > 存档管理 > "查看存档"。在弹出的对话框中,找到刚才创建的那个时间戳的存档,双击它或选中后点击 "加载 (Load)"
    • 验证: 场景应该恢复到您创建存档点时的状态,即 "MySphere" 应该变回原来的大小,组的位置和旋转也回到存档时的状态。加载存档成功。
  10. 最终保存:

    • (可选) 您可以再次进行一些修改。
    • 完成编辑后,点击主菜单栏的 文件 (File) -> 保存 (Save)另存为 (Save As)...,将最终场景保存为 "MySceneFinal.xml"。

这个详细的示例涵盖了创建、修改属性、使用变换工具(包括局部/全局坐标系)、层级管理、组操作、撤销/重做以及存档/读取等核心功能。

【XML编辑器使用演示-哔哩哔哩】 https://b23.tv/WJZMTd1

希望这份指南能帮助您更好地使用 MuJoCo 场景编辑器!