CMS 在空间计算未来的可能性
已发表: 2019-10-24在 WP Engine 担任职务时,我有机会作为大使环游世界,宣传使用 WordPress 的新颖有趣的方式。 我最近在北卡罗来纳州的罗利,在 All Things Open 上谈论 CMS 在空间计算未来的可能性。 对于 45 分钟的演讲来说,这是一个崇高的话题,所以我想我会更深入地分享一种使用无头方法使用 WordPress 构建扩展现实 (XR) 体验的新方法。
无头狂潮
我认为我们中的许多人主要将 headless 视为使我们的网站更快并将它们与控制我们内容的 CMS 分离的一种方式。 虽然在某些情况下是正确的,但当我们考虑这对本机应用程序和增强、虚拟和混合现实(更广泛地定义为扩展现实)意味着什么时,这可能不是看待这个概念的最引人注目的镜头。
为了了解 WordPress 如何为 XR 体验提供动力,我们必须退后一步,了解开发人员和设计人员在交互式应用程序中需要哪些关键功能。
CMS 的核心吸引力是什么?
缩小并查看 CMS 的核心是什么,突出了一些关键功能,这些功能使我对未来的想象力进行了竞赛。 CMS 可以广义地定义为:
- 帖子/页面数据
- 与用户和帖子等数据相关联的元数据
- 安全的用户系统
- 丰富的内容编辑器
- 通过插件/主题/等的可扩展性。
WordPress 在整个范围内都大放异彩,再加上开源的灵活性,您可以构建您梦想的任何东西。 用户系统和内容是 XR 等交互式和富媒体应用程序的关键要求。 像 WordPress 这样的开源解决方案为开发人员提供了更大的自由度和对源代码和软件的更多控制权,这意味着他们可以对其进行调整以按照他们想要的方式执行,而不受许可的限制。 当新的 Gutenberg 编辑器合并到 WordPress 5.0 中时,实现了另一个级别的自由,进一步普及了世界上最受欢迎的 CMS 的力量。
新 WordPress 编辑器的可能性
我们花了很多时间思考以统一的方式使用块来控制标记的前端优势。 我认为在前端开发中很大程度上被忽视的新 WordPress 编辑器的一个方面是块本身的数据结构。
通过 REST API 提取数据通常会返回帖子的最终标记。 这使得非基于 html 的应用程序难以解析或使用数据。 您当然可以清理最终输出,但它不能提供前进的信心,并且经常会删除重要的上下文。
在帖子在前端呈现标记之前,有一些有价值的属性用于确定最终标记。 这些选项通常对非浏览器应用程序和基于浏览器的体验一样有用; 这只是确保内容已针对您的目的进行清理的问题。
假设我们有一个具有src 、 loop 、 autoplay等属性的音频块。这些属性对于期望在运行时做出相同决定的非浏览器应用程序同样重要。 通过查询 Gutenberg 帖子,可以提取音频文件以及它应该如何表现的属性,从而使应用程序与浏览器行为统一。
在不久的将来,物理世界和数字世界将继续融合在一起。 随着年轻一代越来越多地通过屏幕、键盘和鼠标以外的方式进行交互,我们可能应该开始考虑到这个未来来创建内容。 我们真的想要保存所有这些标记吗? 它甚至重要吗? 如果是,则该属性可能应该通过 JSON 保存、键入和公开。 标记实际上只对前端渲染有用。
纯声音 AR 博客阅读器概念
Bose 正在开创一种有趣的增强现实方法。 他们已经迅速更新了他们的产品,在耳机和太阳镜中加入了 6 个自由度 (6DoF) 传感器,为纯声音的 AR 体验提供动力。 这为我们提供了 XR 的三个重要机制; 6DoF 头部追踪、私密声音体验和手势识别。 我决定使用这项技术来说明古腾堡块数据结构的潜力。

使用由 Roy Sivan 和贡献者开源和构建的 Gutenberg Object Plugin,我能够以 REST 友好的方式公开属性数据。 然后,我能够将注意力转移到构建机制和 MVP 应用程序上,以便在看不见的情况下阅读博客。 该应用程序将按钮放置在访客周围的 3D 空间中。 右侧是“下一篇文章”按钮。 在他们的正前方,一个帖子正文按钮可以播放帖子数据的读数。 通过使用适用于 WordPress 的 Amazon AI 插件,语音转文本技术成为可能。
当面向帖子主体双击眼镜框时,语音提示访问者使用点头手势播放帖子音频。 在构思这个想法的 24 小时内,我得到了一个工作概念证明,我将其主要归因于不必弄清楚如何准备我的数据。 Blocks 和 JSON 为我做了这一切!

下图是该概念的草图以及最终产品。


传统增强现实中的块
空间化块对我来说很有趣,所以我构建了另一个概念证明,演示了游戏引擎中的 3D 预制对象如何与网页上的 2D 块相关联。 下面是在我的酒店房间周围渲染的古腾堡帖子的屏幕截图。

虽然 AR 中网页的字面 1:1 表示表明我们可以将我们的设计决策耦合进出浏览器,但我认为我们可以更进一步。 一个块可以代表很多东西; 那么为什么不使用自定义块来抽象 3D 创意呢?
非标准文件类型和抽象 3D 对象
HTML 具有开箱即用的有限文件类型列表。 这并不是说我们仅限于这些选项。 WordPress 足够灵活,只需添加允许的类型即可扩展到其他人。
我一直在构建一个名为 Broken Place 的音乐游戏,它允许玩家在 AR 中与实时音乐互动。 声音引擎正在运行一种名为 Pure Data (PD) 的开源编程语言,该语言具有非常特定的文件类型,只有它可以读取。 在 WordPress 中,我在一个名为“歌曲”的自定义帖子类型中管理帖子内容,玩家可以在其中上传他们的 PD 补丁。 玩家只需以贡献者用户角色登录网站并上传他们的补丁。 从本机应用程序查询歌曲帖子并加载补丁。

内容提交选项开启了允许用户设计自己的音乐界面布局的潜力。 想象在下图中,图中的每个 3D 旋钮都与一个名为“Knob”的 Gutenberg 块相关联,并且每个旋钮都有一个与发送到音频引擎的声音信息相关联的属性。 内容创建者可以使用列块确定声音信息在网格中的映射方式。 当您在列块中嵌套块时,REST 响应还将对象嵌套为块的子级,并且可以使用 JSON 结构应用逻辑。

叙事设计潜力
在帖子数据中,我们在讲故事; 一些信息,一些个人,但它们充当思想胶囊。 我梦想着一个帖子不仅仅是屏幕上的文本和图像的未来。 空间化内容为叙事设计提供了惊人的机会。 我已经在 AMP Stories 中看到了这种潜力,并希望这种结构可以帮助激发在 3D 物理空间中讲述的故事。

想象一下 AMP 故事的相同帖子结构,但用于 3D 空间,您可以放在家里或办公室。 Mozilla Hubs 在对所有设备开放的协作 XR 空间方面处于领先地位,我看到了为 Mozilla Hubs 结合 WordPress 叙事设计以允许共享讲故事体验的有趣潜力。
我很高兴继续探索使用无头 WordPress 为 XR 体验提供动力的新方法,并帮助开创我们如何与数字内容交互和创建数字内容的全新时代。
