首页 iOS.& Swift Books 苹果通过教程增强现实

7
行为,触发& Actions 由克里斯语撰写

本章继续前一个离开的地方。 AR名片场景已包含所有必需的对象,但AR体验相当沉闷。

要向上调用,您将为场景中的对象添加动画和声音效果。您将使用行为,触发器和操作实现这些功能。

在现实作曲器中,行为包括触发分量和动作序列组件。在本章中,您将使用所有这些组件来构建您的AR体验。

笔记:您可以使用前一章或加载中的最终项目 开始er / ArbusinessCard / ArbusinessCard.rcproject 在现实作曲家。本章的其余部分继续从这一点开始。

什么是行为?

行为允许用户在没有您的开发人员的情况下与现实作曲家场景中的对象进行交互,必须添加代码。相反,您将每个行为分配给特定对象。

行为包括两个组件:a 扳机,它定义了行为激活的方式以及何时 行动序列,它定义在发生触发事件时对象发生的情况。

可用行为

现实作曲家加载了一些行为预设,这些行为预设,涵盖了AR场景的最常见的交互。当您想要构建自定义行为时,这些行为预设也是一个很好的起点。

以下是当前的行为列表预设:

这是每个行为所做的:

  • 轻敲& Flip:当用户时 点击 一个预定义的对象,该对象会反弹并通过a翻转 跳跃和翻转 action.

  • 轻敲& Play Sound:当用户时 点击 一个预定义的对象,对象使用一个 play效 从其位置发出声音效果的行动。

  • 轻敲& Add Force:当用户时 点击 启用物理学的预定义对象,该对象使用 增加力量 行动以某个方向移动。

  • 开始隐藏:当AR场景 开始,预定义的对象执行a 隐藏 行动并变得无形。

  • 等待& Show:当AR场景 开始,预定义的对象执行a 等待 行动然后一个 展示 行动。这使得一个物体在设定的时间段内出现。

  • 接近& Jiggle:当用户进入某个时 接近 占用预定义的对象,对象执行一个 摇动 action.

  • 风俗:此行为为空,允许您定义自己的触发器和操作序列。

什么是触发器?

每个行为都有一个 扳机 组件定义激活行为的事件。

您可以将触发器分配给场景中的一个或多个对象。当指定的对象满足事件要求时,行为触发器及其动作序列组件播放。

可用触发器

以下是可用触发器的当前列表:

以下是每个触发器所做的:

  • 轻敲:触发​​用户时的行为 点击 预定义的对象。

  • 场景开始:触发​​AR场景时的行为 开始.

  • 靠近相机 :触发​​预定义对象在某个特定内容时的行为 接近 of the camera.

  • 碰撞:触发​​预定义对象时的行为 碰撞.

  • 通知:触发​​预定义对象从Xcode收到通知时的行为。

什么是行动?

现实作曲家是无附庸的环境,因此您不需要任何先前的编码知识来创建交互式AR经验。为了克服对代码的需求,现实作曲家介绍了概念 行动.

操作允许您在场景中进行对象执行各种功能。例如,从一个位置移动到另一个位置,播放声音效果和音乐,应用物理脉冲和执行动画。

行动是行为的一部分。一旦用户触发了行为,操作组件就在序列或并行播放,具体取决于您的配置方式。

您可以将动作分配给场景中的一个或多个对象。当动作播放时,它只影响这些对象。

可用操作

以下是当前可用操作的列表:

这是每个行动所做的:

  • 注重:用动画称呼对象的注意。

  • 展示:使用动画来使对象可见。

  • 隐藏:使一个物体与动画不可见。

  • 移动,旋转,缩放到:转换对象的位置,旋转和缩放 指定的变换。

  • 移动,旋转,缩放:转换对象的位置,旋转和缩放 经过 指定的变换。

  • 增加力量:将脉冲力施加到物体上。

  • 轨道:使一个对象轨道另一个预定义对象。

  • 旋转:使物体旋转到位。

  • 改变场景:从当前场景转换到另一个场景。

  • 播放声音:播放从3D环境中场景中的预定义对象发出的声音。

  • 玩氛围:播放从场景的锚点发出的音频,在3D环境中发出。

  • 播放音乐:在整个场景中播放音乐或声音效果,无视任何3D位置信息。

  • 等待:等待预定义的时间。

  • USDZ动画:在对象上播放指定的动画。

  • 看看相机:讲述一个物体调整自己的旋转以面对相机的当前位置。

  • 通知:讲述一个对象向Xcode发送通知。

