AR Studio 脚本问题

AR Studio scripting questions

我开始涉足 Facebook AR Studio,甚至知道 JS 调试和测试某些方法非常混乱... 例子: 这有效:

Diagnostics.log(FaceTracking.face(0).mouth.openness.lastValue);

如果我这样做:

Diagnostics.log(FaceTracking.face(0).mouth.openness);

它显示在 console.log class 的所有选项中。

好的!但是当我做同样的事情,但是用另一个 class,比如 "eye",就会发生错误:

Diagnostics.log(FaceTracking.face(0).eye.openness);

或:

Diagnostics.log(FaceTracking.face(0).eyebrow.top);
JavaScript error: TypeError: undefined is not an object (evaluating 'FaceTracking.face(0).eyebrow.top')

我试过眉毛和眼睛,但没有任何反应,只有错误消息。 怎么回事?

问题是 "eye" 不是 FaceTracking 的 属性。 您必须指定要监视的眼睛 "leftEye" 或 "rightEye"。 尝试像这样只记录面部方法:

Diagnostics.log(FaceTracking.face(0))

您可以在控制台中看到所有可用的方法和属性,例如 leftEye、rightEye、leftEyebrow、rightEyebrow、mouth 等。您可以更深入地记录其中的每一个,例如:

Diagnostics.log(FaceTracking.face(0).rightEye)

然后亲眼看看 "rightEye" 提供的功能。

我强烈建议您使用诊断来了解哪些方法和属性可用于您正在使用的模块。您几乎可以在 SDK 中记录所有内容。我什至在 Medium 上写了一个完整的教程 ;)

正如 Trinca 提到的,"eye" 不是面部模块的有效 属性。您可以在此处的文档页面上查看有效属性列表:https://developers.facebook.com/docs/camera-effects/reference/facetracking_module/face_class

眼睛模块的可用属性可以在这里找到: https://developers.facebook.com/docs/camera-effects/reference/facetracking_module/eye_class

为了您的目的,这应该有效:

Diagnostics.watch("left eye openness", FaceTracking.face(0).leftEye.openness);
Diagnostics.watch("right eye openness", FaceTracking.face(0).rightEye.openness);