spark-ar-studio - 无法设置未定义的属性“rotationX”
问题描述
我正在做一个基于圣诞节的过滤器,我希望我的身体保持静止并且不会根据面部运动而旋转。我有一个代码,但由于某种原因,此错误显示“无法设置未定义的属性'rotationX'”。有人可以帮助解决这个问题吗?在 Spark AR v104 上运行
这是代码:
var Scene = require('Scene');
var Textures = require('Textures');
var Materials = require('Materials');
var FaceTracking = require('FaceTracking');
var Animation = require('Animation');
var Reactive = require('Reactive');
var TouchGestures = require('TouchGestures');
const Instruction = require('Instruction');
var face = FaceTracking.face(0);
var neck = Scene.root.findFirst('Bone.004');
var neckmovement = 80;
neck.transform.rotationX = face.cameraTransform.rotationX.mul(-1.0).sum(0).expSmooth(neckmovement);
neck.transform.rotationY = face.cameraTransform.rotationZ.mul(1.0).sum(0).expSmooth(neckmovement);
neck.transform.rotationZ = face.cameraTransform.rotationY.mul(-1.0).sum(0).expSmooth(neckmovement);
解决方案
findFirst
返回一个承诺(https://sparkar.facebook.com/ar-studio/learn/reference/classes/scenemodule.scene/#methods)。所以你需要做这样的事情:
var Scene = require('Scene');
var Textures = require('Textures');
var Materials = require('Materials');
var FaceTracking = require('FaceTracking');
var Animation = require('Animation');
var Reactive = require('Reactive');
var TouchGestures = require('TouchGestures');
const Instruction = require('Instruction');
(async function() {
var face = FaceTracking.face(0);
var neck = await Scene.root.findFirst('Bone.004');
var neckmovement = 80;
neck.transform.rotationX = face.cameraTransform.rotationX.mul(-1.0).sum(0).expSmooth(neckmovement);
neck.transform.rotationY = face.cameraTransform.rotationZ.mul(1.0).sum(0).expSmooth(neckmovement);
neck.transform.rotationZ = face.cameraTransform.rotationY.mul(-1.0).sum(0).expSmooth(neckmovement);
})();
.then(...)
或者,如果您不想将所有内容包装在异步函数中,您可以决定使用promise。但我会推荐异步函数方法,因为它最有可能使您的代码中的事情变得更容易一些。
推荐阅读
- javascript - 为什么我的本地存储数据没有添加到数组中?
- python - Python错误:TypeError:(“
不能转换为日期时间") - java - 拿起_JAVA_OPTIONS:-Dawt.useSystemAAFontSettings=on
- javascript - 使用数据重定向到另一个页面
- php - shell_exec() 来自 php 的 tcpdump
- javascript - 如何使用 Javascript 将 HTML 属性添加到数组
- python - 将字符串分配给列表
- java - Eclipse:读取不同文件夹中的包
- java - n >> 3 或 n & 3 是否分别比 n/8 或 n % 8 提供任何优势?
- node.js - 如何解决此错误:JSON.parse 角度位置 1 处 JSON 中的意外标记 o