4. 创建与保存第一个USD场景
好,咱们正式开始动手了。
前面几章聊了不少概念,什么USD的组成啊,Stage的层级啊。说实话,光看理论容易犯困。我个人习惯是,先跑通一个最简单的流程,把整个链路走一遍,心里就有底了。
这一章的目标很单纯:在Isaac Sim里新建一个Stage,往里面扔几个基本形状,然后保存成USD文件。就这么三步,但每一步都有值得注意的细节。
4.1 新建Stage:从空白画布开始
打开Isaac Sim,你会看到一个默认的启动场景。那个场景里通常已经有一些东西了——地面、灯光、甚至一个默认的机器人模型。但咱们要的是“干净”的起点。
新建Stage的操作路径:
- 点击菜单栏 File → New Stage。
- 或者直接按快捷键 Ctrl + N(Windows/Linux) / Cmd + N(macOS)。
- 在弹出的确认框里点 Yes,确认丢弃当前场景。
这时候,你会看到一个灰白色的视口,里面什么都没有。嗯,这才是咱们想要的“白纸”。
不过要注意,新建Stage并不会自动创建默认的坐标系和地面。你看到的那个灰白色背景,其实是空的物理空间。后面咱们添加图元时,它们会默认出现在世界坐标系的原点 (0,0,0)。
F 键(Frame Selection)重置一下相机视角,确保你能看到原点附近的东西。
4.2 添加基本图元:立方体、球体、圆柱体
Stage建好了,接下来往里放东西。Isaac Sim提供了几种基本图元(Primitives),说白了就是几何体——立方体、球体、圆柱体、圆锥体、平面等等。这些是搭建复杂场景的积木块。
添加图元的方法:
- 点击菜单栏 Create → Shape,然后选择你想要的形状。
- 或者,在 Stage 面板(通常在左侧)的空白处右键,选择 Create → Shape。
- 更快的办法:直接用快捷键。比如,Ctrl + Shift + C 可以快速创建一个立方体(Cube)。
咱们来添加三个最常用的图元:
| 图元名称 | 菜单路径 | 默认大小 | 常见用途 |
|---|---|---|---|
| 立方体 (Cube) | Create → Shape → Cube | 1m × 1m × 1m | 基础碰撞体、墙壁、箱子 |
| 球体 (Sphere) | Create → Shape → Sphere | 半径 0.5m | 滚动物体、关节连接件 |
| 圆柱体 (Cylinder) | Create → Shape → Cylinder | 半径 0.5m,高 1m | 轮子、轴、柱子 |
添加之后,你会看到视口里出现了对应的形状。同时,Stage 面板里也会多出对应的条目,比如 /World/Cube、/World/Sphere、/World/Cylinder。这个 /World 就是默认的根Prim,所有新添加的图元都会挂在它下面。
Xform:translate 改成 (2, 0, 0),它就会向右移动2米。
你想想看,就这么几个基本形状,组合起来就能搭出很多复杂的结构了。我在做物流仓储仿真时,经常用立方体堆成货架,用圆柱体做传送滚筒,用球体模拟包裹。说白了,万变不离其宗。
4.3 保存为USD文件:选对格式很重要
场景搭好了,得存下来。Isaac Sim支持多种USD格式,但最常用的是两种:.usd 和 .usda。
保存操作很简单:
- 点击菜单栏 File → Save As...。
- 或者按快捷键 Ctrl + Shift + S。
- 在弹出的对话框里,选择保存路径,输入文件名,然后选择文件格式。
这里我重点说一下格式选择的问题:
| 格式 | 扩展名 | 特点 | 我推荐的使用场景 |
|---|---|---|---|
| 二进制USD | .usd | 文件小,加载快,不可读 | 最终交付、大型场景、生产环境 |
| 文本USD | .usda | 文件大,加载慢,可读可编辑 | 开发调试、版本控制、教学演示 |
| USDZ | .usdz | 压缩包格式,用于移动端/AR | 跨平台分享、Apple生态系统 |
保存时,还有一个选项叫 “Flatten”(展平)。这个选项默认是关闭的。如果勾选,它会把所有引用(References)和图层(Layers)合并成一个文件。对于咱们现在这个简单场景,没有外部引用,展不展平没区别。但后面做复杂项目时,这个选项要慎用——展平后,你就失去了分层编辑的灵活性。
4.4 核心流程总结:一张图看懂
为了让你对整个流程有个直观的印象,我画了一张流程图。它把新建Stage、添加图元、保存文件这三个步骤串了起来,同时也标出了每个环节的关键决策点。
4.5 避坑指南:新手最容易犯的三个错误
最后,我总结几个新手阶段最容易遇到的问题。这些都是我亲眼见过、甚至自己犯过的错。
-
错误一:忘记保存就关闭Isaac Sim。
听起来很蠢对吧?但真的会发生。特别是你同时开了好几个窗口,或者临时被叫去开会,回来顺手就把窗口关了。嗯,Isaac Sim不会自动保存,也不会在关闭时提醒你。所以,养成随手按 Ctrl+S 的习惯。 -
错误二:保存路径包含中文字符或空格。
USD的底层库在某些操作系统上对中文路径支持不太好。我曾经把项目保存在“桌面/仿真项目”文件夹里,结果加载时一直报错,折腾了半天才发现是路径问题。建议:所有路径都用英文,用下划线代替空格。 -
错误三:在Stage面板里误删了 /World 根节点。
如果你不小心把/World这个Prim删了,你会发现所有图元都消失了,而且新建图元也加不进去。解决办法:在Stage面板空白处右键,选择 Create → Xform,手动创建一个根节点,命名为World。但说实话,不如直接新建Stage来得快。
好了,到这一步,你已经成功创建了人生中第一个USD场景。虽然只是几个简单的几何体,但整个流程——新建、添加、保存——和后面做复杂项目是完全一样的。说白了,地基打牢了,盖多高的楼都不怕。