0

Three.js シーンの「ヘッド マウント」モードから手を認識させるために、Leap Motion センサーを Oculus Rift SDK2 デバイスに取り付けました。

controller.use('handHold').use('transform', {
    optimizeHMD: true
  }).use('handEntry').use('screenPosition').use('riggedHand', {
    parent: scene,
    renderer: renderer,
    scale: getParam('scale'),
    positionScale: getParam('positionScale'),
    helper: false,
    offset: new THREE.Vector3(0, 0, 0),
    renderFn: function() {
      renderer.render(scene, camera);
      return controls.update();
    },
    materialOptions: {
      wireframe: true
    },
    dotsMode: getParam('dots'),
    stats: stats,
    camera: camera,
    boneLabels: function(boneMesh, leapHand) {
      if (boneMesh.name.indexOf('Finger_03') === 0) {
        return leapHand.pinchStrength;
      }
    },
    boneColors: function(boneMesh, leapHand) {
      if ((boneMesh.name.indexOf('Finger_0') === 0) || (boneMesh.name.indexOf('Finger_1') === 0)) {
        return {
          hue: 0.6,
          saturation: leapHand.pinchStrength
        };
      }
    },
    checkWebGL: true
  }).connect();

しかし、「optimizeHMD = true」行は無視されていると思います。リープ センサーはデスクトップ モードのように私の手を認識します。

私はいくつかの助けに感謝します!

4

1 に答える 1

0

Leap SDK にはあまり詳しくありませんが、optimizeHMD をプラグインのオプションとして渡す必要があるという兆候は見当たりませんが、設定する必要があるコントローラー オブジェクトの状態です。このページとこのに従って、コントローラーの構築中にoptimizeHMDパラメーターとしてコントローラーに渡すか、後で呼び出しcontroller.setOptimizeHMD(true|false)てオンとオフを切り替えることができます。ただし、これがコントローラープラグインの1つに渡す有効なオプションであると言うものは何もありません。

HMD モードと非 HMD モード間の変換は、おそらくこのフラグに基づいてコントローラー レベルで行われ、変換プラグインによってフラグが単に無視されているのではないかと思います。

于 2015-04-17T19:26:29.470 に答える