添加行为预设

使用Starter Project打开,您将为场景中的所有对象添加预设的基本行为。在这种情况下,您将在场景首次启动时隐藏对象,然后将它们重新出现一些flair。

通过在顶部栏中选择它来打开行为面板。

行为面板现在将显示在场景视图的底部。

按按键选择场景中的所有对象 命令A.。通过选择所有对象,您可以分配预设的单个行为,以节省大量时间。

点击 + 行为旁边的按钮添加行为预设,然后选择 开始隐藏.

Reality Composer从所选预设创建新行为,并将其分配给场景中的所有所选对象。

此行为预设由两个组件组成:a 场景开始 触发器,它将激活AR场景启动时的行为以及包含a的操作序列 隐藏 分配给10个对象的操作。启动场景将触发操作序列,这将隐藏场景中的所有对象。

现实作曲家名称新创建的行为 行为 默认;但是,良好的做法是让您的行为更具描述性的名称。

重命名您刚刚创建的行为 开始.

此行为是整个场景的起点。

接下来,通过播放它来测试动作序列。点击 按钮旁边 行动序列 标签查看会发生什么。

通知 按钮变成了一个 停止 按钮,场景中的所有对象都消失为动作序列播放。

笔记:每个定义的操作都有自己的播放按钮。这允许您只触发单个操作以查看它自己所做的内容。

添加动作序列

既然您在开始时隐藏了场景对象,您将使用更多的操作序列以稍后显示这些对象。

添加显示操作

展示 操作允许您使用基本动画显示一个不可见的对象。你的下一步是让作者的姓名和照片以乐趣的反弹效果出现。

选择 photoa.Authorname. 通过阻止 命令 单击每个对象时键。

使用行为面板仍然打开,选择 开始 行为,并添加一个 展示 单击行动 + 按钮旁边的动作序列标签。

Revality Composer将新的Show Action添加到Action Sequence,将操作分配给先前选择的对象。

您现在可以配置操作序列的其余部分。

从上面移动 为了 运动类型 使物体浮动到卡上。设定 轻松类型轻松 让运动减速,因为它越来越靠近卡。设定 风格基本的距离30 cm。这使从卡上方30厘米开始的物体移动。

打动机序列。您将看到与作者姓名的照片出现并落在卡上。

添加强调行动

要将一些pizazz添加到序列,您将在使用中击中卡片后拍摄照片和名称 注重 action.

选择 photoa.Authorname. 阻止物体 命令 单击每个对象时键。

接下来,单击此处 + 动作序列标签旁边的按钮添加新动作,然后选择 注重 action.

最后,设置了 运动类型翻动风格基本的,这将使对象在落下后执行基本的翻转动画。

播放场景以测试动作序列的状态。从上面的照片和名称下降,然后做一个很酷的小弹跳翻转。

添加播放声音操作

要将此体验带到一个新的级别,您将在混音中添加声音。

这次,选择 photoa.,然后添加一个 播放声音 行动序列的行动。

将播放声音操作添加到动作序列时,您不希望从多个对象播放相同的声音效果。相反,您将效果分配给场景中的单个对象。

现实作曲家附带一个常用的声音库;您将在此场景中使用这些声音。

设定 音频剪辑软木弹出FX 01.CAF 然后离开 跑步时触发 作为 忽略.

播放场景,你会看到作者的照片和名字落在卡上,做一个快速的弹跳翻转动画,然后用一个很好的流行音乐效果完成。每个操作都完成在下一个操作开始之前 - 因此名称“Action Sequence”。

