Aframe プロジェクトで Daydream リモートの設定に取り組んでいます。Daydream リモートのコンポーネントはまだありませんが、すぐに完成させたいと思っています。今後の Aframe リリースでサポートをメインラインにする予定のようです。
しかし、手巻きサポートは問題ありません。
まず、準備として行う必要があることがいくつかあります。
- Pixel に Chrome Beta 56 をダウンロードします: https://www.google.com/chrome/browser/beta.html
。
- 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
}