当前位置: 代码迷 >> 综合 >> 【U3D】Vuforia Hololens2 入门 开发 AR 踩坑 总结 Image Target
  详细解决方案

【U3D】Vuforia Hololens2 入门 开发 AR 踩坑 总结 Image Target

热度:60   发布时间:2023-12-18 21:24:03.0

目录

  • 配置开发环境
  • 配置Hololens2
  • 配置Vuforia与Unity
  • 测试Image Targets

配置开发环境

  • Windows 10系统;
  • 安装Windows 10 SDK (10.0.18362.0);
  • 安装Visual Studio 2019 (16.2 或更高版本);
    注意:先安装win 10 SDK,路径名尽量短,再安装VS 2019,不然会有路径报错问题: “IOException: Win32 IO returned 234”,路径名过长所导致。如果已有路径报错问题,可以把报错的winmd文件删除;如果还不行,卸载VSwin10 sdk再按序重装吧。
  • 安装Unity Hub
  • Unity Hub安装最新的2018.4 LTS版本:
    2018.4LTS
  • 创建一个新工程,将Unity切换到Universal Windows PlatformBuild Settings
    注意:在Windows上工作时,有 255 个字符的MAX_PATH限制。 如果任何文件路径的长度超出 255 个字符,则Unity受这些限制影响,可能无法编译。 因此,强烈建议将Unity项目存储在尽可能靠近驱动器根目录的位置。

    点这里看官网清单

配置Hololens2

  1. 根据向导初次设定设备;
  2. Hololens2中,进入设置->更新和安全->开发者选项,打开以下功能:
    • 使用开发人员功能
    • 启用设备门户
  3. Hololens2和PC连到同一个Wifi中,进入设置->网络和Internet->高级选项,查看IPv4地址;
  4. 在PC端浏览器中输入上面得到的IPv4地址,打开Windows Device Portal
  • 如果提示连接不安全,先通过“高级”选项进去再说;
  • 如果是第一次连接,则需要设定pin和密码;
  • 进入Preferences,下载证书(certificate)并安装到“受信任的根证书颁发机构”中,重启浏览器:
    Preferences
    Step 1
    Step 2
  • 注意:如果想要在PC上使用Hololens2的投屏功能,请先检查“连接”功能是否奏效:
    ConnectConnection Support

配置Vuforia与Unity

  1. 注册Vuforia账号;
  2. Vuforia License Manager新建一个测试账户:
    License Manager
  3. Vuforia Target Manager添加一个DataBaseType选"Device":
    Target Manager
  4. 点击进入新建的DataBase,点击"Add Target",上传用于Image Target测试的图片:
    Add Target
    注意:图片要求:①格式为**.jpg.png**;②文件大小最多2 mb;③图片位深度需要是16或24位。其他星级评定可以看这篇粗略的翻译:Vuforia最佳实践:设计和开发基于图像的目标识别(Image-Based Targets)。
  5. 下载Vuforia Engine 9.0并安装到Unity 2018.4安装路径下(unity.exe所在文件夹的上一级):Vuforia Engine 9.0
    安装路径可以到Unity Hub设置里找:
    路径
    注意Unity Asset StoreVuforia Sample和Unity通过Package Manager下载的Vuforia Engine(9.0以下版本)可能会有脚本冲突。
    注意:如果想要升级Vuforia Engine,选择了第一个“Add Vuforia Engine to a Unity Project or upgrade to the latest version”,下载导入Unity之后,点击Upgrade
    Upgrade
    导致manifest.json报错:
    Manifest Error
    请根据路径打开manifest.json,删除红框部分:
    Json
    回到Unity,重新import之后会再问你一遍是否升级,这时候要选Cancel
    Cancel
    然后删除刚刚升级包导入的文件夹/文件:
    Delete
    重新下载VuforiaSupprotInstaller,覆盖安装。

这个问题可能是翻墙软件导致的,试过改系统变量、重装Unity等方法依然不行,各位有什么好方法可以交流交流

  1. 下载HoloLens sample并导入到Unity中:
    Hololens Sample
  2. Unity内配置MRTK
    Configure Unity ProjectConfigurator
    注意:如果打开MSBuild导致Visual Studio编译的时候报错,那就不要开;官网都建议你不要开:
    MSBuild Tip
  3. 检查Player SettingsXR Settings
    XR Settings
    注意:如果打开Remoting Support导致Visual Studio远程编译的时候报错,那就不要开。
  4. 检查Player SettingsPublishing Settings以下Capabilities是否打开:
    • InternetClinet
    • WebCam
    • MicroPhone
    • SpatialPerception
  5. 打开Window下的Vuforia Configuration,填写App License Key
    Vuforia Configuration
    App License Key
  6. 准备摄像头(没有可以跳过),还是在Vuforia Configuration里,检查摄像头是否加载正确:
    Camera Device

测试Image Targets

  1. 按住ctrl键,拖拽SampleResources->Scenes下的2-ImageTargets到新文件夹,用拷贝的新场景进行测试:
    Image Targets
  2. 关于Demo自带的ImageTarget Object:
    Image Target Object
  3. 使用自己的DataBase
    ImageTargetScene
    Test Database
    注意:如果Database抽风了,自己的找不到了,可以从VuforiaTarget Manager下载:
    下载Database
    下载之后解压,将.dat文件和.xml文件放到StreamingAssets/Vuforia文件夹下:
    放置文件
    此时material是空的,对应到Play场景里就是透明的,影响不大;
  4. 打印测试用的图,在PDF里:
    在这里插入图片描述
  5. Play,用摄像头测试;
    注意:使用Holographic Emulation是不能用Hololens2直接进行AR识别的(至少我是这样),所以需要用摄像头代替Hololens2上的相机。没有摄像头得出包测试,很麻烦。
  6. 出包设置:
    - 只保留当前场景:
    Build Scene
    - 打开Build Window在这里插入图片描述
    - 设置Appx Build Options(虽然设置了Platform Toolsetv141,不过不知为何,在VS打开工程依然是v142):
    Build Options
    - 设置Deploy Options,由于我的PC没法在Unity里通过Wifi连接Hololens2(但是可以通过浏览器登陆Windows Device Portal),所以这里的Target TypeLocal
    Deploy Options
  7. 打包:
    Build Unity Project
  8. 打包完成后用VS打开:
    Open in VS
  9. 如果提示没有v142生成工具:
    - 右击项目,进入属性
    VS Settings
    - 将平台工具集改成"V141",点击应用工具集
    - 重定向项目:
    重定向
  10. 打包到Hololens2
    出包
    注意:如果VS部署一直提示连接失败,请确定USB连接正常 ,Hololens2处于运行状态。
    注意:如果没有提示输入PIN建立连接,请到Hololens2的开发人员选项中删除匹配,重新进行配对。
    注意:如果选用的模式和UnityMRKTBuild Options设置不同,可能会导致无法连接Hololens2。请关闭VS,删除工程所在文件夹(默认路径是Builds/WSAPlayer)重新Build,再尝试出包。
    注意:如果出包成功之后再次出包时,VS提示连接失败,请拔插type-C线或删除工程所在文件夹后重试。
    注意:如果选用Debug模式编译,对性能会有所影响(特别是有高模动画的情况)。

现在还在研究Model Target,点赞大于50就更~

  相关解决方案