我一直在学习如何使用苹果的sample project执行3D身体跟踪。我的目标是用我自己的3D模型替换这个项目中的模型,我已经建立了匹配苹果的可用robot.usdz
样本包含在该项目中。
我已经成功地将我的3D模型导入到Xcode中,在转换为USDZ后,并将模型附加到ARBodyAnchor。然而,我的模型(见附件截图)显示在预期的位置,但看起来完全错误。我使用以下代码加载模型:
var cancellable: AnyCancellable? = nil
cancellable = Entity.loadBodyTrackedAsync(named: "character/mytest").sink(
receiveCompletion: { completion in
if case let .failure(error) = completion {
print("Unable to load model: \(error.localizedDescription)")
}
cancellable?.cancel()
}, receiveValue: { (character: Entity) in
if let character = character as? BodyTrackedEntity {
character.scale = [0.5, 0.5, 0.5]
self.character = character
cancellable?.cancel()
} else {
print("Error: Unable to load model as BodyTrackedEntity")
}
})
字符串
当我将同一个模型简单地作为实体导入时,去掉身体跟踪,我可以将它附加到水平面或身体上,它可以正常加载。因此,为了3D跟踪的目的,模型中有些东西是错误的。
有人成功地将自定义3D模型加载到Xcode中用于身体跟踪吗?
x1c 0d1x(使用身体跟踪时模型外观不正确)
(仅作为实体添加时模型外观正确-此处未启用身体跟踪)
1条答案
按热度按时间pxyaymoc1#
为AR身体跟踪准备自定义3D角色
要在实时ARKit/RealityKit mocap中使用自定义角色模型(而不是Apple的
robot.usdz
),请完成以下步骤(并仔细阅读Rigging a model for MoCap文章):x1c 0d1x的数据
代码如下:
个字符
USDZ模型有两个着色器:
OcclusionMaterial
用于身体,SimpleMaterial
用于衣领:的
附言。
唯一的问题是,ARKit/RealityKit的实时MoCap非常不稳定(模型经常无法控制地摇晃),即使视觉系统清楚地区分跟踪的真实世界身体。