大多数浏览器和
Developer App 均支持流媒体播放。
-
打造沉浸式 Unity App
探索如何使用 Unity 为 visionOS 打造引人入胜的沉浸式体验。我们将分享 Unity 与 Apple 框架的无缝集成在各方面的体现,带你了解可直接在该平台内使用的工具,并向你展示体积相机如何将现有场景转换为 visionOS 中的窗口、体积和空间。了解如何整合 visionOS 功能(如穿透和场景理解),如何使用 Shader Graph 自定义视觉效果,以及如何让交互与空间输入更加适配。
章节
- 0:07 - Intro
- 2:13 - Achieve your visual look
- 6:18 - Play to device
- 7:48 - Explore volume cameras
- 10:00 - Build interaction
- 13:49 - Prepare for the platform
- 15:04 - Wrap-Up
资源
相关视频
WWDC23
-
下载
♪ 悦耳的器乐嘻哈 ♪ ♪ John Calsbeek:欢迎大家! 我是 John 负责 RealityKit 的开发工作 Vladimir Vukićević:我是 来自 Unity 公司的 Vlad John:很高兴能向大家 介绍 Unity 对沉浸式 App 的支持 Unity 与 Apple 携手并进 你将在 这个新平台中收获 完整的 Unity 体验 数以万计的 App 都在使用 Unity 现在你也可以使用 Unity 构建沉浸式 App 了 Triband 将其 Apple Arcade 游戏《What The Golf?》 带到了这个平台 该游戏 正是用 Unity 构建的 用 iPhone 玩真的体验很好 这种方式也很不错 在这个平台上使用 Unity 打造沉浸式体验 主要有两种方法 通过穿透 你可以实现将 内容与现实世界的对象 相混合的体验 这既可以作为一种沉浸式体验 也可以在共享空间中 与其他 App 一起使用 你还可以给平台带来完全沉浸式的 Unity 体验 如果你对这种方法感兴趣 那我推荐你看看 “为你的 Unity VR App 打造全沉浸式空间” 使用 Unity 打造共享空间体验 为你的 App 带来了绝佳的机会 接下来由 Vlad 为你继续介绍 Vladimir:谢谢你 John 过去两年间 Unity 和 Apple 一直在合作 致力于 让你的 Unity 内容在 平台上呈现出更好的效果 无论你是从现有项目开始 还是要构建全新的内容 Unity 都是打造沉浸式 体验的绝佳工具 提供熟悉的工具和全新的功能 供你使用 在这个平台上 使用 Unity 的着色器和材料 你可以实现想要的任何视觉效果 我们加入了直接进入 设备播放模式的功能 从而提高了迭代时间 还有一个叫做空间容器相机的新概念 它控制着 Unity 场景中的内容 投射进现实世界的方式 在这款新设备上 输入可以像查看 并点击的手势一样简单 也可以包含更复杂的交互 今天你可以先做一些事情 为你的 Unity 内容用于 空间计算做好准备 下面是一些元素协同工作的示例 该场景使用了 Unity 的 Shader Graph 构建的材料 并通过穿透 显示在模拟器的共享空间中 画面中的角色装备齐全 且有动画效果 比如后面的怪物 物理交互与常规类似 这个小镇的所有居民 都在使用角色导航和 自定义动态脚本行为四处移动 这使得整个场景生动了起来 在 Asset Store 的 帮助下 我们在两周内 就完成了这个场景 在自己的空间中查看时 效果会很棒 因为你可以从任何角度 近距离观察这个场景 共享空间中的所有内容均 使用 RealityKit 渲染 你的 Unity 材料和着色器需要 转换到这个新环境中 Unity 开发了 PolySpatial 它可以 为你完成这个转换 并将许多 Unity 的功能 配置到这个环境中 PolySpatial 可以转换材料 规则和蒙皮网格渲染 以及粒子效果和子画面 该环境支持 Unity 模拟功能的使用 你可以继续使用 MonoBehaviours ScriptableObjects 和其他标准工具 有三类材料得到了转换 包括物理材料、自定义材料 以及一些效果特殊的材料 基于 Unity 物理着色器的材料 直接转换成了 RealityKit 如果你正在使用 Universal Render Pipeline 你可以在你的材料中任意 使用 Lit、Simple Lit 或 Complex Lit Shaders 通过内置管道 你还可以使用 Standard Shader 这些都是转换成了 RealityKit PhysicallyBasedMaterial Unity Shader Graph 支持 自定义着色器和材料类型 Unity Shader Graph 转换为 MaterialX 一个用于复杂材料的标准交换格式 MaterialX 着色器在 RealityKit 中 转换为 ShaderGraphMaterial 该平台支持 多 Unity Shader Graph 节点 你可以实现复杂而有趣的效果 手写着色器不支持 通过 RealityKit 进行渲染 但你可以在 Unity 的 RenderTextures 中使用 然后 你可以将 RenderTexture 作为纹理输入到 Shader Graph 中 并通过 RealityKit 进行显示 该平台支持两种 附加材料着色器类型 第一种是 Unlit Shader 你可以通过它创建 呈现纯色或纹理的对象 这种材料不受照明影响 第二种是 Occlusion Shader 它通过穿透显示对象 你可以将 Occlusion Shader 与世界网格数据一起使用 从而促进内容更好地 与现实世界融合 Unity MeshRenderers 和 SkinnedMeshRenderers 也支持使用 并且是 将视觉内容引入真实空间 的主要方式 你还可以使用已装配 好的角色和动画 你可以使用 Universal Render Pipeline 或 Built-in Render Pipeline 你的内容将通过 Unity PolySpatial 转换为 RealityKit 渲染功能 例如后处理效果 和自定义管线阶段不可用 因为 RealityKit 会完成最终渲染 使用 Unity 中 Shuriken 系统的粒子效果 要么被转换为 RealityKit 的粒子系统 当然是在兼容的情况下 要么转换为烘焙网格 子画面会变成 3D 网格 但你还应该考虑 要如何在空间环境中使用它们 PolySpatial 致力于 Unity 和 RealityKit 之间的 优化和转换渲染 Unity 中的模拟功能 与原软件没有区别 例如物理、动画和时间线、 寻路和导航网格、 你的自定义 MonoBehaviours 以及其他非渲染功能 为了帮助你微调外观 并加快迭代速度 Unity PolySpatial 配置了 “Play to device”功能 进行完整的构建过程 最终 查看内容在你的设备上的表现 可能需要一些时间 有了 PolySpatial 你终于可以第一次 使用 Play to device 功能 Play to device 让你能够 即时预览你构建的场景 并对其进行实时改动 它在模拟器和设备上 都可以很好地运行 你可以使用 Play to device 来快速查找 内容的位置和大小 包括添加和删除各元素 你可以通过改变材料、纹理 甚至是 Shader Graph 来微调作品的外观 同时通过穿透查看你的内容 你还可以测试交互 因为事件会发送回编辑器 你的模拟会持续运行 因此只要连接到编辑器 即可轻松调试 这是你之前看到的同一城堡场景 我在左侧的 Unity 中打开它 选择 Play to device 可以看到它开始 在右侧的模拟器中运行了 只要将它们拖动进来 我就 可以为场景添加更多怪物 它们在模拟器或设备中立即可见 如果我想看看怪物变成粉红色 或霓虹绿的效果 也是即调即显 Play to device 是一个 非常高效的工作流程 主要用于迭代你的内容 目前在 Unity 中 仅用于在共享空间中创建内容 因为你正在使用 Unity 创建 参与共享空间的空间容器内容 因此一个称为空间容器相机的新概念 可以帮助你更好地 在现实世界中构建你的场景 空间容器相机可以创建两种类型的空间容器 即有界和无界 两者各有特点 你的 App 可以 随时在两者之间切换 共享空间中 有界空间容器呈现为空间容器 这与其他 App 和游戏一样 它们在 Unity 中 具有尺寸和变换 以及特定的现实世界尺寸 可以对它们重新定位 但 人们无法调整它们的大小 空间容器相机的尺寸和变换 定义了 App 将在空间容器中显示的 场景区域 它们是以场景为单位指定的 在 Unity 的场景视图中 你可以看到绿色的空间容器预览 通过操纵空间容器相机的尺寸和变换 可以将场景的不同部分 导入到空间容器中 如果我移动或旋转相机 就能在我的空间里 看见新的物体 如果我将其放大 就能看到更多的场景 在这两种情况下 空间容器都保持相同的大小 只有其中能看到的内容 发生了变化 请注意 在空间容器相机的初始放置中 弹簧应与空间容器的侧面相交 内容被 RealityKit 裁剪 如果内容与空间容器的边缘相交 可以考虑在场景中再次放置 相同的网格 再加上一种背面材质 来填充被剪切的部分 无界空间容器显示在 这个平台的整个空间内 并让你的内容与穿透完全融合 以获得更身临其境的体验 它没有尺寸 因为它覆盖了整个场景 它的变换指定了场景中的单位 是如何映射到现实世界的单位的 一次只能有一个 无界空间容器相机处于活动状态 等我们讨论交互时 我将向你展示无界空间容器的示例 Unity 支持该平台上 App 的多种输入类型 在该平台上 人们可以 用眼睛和双手查看内容 并用手指轻触以选择内容 全手势跟踪以及头部位姿数据 让你能够创建真实的交互体验 平台内可以使用 ARKit 的增强现实数据 键盘和游戏控制器等 蓝牙设备同样可用 点击手势是最常见的 与该平台内容进行交互的方式 为了让你的对象接收到这些事件 相关对象必须配置输入碰撞器 你可以从远处查看 并点击以选择对象 也可以伸手直接用手指 触摸某个物体 用户最多可以 同时进行两个点击操作 在 Unity 中 点击 可用作 WorldTouch 事件 其类似于 2D 点击事件 但有完整的 3D 位置 手部和头部位姿跟踪为 App 提供关于每个手部关节和 观看者的头部位置 相对于全局跟踪原点的精确信息 低级手部数据通过 Unity 的 Hands 包提供 头部位姿通过输入系统提供 这两者都只能在无界空间容器中使用 并且访问手势跟踪需要你的 App 有接收数据的权限 增强现实数据 例如检测到的飞机、 世界网格和图像标记 可通过 ARKit 和 Unity 的 AR Foundation 获得 与手部位姿和头部位姿 一样 AR 数据仅 在无限空间容器中可以使用 并且需要额外的权限 最后 蓝牙设备 例如键盘、控制器 以及其他支持的设备都可以使用 供你通过 Unity 的 输入系统进行访问 因为某些类型的输入 只能在无界空间容器中使用 所以你需要决定 自己想要打造什么类型的互动 使用查看和轻点 你的内容就 可以在有界空间容器内正常运转 可以与其他 App 共存 但如果你需要获取 手部追踪或增强现实数据 就需要使用无界空间容器访问 并请求权限了 所有内容都将通过适当的机制 交付给你的 Unity App 该示例使用了轻点、手势跟踪、 以及无界空间容器场景中的平面检测 你可以看看通过 ARKit 平面检测找到的表面 并用手指沿着它拖动 绘制一些花朵 这些花朵是通过手部追踪绘制的 轻点就可以种下花朵 借助 Unity 的物理系统 你种的花会对手部动作有所反应 通过以这种方式 你可以 将现实世界更好地融入内容中 从而打造更深层次的沉浸感 调整现有交互的最佳方式 取决于交互的类型 如果你已经在使用触碰功能 例如在 iPhone 上 你可以适当添加输入碰撞器 并继续使用轻点作为主要输入机制 如果你使用的是 VR 控制器 则必须根据其复杂程度 重新定义你的交互 无论是轻点还是手动输入 已有的手动输入无需更改即可使用 如果你现有的 UI 面板 使用的是 Unity 的 任一 UI 系统 则可以在此平台上继续使用 在该平台上 使用 uGUI 构建的 UI 元素 以及 UI Toolkit 均支持使用 如果你使用的是其他 UI 系统 只要该系统使用网格 和 MeshRenderers 或者绘制到 RenderTexture 中 然后再放在网格上 那这个系统就也可以使用 基于 Unity 2022 支持 Apple 平台空间计算的 测试版即将推出 不过 你现在就可以开始 储备内容素材了 如果你要开始新项目的话 推荐使用 Unity 2022 或更高版本 如果你已经有正在进行中的项目 请升级到 Unity 2022 版本 如果你的项目中有手写着色器 推荐将其转换为 Shader Graph 此外 还推荐你采用 Universal Render Pipeline 虽然平台支持内置图形管道 但未来的所有改进都将 在通用管道上进行 如果你尚未使用 Input System 包 那我强烈推荐给你 它支持混合模式输入 但平台事件 仅通过 Input System 传递 最后 或许可以开始思考 如何将现有的 App 或游戏引入空间计算 或者你想带来怎样的新体验 考虑一下你的想法是否 适合共享空间 能否让人们体验到更高的灵活性 或者你的 App 是否 需要整个空间的功能 若想获取 Unity 对该平台 支持功能的更多信息 并注册试用先发测试版本 请访问 unity.com/spatial 我很期待看到 你在未来用 Unity 和这台新设备 打造出的绝妙体验 John:Unity 是一款 非常棒的工具 它可以让你快速上手 并构建沉浸式 App 在这个新平台上 Unity 与 RealityKit 配合默契 此时此刻 你就可以开始 为项目迁移做准备了 如果你想通过 Unity 打造完全身临其境的体验 我会向你推荐 “为你的 Unity VR App 打造全沉浸式空间”讲座 还有 不要错过 “为空间计算打造优秀的游戏” 它会向你概述该平台上的 游戏开发技术 我们迫不及待地想看看你的成果 Vladimir:感谢你的观看 ♪
-
-
正在查找特定内容?在上方输入一个主题,就能直接跳转到相应的精彩内容。
提交你查询的内容时出现错误。请检查互联网连接,然后再试一次。