分组行动

虽然一切正常工作,但有些东西感觉有点偏离。最后一个播放声音操作使弹出的声音与动画序列不同步。如果该效果在对象执行弹跳和翻转动画时播放会更好。

现实作曲家对这个问题有一个解决方案 分组的行动,这让多个动作同时播放。

单击并拖动最后一个 播放声音 在顶部的行动 注重 行动。强调操作窗口将变为蓝色,表示顶部的动作将被分组。

现在播放场景时,每个动作都等待之前的操作在播放之前完成。分组的操作在同步中播放,但序列中的下一个操作等待组中最长的操作首先完成。

显示按钮

太棒了,照片和文字揭示了很大,特别是最后的小流行音乐。下一步是显示按钮。

与之 开始 选择行为,选择 Biobutton. 然后添加另一个 展示 对整个序列的动作。改变 期间0.25秒 保持动画短而甜蜜。设定 运动类型从右移动 所以按钮从卡的右侧出现。

设定 轻松类型易于陷入困境 用于平稳加速度和减速。设定 风格基本的距离10 m.

您希望动画制作一个弹出的声音,但只有按钮才能将其滑入到位。要做到这一点,请选择 Biobutton.,添加A. 播放声音 动作,然后设置 音频剪辑软木弹出fx 02.caf.

复制和粘贴行动

而不是为TenerButton和ContactButton对象重复相同的操作,而是有一个快捷方式使用 - 良好的旧副本和粘贴!

选择第二次 展示 行动在 开始 行为动作序列,这将变为蓝色以指示您已选择它。现在,按 命令C. 将所选操作复制到剪贴板。

选择最后一个 播放声音 然后采用动作 命令-V. 从剪贴板粘贴动作。

当前选择的操作后,动作将粘贴。在这种情况下,它将是序列中的最后一个动作。

为对象分配操作

您需要解决新粘贴的操作的一个问题是它仍然分配给BioButton,因此您需要将其重新分配给AuthorButton。

点击 选择 在这一点 展示 操作,然后单击 Biobutton. 对象取消选择。现在,点击 AuthorButton. 对象以选择该对象。完成了选择后,单击 完毕 完成任务。

出色的! TenerButton现在执行与BioButton相同的操作。

完成开始行为

此时,您几乎用整个开始行为序列完成。最重要的是,您现在拥有自己需要完成的所有知识。

以下是完成行为操作序列的步骤:

  • 复制播放声音 行动对 Biobutton..

  • 粘贴 它在这件事 结尾 动作序列。

  • 重新分配 对此的行动 AuthorButton. object.

  • 复制展示 行动对 Biobutton..

  • 粘贴 它在这件事 结尾 动作序列。

  • 重新分配 对此的行动 ContactButton. object.

  • 复制播放声音 行动对 Biobutton..

  • 粘贴 它在这件事 结尾 动作序列。

  • 重新分配 对此的行动 ContactButton. object.

ph!最终完成开始行为。它现在包括以下操作:

以下是从头到尾的完整动作序列:

  1. 隐藏所有对象。
  2. 作者的照片和姓名落在卡上,然后在玩弹出的声音时进行弹跳和翻转。
  3. 生物按钮从右侧滑入,然后播放弹出声音。
  4. 作者按钮从右侧滑入并播放另一个弹出声音。
  5. 联系按钮从右侧滑入,然后播放最终弹出声音。

添加自定义行为

您的下一步是使按钮交互。当用户点击按钮时,它会使用声音效果翻转并显示相关信息页面。

首先创建一个新的 自定义行为 并重命名它 biobutton_tap..

既然您有一个新的空行为,您需要添加触发器和动作序列。

添加触发器

要为自定义行为添加触发器,请先选择 Biobutton.,然后点击 为此行为添加触发器 关于行为。最后,选择 轻敲 trigger.

您现在已添加到行为的Tap触发器并将其分配给BioButton。现在,当BioButton上的用户水龙头时,它会触发Biobutton_Tap的动作序列。

