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 中构建这个状态机需要几个步骤:
- 创建一个 State Machine(状态机)节点,连接到 Final Pose 节点
- 在状态机内部添加两个 Animation State(动画状态),分别命名为 Idle 和 Walk
- 创建 Idle 到 Walk 和 Walk 到 Idle 的转换,并为每个转换添加条件
- 在 Inputs Inspector 中添加布尔参数
isWalking,用作转换条件 - 为两个动画状态分别连接 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 中:
- 添加 On Tap 节点监听点击手势
- 添加 Set Entity Parameter 节点
- 将参数名设置为
readyToBrew,值设为 true - 连接 On Tap 的事件输出到 Set Entity Parameter
通过 Reality Composer Pro 3 的 Live Preview 功能,可以在 Apple Vision Pro 上直接测试这个交互。点击角色后,它会立即转向大锅开始炼药。
Navigation Mesh:场景寻路
(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(输出):控制粒子的视觉表现,如颜色、透明度
大锅烟雾效果的实现:
- Emitter 阶段使用 Continuous Emit 节点持续发射
- Initialize 阶段设置大小和生命周期随机化,用 Spawn in Sphere 在球形体积内分布粒子
- Simulate 阶段应用负重力让烟雾向上飘
- 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
- Iterate Your Spatial Scenes Faster with Reality Composer Pro 3 — Reality Composer Pro 3 的核心工作流程和基础功能
- Design No-Code Games with Reality Composer Pro 3 — 深入讲解 Script Graph 在游戏开发中的应用
- Explore Advances in RealityKit — RealityKit 新特性,包括 Navigation Mesh 的底层 API
- Explore Materials in Reality Composer Pro — Shader Graph 详细教程
- Reality Composer Pro 3 + Xcode — Xcode 与 RCP3 的集成工作流
评论
GitHub Issues · utterances