如何获取 Facebook AR 手部追踪器的 x 位置?

How to get the x position of the Facebook AR hand tracker?

对于手部追踪器,他们的补丁具有 X、Y 和 Z 信息,当手部被追踪时,会出现一些值。我如何通过脚本获得这些价值?可能吗?没有任何手部跟踪脚本示例。

到目前为止,我有以下方法来确定是否检测到手,但仍然不确定是否获得位置:

//im assuming this is the correct module
const HandTracking = require('HandTracking');
const Scene = require('Scene');

//this is to check if a hand is detected
HandTracking.count.monitor().subscribe(function(e){
   if(e.newValue){
       Debug.log("hand found");
   }
})

更新

所以我假设它有这样的东西:

var thehand = HandTracking.hand(0);
var posx = thehand.cameraTransform.x.lastValue;
Debug.log(posx);

但是这种方式被弃用了?需要使用 subscribeWithSnapshot 但我不确定如何实现它。

它还需要是动态的(?),因为值会随着每次移动而变化。

你走对了,你需要的只是:

var posx = thehand.cameraTransform.x;

这将为您提供手 x 位置的信号。要调试此值,您可以使用:

Diagnostics.watch("hand x",posx);

信号是一个随时间变化的值,它可以绑定到另一个对象属性,例如:

mySceneObject.transform.x =  thehand.cameraTransform.x;

这会将手的x位置信号绑定到物体的x位置,这样物体就会随着手移动。

在此处阅读有关信号的更多信息:https://developers.facebook.com/docs/ar-studio/scripting/reactive

它们是在 AR Studio 中编写脚本的非常强大的工具和基本知识。

希望对您有所帮助!