添加按钮互动

在用户点击按钮时揭示信息页面之前,您需要确保才能从中启动。为此,请选择 生物法, authorpage1., authorpage2.ContactPage.,然后添加一个 隐藏 行动。设定 期间0 sec 立即隐藏页面。放 运动类型没有任何.

接下来,您希望强调按钮以显示用户删除它。和 Biobutton. 仍然选择,添加一个 注重 行动和A. 播放声音 行动,并将它们分组在一起。设定 期间1 sec运动类型翻动。设定 音频剪辑打火机单击fx.caf..

Biobutton.现在将在单击声音时进行酷炫的翻转。

接下来,是时候揭示生物页面了。选择 生物法,并添加 展示播放声音 行动。然后,组合这些操作,以便他们在同步中播放。设定 期间0.1秒, 这 运动类型规模轻松类型没有任何。最后,挑选 软木弹出FX 03.CAF 为了 音频剪辑.

当您现在播放场景时,您将能够点击生物按钮。在揭示卡顶部的生物页面之前,它将进行酷炫的翻转。

现场慢慢但肯定会来到生机!

复制行为

你已经完成了大部分艰难的工作,但是剩下一些松散的末端来捆绑。另外两个按钮仍然需要一些动作!

您将使用快捷方式而不是从头开始构建所有其他行为。您将复制已为剩余按钮创建的行为。

右键单击 biobutton_tap. 打开上下文菜单的行为,然后选择 复制.

这将创建包含相同操作序列的重复行为。

重命名行为 AuthorButton._tap. 并重新分配 轻敲 触发到 AuthorButton..

很棒,现在此动作序列触发用户点击作者按钮时触发。

重新分配下一个 注重播放声音 行动 AuthorButton..

当用户触发时,作者按钮现在会进行翻转。

最后,重新分配下一个 展示播放声音 行动 authorpage1..

就是这样,你已经完成了作者按钮。现在,当您点击该按钮时,它会出现一个快速翻转和AuthorPage1。

按照以前遵循相同的过程并创建重复的行为 biobutton_tap.,然后重新分配所有操作以链接到 ContactButton.ContactPage..

笔记:您可以找到最终项目 最终/ arbusinesscard / arbusinesscard.rcproject

挑战自己

AR经验完成了,但你可以增加这么多。挑战自己以更有趣的声音和动画来增强场景。还可以添加什么,使现场更有趣?练习您学习的概念并探索其他可用的触发器和行动。

笔记:您可以找到挑战项目 挑战/ arbusinesscard / arbusinesscard.rcproject。它包含一些使页面交互式的行为,甚至允许您通过多个页面页面。它对联系信息也有一个有趣的小鸣叫声。

关键点

而已!您已完成本章并创建了一个酷酷的AR名片体验来展示您的朋友。

以下是本章中的一些关键点:

  • 行为:您现在知道行为是什么,它包括触发器和动作序列。

  • 触发:您了解了触发器是什么以及它如何定义要激活的行为的事件要求。您还了解了可用的触发器以及如何使用TAP触发器。

  • 行动序列:您知道动作序列是什么以及如何创建多个测序和分组的操作,以便在您希望它们到来完全发生。您还了解了可用的行动,并播放显示,强调和播放声音。

  • 分配触发器和行动:现在,您知道您将触发器和操作分配给场景中的对象。

  • 复制,粘贴和重复:不要忘记您可以复制,粘贴和重复操作和行为以减少工作量。您唯一需要做的是重新分配动作。

享受您自己的AR名片体验。在下一章中见到您,您将从2D图像锚点到达3D对象锚!

有一个技术问题?想报告一个错误吗? 您可以向官方书籍论坛中的书籍作者提出问题和报告错误 这里.

有反馈分享在线阅读体验吗? 如果您有关于UI,UX,突出显示或我们在线阅读器的其他功能的反馈,您可以将其发送到设计团队,其中表格如下所示:

© 2021 Razeware LLC