look-controlsコンポーネントです。

  • VRヘッドマウントディスプレイ(HMD)を回転させたときにエンティティを回転させる。
  • マウス操作によるエンティティの回転。
  • タッチスクリーンをタッチ・ドラッグしたときにエンティティを回転させる。

#

ルックコントロールコンポーネントは、通常、カメラコンポーネントと一緒に使用されます。

<a-entity camera look-controls position="0 1.6 0"></a-entity>

# プロパティ

Property 概要 デフォルト値
enabled ルックコントロールが有効かどうか。 true
hmdEnabled ヘッドマウントディスプレイが有効かどうか true
reverseMouseDrag マウスドラッグを反転させるかどうか。 false
reverseTouchDrag タッチドラッグを反転させるかどうか。 false
touchEnabled マジックウィンドウモードでタッチコントロールを使用するかどうか。 true
mouseEnabled 2D モードでカメラを動かすのにマウスを使うかどうか。 true
pointerLockEnabled Pointer Lock API (opens new window) を使ってカーソルを隠すかどうか。 false
magicWindowTrackingEnabled モバイルデバイスでジャイロスコープのカメラトラッキングが有効かどうか。 true

# ルックコントロールをカスタマイズする

A-Frameのlook-controlsコンポーネントは、主にVR向けのもので、プラットフォームを超えて動作するように適切なデフォルト値が設定されていますが、多くの開発者は、VR以外のユースケース(例えば、デスクトップ、タッチスクリーン)にA-Frameを使用したいと考えることもあります。マウスやタッチの動作を変更したいと思うかもしれません。

動作を設定する最善の方法は、現在のlook-controlsコンポーネントコードをコピーしてカスタマイズすること (opens new window)です。これにより、コントロールを好きなように構成することができます(例えば、タッチ時のピッチを制限したり、1つの軸を反転させたり)。もし、すべての可能な設定をコアコンポーネントに含めると、さまざまなフラグを維持することになります。

このコンポーネントは、Browserify/Webpackのコンテキストで動作するため、require文をA-Frameグローバル(例:AFRAME.registerComponentwindow.THREE)に置き換えて、module.exportsを削除する必要があります。

# 注意事項

ルックコントロール用のコンポーネントを自作する場合は、HMDトラッキングの仕組みをコピーして、コンポーネントに貼り付ける必要があります。将来的には、より簡単にコントロールを作成できるような仕組みを用意する予定です。