在 Blender 中制作的自定义 ARKit 对象没有出现在预期的屏幕上

问题描述 投票:0回答:1

我在 Blender 中创建了一个对象(一张脸),将其导出为 .obj,然后使用 RealityConverter 将其制作为 .usdz 文件。

我将 .usdz 文件导入到我的 Xcode 项目中。这就是我尝试将 Blender 对象锚定到用户面部的方式:

let cat = try! Entity.loadAnchor(named: "alienCat")
uiView.scene.addAnchor(cat)

当我将上面的代码与我在 Reality Composer 中创建的简单对象一起使用时,它按预期工作并且完美地锚定在用户的脸上。

但是当我用我从 Blender 定制的 .usdz 文件尝试相同的代码时,该对象没有出现在屏幕上。

当我旋转手机时,我看到一个放大的大版本漂浮在上方。我附上了2张截图:

  1. 相机对着我的脸,我的脸是黑色的(预期)。但是我的脸上没有附着任何物体(意外)。

  1. 当我旋转手机时,我看到我的物体漂浮在我的头顶上方并且比预期的要大得多:

当我运行代码时,这是我在 Xcode 控制台中得到的错误:

Warning: in AppendProperty at line 858 of sdf/path.cpp -- Can only append a property 'preliminary:anchoring:type' to a prim path (/)
Warning: in AppendProperty at line 858 of sdf/path.cpp -- Can only append a property 'triggers' to a prim path (/)

我相信我的错误源于我在 Blender 中创建我的 .obj。如果可能的话,我想在 Blender 中修复这些错误。目标只是导入一个 .usdz,它按预期工作。此处发布了一个答案:RealityKit – Andy Jazz 在 ARView 中放置模型时获取运行时警告。他说

If you setup a preliminary anchoring for USDZ model, then Xcode will not print such warnings.

有没有办法在 Blender 中设置这个初步锚定?

如何消除这些错误并将我的 .usdz 对象按预期放置在脸上,并且大小合适?

ios 3d arkit blender realitykit
1个回答
0
投票

缩放问题

从 Blender 或 Maya 导出时,模型的比例默认为

100:1
(因为您以厘米比例导出模型,而不是 RealityKit 的米比例)。运行面部跟踪,面具的枢轴点和面具表面之间的距离总是大于 0,这意味着在
100:1
的比例下,这个距离增加了一百倍。还要检查哪个轴朝上:+Y 或 +Z。

anchor.scale /= 100
© www.soinside.com 2019 - 2024. All rights reserved.