WWDC Quick Look 💓 By SwiftGGTeam
Supercharge your spatial workflows with Reality Composer Pro 3

Supercharge your spatial workflows with Reality Composer Pro 3

观看原视频

Highlight

Reality Composer Pro 3 新增 Animation Graph、Behavior Tree、Script Graph、Compute Graph 和 Navigation Mesh 五大可视化工具,支持在编辑器内完成角色动画混合、自主行为定义、交互逻辑、粒子特效和场景寻路,无需编写代码即可构建完整的空间场景。

核心内容

在 visionOS 开发早期,让一个 NPC 在场景中自主巡逻并响应交互是一个繁琐的过程。开发者需要在 Xcode 中编写大量 Swift 代码:用 RealityKit API 手动控制动画切换,自己实现寻路逻辑,写粒子系统代码,每次修改参数都要重新编译部署到设备。美术和设计师只能提出需求,无法直接参与迭代。

Reality Composer Pro 3 把这些能力全部搬进了可视化编辑器。Animation Graph 用节点连线替代代码来混合动画;Behavior Tree 定义角色的多步骤行为;Script Graph 处理交互事件;Compute Graph 在 GPU 上运行粒子模拟;Navigation Mesh 自动计算可行走路径。所有这些都可以在 Mac 上实时预览,戴上 Vision Pro 后通过 Live Preview 直接在空间中测试。

这个工作流程的改变让非程序员也能参与空间场景的构建。策划可以直接调整 NPC 的巡逻路线,美术可以调节数据的粒子效果,整个迭代过程不需要程序员介入。

详细内容

Animation Graph:动画混合的可视化控制

02:10

Animation Graph 是一个基于节点的动画编辑器,用于控制角色在运行时的动画表现。它支持运动重定向、混合空间、反向运动学等高级功能。

炼金术师角色需要在 idle(待机)和 walk(行走)两种动画间切换。在 Animation Graph 中构建这个状态机需要几个步骤:

  1. 创建一个 State Machine(状态机)节点,连接到 Final Pose 节点
  2. 在状态机内部添加两个 Animation State(动画状态),分别命名为 Idle 和 Walk
  3. 创建 Idle 到 Walk 和 Walk 到 Idle 的转换,并为每个转换添加条件
  4. 在 Inputs Inspector 中添加布尔参数 isWalking,用作转换条件
  5. 为两个动画状态分别连接 Animation Clip 节点,指定对应的动画片段

测试时可以直接在编辑器中切换 isWalking 参数,角色会平滑地在两种动画间过渡。这种可视化调试方式比在代码中设置断点观察动画状态要直观得多。

Behavior Tree:定义自主行为

06:28

Behavior Tree 是 Reality Composer Pro 3 新增的行为编辑器,用于构建多步骤的自主行为。它由两类节点组成:Composite(复合)节点控制流程,Action(动作)节点执行具体任务。

复合节点有三种类型:

  • Sequence(顺序):依次执行子节点,任何一个失败则停止
  • Selector(选择):依次执行子节点,直到有一个成功则停止
  • Parallel(并行):同时执行所有子节点

常用动作节点包括:

  • Move To:移动到指定位置
  • Rotate To Face:转向目标方向
  • Wait:等待指定时间
  • Parameter Setter:修改实体参数

炼金术师的巡逻路线可以这样构建:用一个 Sequence 节点包含 Rotate To Face、Move To 和 Wait 三个动作,再在 Move To 前后添加 Parameter Setter 来控制 isWalking 参数,确保动画和行为同步。

Script Graph:添加交互逻辑

11:14

Script Graph 是一个事件驱动的可视化脚本系统。它响应场景级或实体级的事件,定义实体之间的交互行为。

为了让炼金术师响应点击交互,需要修改 Behavior Tree:在 cauldron(大锅)子序列上添加 Precondition(前置条件),绑定 readyToBrew 布尔参数。这样角色会一直停留在桌子旁,直到这个参数变为 true。

然后在 Script Graph 中:

  1. 添加 On Tap 节点监听点击手势
  2. 添加 Set Entity Parameter 节点
  3. 将参数名设置为 readyToBrew,值设为 true
  4. 连接 On Tap 的事件输出到 Set Entity Parameter

通过 Reality Composer Pro 3 的 Live Preview 功能,可以在 Apple Vision Pro 上直接测试这个交互。点击角色后,它会立即转向大锅开始炼药。

14:52

