用Unity和Vuforia创建AR体验的教程

1,856 阅读7分钟

在这篇文章中,你将学习如何使用Vuforia和Unity创建一个增强现实体验。你还将学习如何在Android智能手机上测试和运行你的应用程序。

这就是你要建立的东西👇

AR Cube

这个立方体可以被替换成任何其他的3D物体,但为了简单起见,我们在本教程中只坚持使用立方体。

以下是上述视频中发生的事情的细节。

  1. 手机的摄像头检测到一个图像
  2. 该图像被识别为一个标记
  3. 然后手机在图像(或标记)上渲染出一个物体

这种AR体验,即你的手机在图像上渲染3D内容,被称为基于标记的AR体验。这就是我们今天要创造的东西,我们将使用一个叫做Vuforia的SDK来实现它。

为什么是Vuforia?

Vuforia有很多功能,比如:

  1. 图像跟踪
  2. 物体追踪
  3. 地面跟踪
  4. 多目标
  5. 云识别
  6. 虚拟按钮

以及更多。

我在本教程中使用Vuforia的原因之一是,它的设置很快速和简单。你可以创建你的第一个AR体验,而不用担心编码的麻烦。

此外,如果你知道Vuforia在安卓这样的平台上的配置步骤,你将能够将同样的步骤应用于iOS。这意味着,你可以开发一次,并将你的应用程序发布到多个平台。

与ARCore和ARKit相比,Vuforia的最大优势在于它支持广泛的设备。除了智能手机和平板电脑,Vuforia还支持增强现实头盔,如微软Hololens和Magic Leap。你可以在这里找到Vuforia推荐设备的完整列表

先决条件

在我们进入Unity并开始项目之前,确保你已经完成了以下任务:

  1. 注册成为Vuforia引擎开发者
  2. 确保你安装了Unity 2021.3(LTS版本)。
  3. 检查你的设备是否支持增强现实技术

下面是我们要介绍的内容:

  • 项目设置
  • 用Unity设置Vuforia
  • 如何在Vuforia中创建Image Targets?
  • 在图像目标的基础上渲染3D内容

项目设置

如果你还没有这样做,创建一个新的Unity 3D项目并命名为 "Hello Vuforia"。

你可以通过在你的电脑上启动Unity Hub并点击 新项目来完成。

New Project Circled

点击新项目后,会弹出以下窗口。为了确保我们正在创建一个3D项目,请做以下步骤。

  1. 从模板中选择3D
  2. 项目名称我的项目更新为Hello Vuforia
  3. 单击 "创建项目"按钮

3D, My Project, and Create Buttons

该项目将需要几分钟的时间在Unity中打开。

保持项目打开,让我们开始整合Vuforia。

在Unity中设置Vuforia

在这一步,你将把Vuforia包添加到Unity的Hello Vuforia项目中。

要开始,请下载Vuforia包。请注意,除非你已经注册为Vuforia开发者,否则你不能下载该包。

Add Vuforia Engine

接下来,双击下载的Unity包,你会看到这在Unity编辑器中自动弹出。点击导入

Import Unity Package

为了验证Vuforia是否被成功导入,在Unity编辑器的Hierarchy面板上点击右键。如果你在下拉列表中看到Vuforia引擎,这意味着Vuforia已经成功导入。

Ground Plane

从场景中删除主摄像机。然后,在Hierarchy面板中右击>Vuforia Engine>Add AR Camerato the scene。

AR Camera

项目窗口中,进入资产>资源,双击VuforiaConfiguration以在检查器面板中查看其属性。你将在下一个步骤中添加许可证密钥。

App License Key

要添加许可证密钥,请进入你的Vuforia Developer Portal>License Manager并点击Get Basic

License Manager Basic

基本计划(免费提供)涵盖了诸如图像目标、多目标、圆柱体目标、VuMarks和地平面等功能。你可以建立和发布无限数量的应用程序,而没有Vuforia的水印。然而,如果您的应用程序使用了Vuforia的高级功能,如模型目标和区域目标,Vuforia水印将出现。这意味着你可以使用这些功能开发你的应用程序用于个人研究目的,但不能在任何平台上发布该应用程序。

