4

A-Frame を使い始めたばかりで、vive コントロールと oculus-touch コントロールは表示されますが、Google デイドリームには何も表示されません。

コンポーネントのリポジトリを見てきましたが、うまくいくように見えるものは何もありません。現在調査するのに最も近いのは Gamepad API ですが、何も見つからないことに驚いています。

Pixel XL と daydream を持っていますが、ヘッド トラッキングと視線ベースのコントロールだけでなく、コントローラーを組み込みたいと考えています。誰かが私を正しい方向に向けることができますか?

ありがとう

更新- Daydream コントローラーがクリックで動作するようになりました。360-image-gallery ( https://aframe.io/examples/showcase/360-image-gallery/ ) を実行すると、Daydream コントローラーからのクリックを受け入れます。前回の試行でタイムアウトしたか、正しくペアリングしていなかった可能性があります。これからも遊びます!

4

3 に答える 3

5

Aframe プロジェクトで Daydream リモートの設定に取り組んでいます。Daydream リモートのコンポーネントはまだありませんが、すぐに完成させたいと思っています。今後の Aframe リリースでサポートをメインラインにする予定のようです。

しかし、手巻きサポートは問題ありません。

まず、準備として行う必要があることがいくつかあります。

  1. Pixel に Chrome Beta 56 をダウンロードします: https://www.google.com/chrome/browser/beta.html
  2. Chrome Beta を開きchrome://flags、WebVR および Gamepad フラグに移動して有効にします。

これで、Aframe v0.4 以降で構築されたエクスペリエンスを真の WebVR で起動できるようになります。通常の Daydream 画面でプロンプトが表示されます (電話をヘッドセットに置き、リモコンを接続します)。ローカル開発環境に接続している場合は、安全な接続の警告が表示されますが、これは煩わしくはありません。あなたが働くのを止めてはいけません。

次に、真の WebVR を実行しているので、ゲームパッド API を活用して、空想リモコンから情報を取得する必要があります。接続されていることをログに記録することから始めましょう。

    window.addEventListener('gamepadconnected', function(evt) {
      console.log("Gamepad connected at index %d: %s. %d buttons, %d axes.",
        e.gamepad.index, e.gamepad.id,
        e.gamepad.buttons.length, e.gamepad.axes.length);
    });

3 番目に、接続をログに記録しているので、更新ループをセットアップして、ゲームパッドの現在の状態を取得する必要があります。でこれを行うことができますrequestAnimationFrame。こちらのチュートリアルに従ってください: https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API/Using_the_Gamepad_API

基本的な dayframe-remote コンポーネントを公開したら、ここにリンクを投稿します。これがあなたが始めるのに役立つことを願っています!


編集:以下の提案がうまくいくようです。追跡されるコントロールの ID として「Daydream Controller」を渡すだけですtracked-controls="id: Daydream Controller"


Daydream コントローラの出力例を次に示します。現時点では、アプリやホーム ボタンではなく、トラックパッド ボタンのみが露出しているように見えます。

    { 
      axes: [0, 1],
      buttons: [{
        pressed: false,
        touched: false,
        value: 0
      }],
      connected: true,
      displayId: 16,
      hand: "left",
      id: "Daydream Controller",
      index: 0,
      mapping: "",
      pose: {
        angularAcceleration: null,
        angularVelocity: [0, 0, 0],
        hasOrientation: true,
        hasPosition: false,
        linearAcceleration: [0,0,0],
        orientation: [0,0,0,1],
        position: null
      },
      timestamp: 1234567890123
    }
于 2016-12-28T22:13:41.003 に答える
1

あなたが試してみる何か...

現在の A-Frame 0.4.0 サポートがtracked-controls機能する方法:

空の文字列の ID 値にのみ一致するように指定した場合は''、ポーズを持つ任意のゲームパッドに一致する必要があります...したがって、次のようなものを試すことができます

<a-entity tracked-controls="id:"></a-entity>

それがイベントなどを取得するかどうかを確認しますか?

于 2016-12-28T22:34:48.833 に答える