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

时间:2018-12-05 08:34:46

标签: javascript spark-ar-studio

对于手部跟踪器,其补丁程序具有信息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,但我不确定如何实现。

它还必须是动态的(?),因为该值随每个移动而变化。

1 个答案:

答案 0 :(得分:1)

您处在正确的轨道上,您所需要的只是:

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中编写脚本的基本知识。

希望这会有所帮助!