【问题标题】:HoloLens/Unity shared experience: How to track a user's "world" position instead of Unity's position?HoloLens/Unity 分享经验:如何跟踪用户的“世界”位置而不是 Unity 的位置?
【发布时间】:2020-12-10 21:59:40
【问题描述】:

我在这里有一个我正在为 HoloLens 开发的 AR 游戏,它涉及根据用户的相对位置渲染全息图。这是一种多人共享体验,同一个物理房间中的每个人都通过云或 LAN 连接到同一个实例(共享 Unity 场景),加入的玩家可以在其他玩家的位置看到全息图渲染。

例如:玩家 A 和 B 加入一个实例,他们一起在同一个房间里。玩家 A 可以看到玩家 B 上方的全息图,跟踪玩家 B 的位置(如果您愿意,可以使用模拟人生光标)。然后,一旦玩家 A 靠近玩家 B,就会打开更多的全息面板,显示玩家 B 的统计数据。这些面板还跟踪玩家 B 的位置,并且总是相对于玩家 B 的耳机位置略微偏移渲染。玩家 B 也会在玩家 A 上看到相同的内容,反之亦然。

这基本上就是我的 AR 游戏目前所做的。

问题:
我要解决的问题是绝对跟踪用户的位置到房间本身,而不是使用 Unity 说玩家 A 的游戏对象和玩家 B 的坐标位置。

如果我在地板上标记一个物理位置以及所有玩家在启动 Unity 应用程序时必须采取的朝向,我的应用程序就会运行良好。然后,这会强制所有玩家的 Unity 应用程序中的坐标系在现实世界中具有匹配的原点和初始航向。只有这样我才能相对于用户的位置渲染全息图,并使其在 Unity 空间和耳机周围的真实物理空间之间以 1:1 的比例关联。

但是,如果我希望玩家 A 在房间的一侧启动应用程序并让玩家 B 在房间的另一侧启动应用程序怎么办?当我这样做时,玩家 A 的 Unity 世界的原点与玩家 B 位于不同的物理位置。然后这将导致全息图渲染 A 的位置或 B 的位置以巨大的偏移量。

我有一些截图说明我的意思。

在这个中,我有 3 个 HoloLense。地板上的两个,加上我用来截屏的那个。 地板上有一个蓝色的 X(它是一张纸。我意识到你在图像中看不到它。)我在所有三个 HoloLense 上启动了我的 Unity 应用程序。所以这三者的 Unity 世界起源于那个特定的物理位置。如您所见,显示已连接玩家的蓝色光标可以很好地跟踪耳机的位置。您甚至可以在小地图上看到耳机相对于屏幕截图的位置。

这里使全息跟踪准确的噱头是所有三个都从同一个位置开始。

现在,我介绍了一个红色 X。我在其中一个耳机上重新启动了 Unity 应用程序,并使用红色 X 作为它的起始点。正如您在此屏幕截图中看到的那样,跟踪仍然是精确的,但它有一个巨大的偏移量。因为我在 Unity 中的相对原点(蓝色 X)与其他耳机的相对原点(红色 X)不同。

问题:
所以这就是我要解决的问题。我不希望我的所有用户都必须一个接一个地在同一个物理位置初始化应用程序,以使全息图出现在用户的正确位置。 HoloLens 可以扫描整个房间,对吗? 有没有办法将这些地图与所有连接的 HoloLense 同步在一起,然后它们可以共享它们的绝对坐标是什么?然后我可以将它们用作 Unity 场景中的变换点,而不必跟踪多人游戏对象

这是我耳机上的一张地图,我使用的是从同一个天使那里获取屏幕截图

【问题讨论】:

  • 您将需要一个共同的现实世界参考(例如 QR Tracking、Vuforia 等),然后将其用作共享世界原点(-> 将一个对象放在跟踪器上并生成下面的所有内容 => 相对给它)。还有一些实验性的东西可以分享相对于公共房间网格的 WorldAnchor 参考……不知道结果如何^^

标签: unity3d simulation multiplayer hololens windows-mixed-reality


【解决方案1】:

这对于内向外跟踪来说很棘手,因为一切都与观察者相关(正如您所发现的那样)。您需要的是能够识别一个共同的、独特的实际位置,然后您的系统会将其视为“共同来源”。系统可以检测和定位的二维码或唯一对象就足够了,然后跟踪您的用户(和其他被跟踪对象)与虚拟世界中已知来源的偏移量。

【讨论】:

  • 听起来像使用 QR 码可能是一种可行的解决方法。也许我可以利用 Vuforia 并使用标记作为定义来源。也许这可以工作。我担心玩家 A 坐标空间与玩家 B 中从标记生成游戏对象的位置会有所不同。我需要对此进行研究。
  • @GhostRavenstorm 你要么总是需要重新计算相对于跟踪器变换的位置/移动等,要么只是在它下面生成所有东西;)
【解决方案2】:

我的答案被删除了,因为原因,所以第 2 轮。关于仅链接的答案。

所以,这里又是链接。 https://docs.microsoft.com/en-us/windows/mixed-reality/develop/unity/tutorials/mr-learning-sharing-05

为了避免最后一种情况,我要补充一点,任何想要使用 HoloLens 获得同步多人游戏体验的人都应该通读整个教程系列。我没有提供关于如何在不必复制和粘贴文档的情况下执行此操作的摘要。只要知道您需要其他人加载到他们的场景中的空间锚。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2018-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多