大多数浏览器和
Developer App 均支持流媒体播放。
-
认识 Reality Composer Pro
了解如何使用 Reality Composer Pro 轻松创作、编辑和预览 3D 内容。跟随我们,通过创建新项目、组合场景、添加粒子发射器和音频,甚至在设备上预览内容来探索这款开发者工具。熟悉 Reality Composer Pro 的基础知识后,你还可以查看“探索 Reality Composer Pro 中的材料”和“在 Xcode 中使用 Reality Composer Pro 内容”,了解更多高级技术和技巧。
章节
- 0:00 - Introduction
- 1:15 - Project setup
- 2:47 - UI navigation
- 4:08 - Composing scenes
- 7:08 - Particle emitters
- 13:23 - Audio authoring
- 17:39 - Statistics
- 19:26 - On-device preview
- 19:59 - Wrap-up
资源
相关视频
WWDC23
- 为空间计算制作精彩的游戏
- 使用 RealityKit 增强你的空间计算 App
- 使用 RealityKit 构建空间体验
- 使用 Xcode 中的 Reality Composer Pro 内容
- 升级 ARKit App, 纵享空间体验
- 开发你的第一款沉浸式 App
- 开始构建用于空间计算的 App
- 探索 Reality Composer Pro 中的材质
- 探索 USD 生态系统
- 认识 iOS 上的 Object Capture
- 认识 RealityKit Trace
WWDC22
WWDC21
-
下载
♪ 悦耳的器乐嘻哈 ♪ ♪ Eric Chiu:大家好 我是 Eric 今天我将带着大家了解一下 Reality Composer Pro 你可能还记得 2019 年时 我们发布了 Reality Composer 让你初步体验了增强现实的功能 现在 随着 xrOS 的发布 我们将推出 Reality Composer Pro 一款更专业的开发者工具 可帮助你 撰写、编辑和预览 3D 内容 使用 Reality Composer Pro 我们可以创造 身临其境的 3D 体验 举个例子 我们试试这个名为 Dioramas 的交互式 App 我们可以在房间里 参观奇妙的国家公园 以及其他有趣的地方 在本场中讲座 我们将介绍 Reality Composer Pro 各种功能 利用这些功能就能构建眼前的场景 下面 我们从新建项目开始 然后讲解 Reality Composer Pro 的 通用 UI 使用 3D 地形构建 主场景和定位销 最后在场景中添加一些云彩 也可以添加正在几只鸣叫的小鸟 我们将利用统计数据优化性能 最后查看 场景的设备预览图 让我们开始吧 首先 新建项目 这里有两种设置方法 第一种方法是依次选择 Xcode > Open Developer Tool 由此打开 Reality Composer Pro 若想创建一个独立的 Reality Composer Pro 项目 这是优选做法 另一种方法是 创建一个新的 Xcode 项目 使用 xrOS App 模板 模板会自动生成一个 Reality Composer Pro 项目 并将其链接到 Xcode 项目 若你想在 Xcode App 中 使用 Reality Composer Pro 项目 推荐此方法 我们将以这种方式 构建我们的 Dioramas App
Reality Composer Pro 项目 使用的是这个 Swift 包 Swift 包不仅让 Reality Composer Pro 的使用 变得简单 而且在构建过程中 它将内容打包到一个框架中 供我们的 Xcode App 使用 让我们来看一下 访达中 Reality Composer Pro 项目的结构 请注意 我们编辑 3D 内容的 文件格式是 USD 类 也称为通用场景描述 这是 Apple 首选的 3D 内容文件格式 若想进一步了解更多信息 请查看以下列出的 关于 USD 文件格式的 WWDC 讲座 组织文件时 放在 .rkassets 文件夹中的所有 USD 文件 都会被编译成一个框架 这个框架可以在 我们的 Xcode 项目中使用 回到 Xcode 如果我们选择包 将出现默认场景的 3D 预览 如果我们想进一步审视或编辑场景 需要做的就是在 Reality Composer Pro 中点击 Open 现在让我们看看如何浏览 Reality Composer Pro 并了解 UI 在中心 有一个视口 视口让我们能够可视化、浏览 并预览场景中的 3D 对象 支持使用 W、A、S、D 键 在视口中移动 当然 箭头方向键也可以 如果我们想要进一步控制视口 还可以插入 Mac 兼容的 游戏控制器 并以这种方式穿过视口
界面左侧是层次面板 层次面板让搜索、选择 并组织场景中的 3D 对象 变得更加简单 界面右侧有检查面板 检查面板提供了一种方法 让编辑所选对象属性的操作 如位置、旋转和缩放变得更加简单
检查面板底部的 Add Component 按钮 让我们能够查看 可以在对象上配置的 内置 RealityKit 组件 编辑面板在最下方 编辑面板上的第一个选项卡是 项目浏览器 项目浏览器是一种浏览 Reality Composer Pro 项目内文件的 用户友好的方式 该面板还包含其他 用于高级编辑的选项卡: Shader Graph、Audio Mixer 和 Statistics 现在我们新建了 Reality Composer Pro 项目 并了解 UI 的位置 现在 我们开始构建场景 在 Reality Composer Pro 项目中 添加资源的方式有三种 第一种是将资源导入到计算机 已经存在的项目浏览器中 我们导入计划用于 Dioramas App 的资源 点击项目浏览器中的导入按钮 即可完成这一操作
完成!现在所有资源就 都在项目浏览器中了 第二种是内容库 这是一个由 Reality Composer Pro 提供的 精选资产库
第三种是物体捕捉 可以将现实世界物体的照片 转换为 3D 模型 若想进一步了解更多信息 请查看 “走近 iOS 的物体捕捉” WWDC 会议 现在我们已将资源导入到项目当中 接下来开始构建场景 首先我们删除模板创建的球体 在视口中选择物体 点击删除即可 在项目浏览器中 我们有一个 Yosemite 的 3D 模型 还有一个用于固定的立体模型底座 将这两个资源拖动到层次面板中 在场景中添加对这些资源的引用 立体模型底座 好像暂时没有构成材料 让我们看看内容库中 是否有可以采用的材料 点击工具栏中的加号按钮 打开内容库 并寻找可能适用的材料 这种混凝土材料看起来很不错 将其拖动到我们的场景中 该资源会自动导入到我们的项目中 并在场景中生成引用 现在 让我们在层次结构中 为立体模型底座选择材料 并更新应用混凝土材料
完成!接下来 我们来放置定位销 将定位销拖放到视口中 将其放置在 El Capitan 上
然后将定位销再复制两次 使用 Command-D 并重命名三个定位销为 El Capitan 教堂岩和默塞德河 移动教堂岩和默塞德河的定位销 到正确的地点
现在定位销全放在了正确的位置 为了结构清晰 我们将定位销分组 并将该组重命名 “Yosemite_Location_Pins”
如果我们想将更新定位销 又该怎么做呢? 所有定位销都引用了 我们之前导入的定位销文件 借助 USD 的帮助 如果我们想更新定位销资源 可以将新的定位销资源导入到项目中 以替换现有的定位销
现在让我们速览一下粒子发射器 粒子发射器可以创建一些特殊效果 比如场景中的火焰 粒子发射器由两部分组成: 粒子和发射器 粒子和发射器都有多个部分的 变量需要调整和修改 粒子中有颜色、属性、 力场和渲染部分 在发射器中 有时间、形状和生成部分 现在我们使用粒子发射器添加一些云 让这个场景更加生动有趣 该怎么做呢? 我们的 Reality Composer Pro 项目 可以包含任意数量的场景 场景既可以表示可在 Xcode App 使用的成品 也可以表示可复用的内容 在这种情况下 云是由更小的云组成的 我们先构建一个可复用的云块场景
然后在 3D 空间中的不同位置 组合多个云块 最终构建一个完整的云场景 我们将制作三种不同的 完整云变体 最后将这三朵云放入主场景中 回到 Reality Composer Pro 现在 依次点击 File > New > Scene 创建一个新场景 并将其命名为“Cloud_Chunk” 创建一个新场景时 它会在窗口中显示为新选项卡 有两种方法可以将 粒子发射器添加到场景中 第一种是通过 层次面板底部的加号按钮 第二种是点击 Add Component 按钮 为场景中的任意物体 添加粒子发射器组件 该按钮在检查面板的底部 我们可以通过播放控件 预览粒子发射器 该控件在检查面板靠近顶部的位置 有点不清晰 我们可以打开 Settings 更改视口背景 让粒子发射器更明显一些
现在好多了 粒子玩起来真的很有趣 我经常通过到处试验各种属性 来得到我想要的结果 制作粒子发射器时 没有正确或错误的方法之分 只要能达到你满意的效果就好 但需要考虑的是 场景中粒子数量较多 可能会对性能产生影响 所以我建议密切关注 使用的粒子数量 粒子发射器组件有两个部分: 粒子和发射器 在粒子部分 我们可以控制单个粒子的外观 在发射器部分 我们可以控制粒子离开原位置 还有一些预设供我们作为构建基础 所以我们不必从头开始 云最接近 Impact 预设 因此 我们以 Impact 预设为开始 我的常规工作流程是 先设置 Emitters 标签页 然后再设置 Particles 标签页 在 Emitter 标签页中 Timing 是第一部分 粒子的每次发射之间 都有细微的停顿 这是 idle duration 变量造成的 将其设置为零时 则会不断发射粒子 接下来看 Shape 部分 云的形状更像是球形而不是圆柱形 所以让我们将发射器形状 切换为 Sphere 接下来 云体内应该有粒子 所以应将诞生位置 从 Surface 更改为 Volume 云也往往扁平 不会很高 所以我们调整一下 x 轴和 z 轴刻度 使其大于 y 轴刻度
效果不错 最后我们应该检查一下 isLocalSpace 以便将来在粒子发射器的父元素上 进行平移、旋转和缩放 这也适用于粒子发射器本身 现在来看 Particles 标签页 我们将在此调整各个粒子的外观 产生率定义了 同时存在的粒子数量 注意看呈现效果 现在我们将其从 2000 减少到 500 看看是否有影响 云的外观有了些许变化 但看起来仍然不错 所以我们将数值保持在 500 由于使用了 Impact 预设 颗粒的颜色和纹理 已经是我们想要的效果了 所以我们跳过修改这些部分的变量 直接设置 Properties 部分 现在粒子存在的时间好像太短了 我们将粒子寿命从两秒延长到五秒 看看会发生什么
效果不错 在运动、力场和渲染部分中 还有更多的变量可以使用 但目前得到的效果 已经接近理想状态了 所以我们暂不修改这些部分 使用快捷键 Command-S 保存场景 并继续下一步 不错!我们刚刚构建了 可以复用的云块 现在让我们创建一个新场景 组合多个云块 形成一朵完整的云 使用快捷键 Command-N 创建新场景 并将此场景命名为“Cloud_A”
我将引用云块三次 将 Cloud_Chunk 资源 从项目浏览器中 拖动到层次面板中
我们可以选择这三个云块的父级 然后点击检查面板顶部的 播放控件中的 play 预览云的效果 现在让我们使用操纵器 来移动这三个云块 到 3D 空间中的不同位置
不错! 这是一朵有凝聚紧密且完整的云 我们可以再次使用 Command-S 保存场景 为了形成多种多样的云彩 我用类似的过程又制作了两朵云 但云块的位置与 Cloud_A 不同 我将这些场景分别命名为 Cloud_B 和 Cloud_C 现在回到主场景 我创建一个名为“Clouds”的组 并导入了该组内的 Cloud_A、Cloud_B 和 Cloud_C 接着将这些云精心排布在场景中 要想即刻预览粒子发射器 我要做的就是点击“Clouds”组 然后在检查面板的顶部 点击播放控件上的 play 真不错 所有元素都布置上去了 接下来我们来看看如何将音频 加入我们的场景 我们可以通过音频文件、 音频文件组和音频源添加音频 从项目浏览器导入场景的音频文件 可以通过多种方式进行配置 比如设置是否循环播放 音频文件可以在 一个或多个对象上播放 一个对象可以播放 一个或多个音频文件
音频文件组可以由 场景中的音频文件构成 每次对象播放一个音频文件组时 便从该组中选择 一个音频文件随机进行播放
音频源定义了音频文件和 音频文件组在场景中发声的方式 音频源分为三种: 空间、环境和通道 空间音频为音频播放提供了 3D 空间中的位置和方向 想象一下将空间音频用于 放在桌上的电台资源是什么效果 环境音频源不提供位置 而是提供 3D 空间中 音频播放的方向 想象一下使用环境音频播放 来自东方的风声 无论我们向东走多远 风声总是从那个方向传来 最后 通道音频源既不提供位置 也不提供音频播放的 3D 空间方向 想象一下使用通道音频作为环境的 背景音乐是什么效果 介绍完音频创作的概念 让我们看看它在 Dioramas 项目中的实际应用 创建作为可复用资源的新场景 其中包含鸟类的 3D 模型 并带有音频文件和音频源 按下 Command-N 将此场景 命名为“Bird_With_Audio”
我们之前导入一只带动画效果的鸟和 两个鸟叫声音频文件到项目浏览器 现在将这些资源拖到层次结构面板 将其作为引用添加到该场景中 现在场景中的所有音频源 都可以使用这两个鸟叫声音频文件 接下来使用层次面板底部的加号按钮 添加一个空间音频源 我们还可以为场景中的任何物体 添加空间音频源 在检查面板的底部 点击 Add Component 按钮 并在菜单中选择空间音频 空间音频源可以提供位置和方向 所以我们应该把它放在鸟喙附近 这样听起来更逼真
我们可以使用 检查面板顶部的播放控件 预览空间音频源
空间音频组件还有其他 可以调整的属性 例如聚焦和 要预览的鸟鸣音频文件
现在 如果我们想在每次播放 空间音频源时随机选择 鸟类两种叫声中的一种 音频文件组就要派上用场了 我们可以使用 层次面板底部的加号按钮 创建音频文件组 将这些音频文件拖动到音频文件组 并将该组命名为“Bird_Calls”
于是每次我们预览空间音频源时 音频文件组中的不同鸟鸣声 就会随机播放
现在已经完成了可复用资源的制作 让我们保存并关闭 Bird_With_Audio 场景 并打开主场景 我将 Birds_With_Audio 的五个引用 以 V 型模式排列在 一个名为“Birds”的组中 选择“Birds”组 并点击检查面板中的播放控件 同时预览所有鸟类 动画和音频 视觉和听觉效果都很不错! 按照相同的流程 我将 Forest_Sounds 音频文件 添加到主场景中 同时加入一个名为 “Nature _Ambience”的环境音频源 在 Xcode App 中播放音频 需要额外添加一些代码 该部分内容详见 “在 Xcode 中使用 Reality Composer Pro 内容”WWDC 讲座 现在我们已经设置好了 主场景中的内容 接下来我将介绍如何使用统计功能 统计是一个专门的编辑器 能帮助我们优化一个场景的表现 其有多个类别 包括常规、物理、 动画、粒子发射器、音频、材料、 几何形状和纹理 让我们在主场景中尝试一下统计 点击编辑面板中的 Statistics 标签页 就会出现类别专题 展开按钮 在每个类别的右上角 打开类别 可以查看更详细的视图 点击 Geometry 的展开按钮 可以看到场景中大约使用了 464,000 个三角形 而 Diorama_Base 使用的三角形数量最多 足有 256,000 个 我们在这里有了新的发现 立体模型底座使用的三角形 比 3D 地形还要多 尽管其视觉上看并没有地形复杂 这是一个简化 3D 建模软件中 立体模型底座几何构造的好机会 幸运的是 我的同事 Scott Wade 即负责为 Dioramas App 创建资源的人 在这方面给了我一些帮助 我们可以使用项目浏览器的导入按钮 将简化版本的立体模型底座 导入到项目中 选择新的 Diorama_Base 替换现有的底座 现在让我们回到统计 并查看几何类别
Diorama_Base 现在 仅使用 2,500 个三角形 我们成功减少了场景中三角形数量 从 464,000 到 210,000 减少了超过一半! 但与改变之前相比 场景外观没有发生任何变化 正如我们刚才所看到的 统计是一个很棒的工具 这能够帮助优化场景的性能 还有一件事 让我们看看如何在设备上预览场景 当我们将耳机连接到电脑时 在工具栏中设备预览图按钮旁边的 下拉菜单中选择耳机 然后点击设备预览图按钮 这样应该就可以在 AR 中 看到场景出现在我们眼前 我们可以选中并拖动来旋转场景
还可以缩放场景 这样 我们就可以很容易了解 我们的 3D 内容在 xrOS 平台中 会呈现出什么样子 为了节省时间 本次讲座中 我为另一个国家公园 卡特琳娜岛 进行了类似的步骤 通过相同的流程 我又添加了 一个卡特琳娜岛的 3D 地形 到我们的主场景中 我还添加了一些定位销 标记了两个港口 帕森斯码头和卡特琳娜岛丝带海滩 最后 我添加了一个 Ocean_Sounds 音频文件 供 Nature_Ambience 音频源使用 你今天看到的是一个 Reality Composer Pro 的演示操作 这是一款能帮助你 组装 3D 场景的强大工具 你可以借助它添加有趣的 RealityKit 组件 例如粒子发射器和音频源 它还可以帮助你优化场景 并在耳机上进行预览 若想进一步了解更多关于 如何使用 Shader Graph 在 Yosemite 和 卡塔琳娜岛地形图之间进行过渡 请观看 Neil 的讲座 “探索 Reality Composer Pro 中的材料” 在 Amanda 的讲座上 你还可以了解 如何使这种体验具有交互性 详见“在 Xcode 中使用 Reality Composer Pro 内容” 我很期待看到你使用 Reality Composer Pro 构建的内容 希望你喜欢本次讲座 感谢你的观看! ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。