如果您想在您的应用程序中不显示Vuforia水印的情况下访问模型目标和区域目标,您可以购买高级计划。要想对Vuforia有更详细的了解,你可以访问这个链接

保持许可证名称与你的项目名称相同;例如,Hello Vuforia。你可以给你的许可证起任何名字。勾选条款和条件框,然后点击确认

License Name

接下来,复制许可证密钥。

Copy This

并将其粘贴到Unity中的 App License Key字段。

Paste License Key

完美了!你已经成功地配置了Vuforia和你的Unity项目。

现在我们可以进入有趣的部分:图像识别。

你如何在Vuforia中创建图像目标?

在这一步,我们将添加图像(或标记),以便Vuforia能够检测和跟踪它们。这些检测和跟踪的图像在Vuforia中被称为图像目标。图像目标的集合被存储在一个数据库中。

图像目标和数据库都是通过Vuforia开发者门户网站创建的。

要开始使用Image Targets,在Vuforia Developer Portal中,转到Target Manager。然后点击添加数据库

Target Manager

将数据库名称设置为 "HelloVuforia"(没有空格)并选择设备类型。设备类型的数据库是一个存在于你的应用程序中的数据库。如果你有一个大的数据库,那么选择类型。最后,点击创建

Create Database

数据库创建后,打开HelloVuforia并点击添加目标

Add Target

选择图像作为你的类型。你可以在文件字段中上传任何图片;我使用了Pixabay的这张图片。这个图像将是你的图像目标,这意味着它将被你的应用程序检测和跟踪。

Type, File, Width, and Name Fields

在填写完上述其他细节后,点击添加。你会看到在你的数据库中列出的图像。对应于每张图片,有一个称为评级的属性。试着上传一张有较多星星的图片。星级数越高,就越容易检测和跟踪图像。

在下面的图片中,你会看到两个图像目标。被称为stones_image的目标只有3颗星,但lens_image目标有5颗星。这两个图像都是可以增强的,但lens_image会有更好的表现。

Two Targets

点击下载数据库>Unity Editor>下载。一旦下载,你会得到一个叫做HelloVuforia.unitypackage的文件。双击这个文件,在Unity中打开它。

Download Database

你会得到下面的弹出窗口。点击导入

Import Package

在Unity中导入数据库后,在项目面板中进入资产>资源,双击VuforiaConfiguration,在检查器面板中查看属性。在数据库部分,你会看到HelloVuforia被列出。这意味着你已经成功地将数据库导入到你的Unity项目。

Hello Vuforia

在图像目标之上渲染3D内容

现在你已经准备好在图像目标的顶部显示一个立方体。按照本教程的其他步骤来做。

Hierarchy Panel>Vuforia Engine中右击,在你的场景中添加一个Image Target。

Image Target

选择ImageTarget,在检查器面板中查看其属性。在**Image Target Behaviour (Script)**中,做以下修改。

  1. 类型设置为来自数据库
  2. 数据库设置为HelloVuforia
  3. 图像目标设置为lens_image(或任何其他你上传到HelloVuforia数据库的图像)。

Type Selection

现在在场景中添加一个立方体作为ImageTarget的孩子,像这样👇

Cube Selection

把立方体的比例缩小到0.2(如果你想的话,也可以更小)。

Scale

然后,将立方体在正Y轴上移动一点,使它看起来像漂浮在图像上方。

Move Cube

这就是了!现在你已经准备好在你的安卓设备上运行这个应用程序了。

点击播放按钮,使用你的网络摄像头运行该场景。

Play Button

点击播放按钮后,将你的网络摄像头对准图像,立方体就会神奇地出现在图像的顶部。我已将图像下载到我的iPad上,但你也可以拿出图像的打印件,将网络摄像头对准打印件。它给出了同样的结果。

AR Cube

结论

祝贺你!你刚刚创造了一个增强型图像。

你刚刚用Unity和Vuforia创建了一个增强现实体验。这个教程对于那些试图创建他们的第一个AR体验的人来说是一个基本教程。然而,立方体可以被替换成任何其他的3D模型。试一试吧!