Navigation Mesh 组件定义场景中可行走的表面。Navigation Controller 使用这个网格来计算角色从一点到另一点的路径,自动避开树木、水洼等障碍物。

Navigation Mesh 配置分为三个部分:

  • Shapes(形状):定义生成网格的边界框
  • Off-Mesh Connections(离网格连接):手动连接不连通的区域,比如爬梯子上屋顶
  • Generation Parameters(生成参数):控制几何采样的精度,如 cell size 越小捕获的细节越多

设置完成后,Behavior Tree、Animation Graph 或自定义 Swift 系统都可以通过 Navigation Component 让角色在场景中自主导航。

Compute Graph:GPU 粒子模拟

17:13

Compute Graph 是一个基于 Metal 的可视化粒子编辑器。它在 GPU 上运行粒子模拟,完整控制粒子的生成、演变和渲染。

Compute Graph 分为四个阶段:

  • Emitter(发射):控制粒子何时产生,持续、爆发还是单次
  • Initialize(初始化):设置粒子的初始值,如速度、生命周期、大小
  • Simulate(模拟):每帧应用重力、湍流等力,演化粒子状态
  • Output(输出):控制粒子的视觉表现,如颜色、透明度

大锅烟雾效果的实现:

  1. Emitter 阶段使用 Continuous Emit 节点持续发射
  2. Initialize 阶段设置大小和生命周期随机化,用 Spawn in Sphere 在球形体积内分布粒子
  3. Simulate 阶段应用负重力让烟雾向上飘
  4. Output 阶段让粒子随生命周期淡入淡出,并根据高度改变颜色

渲染使用 Shader Graph 材质,绘制圆形公告牌实现圆润的烟雾外观。

Shader Graph 增强

19:43

Reality Composer Pro 3 的 Shader Graph 新增多项功能:

  • Subsurface Scattering(次表面散射):提升半透明材质的真实感
  • RealityKit PBR Surface 2:增加 sheen、subsurface scattering 等表面属性,改进漫反射和遮蔽着色
  • Hair Surface(毛发表面):专用于毛发和皮毛的着色器
  • Portal Surface 和 Portal Geometry Modifier:修改传送门表面的逐像素透明度,驱动顶点动画

核心启发

制作交互式场景导览

做什么:用户点击展品,虚拟解说员自动走到展品前开始讲解。

为什么值得做:Navigation Mesh 让角色避开复杂场景中的障碍物,Behavior Tree 管理多段巡逻路线,Script Graph 响应用户点击。

怎么开始:创建 Navigation Mesh 覆盖整个展厅,用 Behavior Tree 定义 Move To 节点序列,用 Script Graph 的 On Tap 节点触发行为。

构建动态天气系统

做什么:雨雪天气随时间变化,粒子强度和风向动态调整。

为什么值得做:Compute Graph 可以在 GPU 上模拟数万个粒子,Script Graph 能根据时间参数动态调整发射率和风力。

怎么开始:用 Compute Graph 创建雨雪粒子系统,在 Emitter 阶段暴露 emission rate 参数,通过 Script Graph 根据游戏时间修改这个参数。

开发虚拟宠物伴侣

做什么:一个会跟随用户、响应抚摸、有情绪表达的虚拟角色。

为什么值得做:Animation Graph 混合多种情绪动画,Behavior Tree 定义跟随、等待、玩耍等状态切换,Script Graph 处理手势交互。

怎么开始:准备 idle、walk、happy 三套动画,用 Animation Graph 的状态机切换,用 Behavior Tree 的 Selector 节点根据距离选择是跟随还是等待。

实现交互式游戏原型

做什么:无需编写代码,在 RCP3 中完成可玩的小游戏原型。

为什么值得做:Script Graph 的事件系统和内置游戏节点可以处理碰撞、得分、状态保存等游戏逻辑。

怎么开始:参考 session “Design No-Code Games with Reality Composer Pro 3”,用 Script Graph 构建完整的游戏循环。

打造沉浸式演出

做什么:多个角色按剧本执行复杂动作序列,灯光和粒子效果同步配合。

为什么值得做:Sequencer 可以协调场景事件,Animation Graph 控制角色表演,Compute Graph 提供舞台特效。

怎么开始:为每个角色创建独立的 Animation Graph 和 Behavior Tree,用 Script Graph 统一触发演出开始,通过 Sequencer 同步灯光和粒子。

关联 Session

评论

GitHub Issues · utterances