一覧に戻る

Unity3Dプラグインのカメラ制御

2018.07.08Unity3Dプラグイン

Unity3Dプラグインのカメラ制御について説明します。

カメラ制御

WikitudeCameraには、カメラの設定を変更するためのAPIが用意されています。
最初のカテゴリの設定はWikitudeCameraのインスペクタで直接表示と編集ができますが、2番目のカテゴリはスクリプトのみで変更できます。

インスペクタの設定

有効なカメラレンダリング

デフォルトでは、WikitudeCameraスクリプトはシーンの背景にカメラフレームをレンダリングします。このオプションを無効にすると、Wikitude SDKはあらゆる種類のレンダリングを停止します。これは、WikitudeCameraスクリプトは同じGameObjectにカメラコンポーネントをアタッチする必要がないことを意味します。

静的なカメラ

デフォルトでは、WikitudeCameraスクリプトは、実際のカメラが映しているものに対応するために、ワールドスペース内のGameObjectを移動します。Static Cameraオプションが有効になっている場合、WikitudeCamera GameObjectは決して動かず、すべてのトラッキング可能な項目がカメラに対して相対的に移動されます。さらに、WikitudeCamera GameObjectを自分で移動することができ、トラッキング可能な項目はそれに応じてトラッキングされます。

カメラ解像度

カメラ解像度設定は、使用する解像度を示します。使用可能なオプションは、SD、HDおよびFullHDです。必要な解像度が利用できない場合は、最も近い利用可能な解像度が代わりに使用されます。また、[自動]を選択することもでき、この場合にはSDKはデバイスの機能に基づいて解像度を選択します。

カメラフレームレート

カメラフレームレート設定は、30 FPSと60 FPSを選択できます。60 FPSが選択されていても、デバイスが60 FPSをサポートしていない場合は、代わりに30 FPSが使用されます。また、[自動]を選択すると、SDKはデバイスの機能に基づいてフレームレートを選択します。

スクリプトのみの設定

カメラ位置

DevicePositionプロパティを使用すると、フロントカメラとバックカメラを切り替えることができます。

フォーカスモード

FocusModeプロパティを使用すると、カメラのフォーカスモードをLocked、OnceまたはContinuousから選択できます。Lockedモードでは、フレーム内にある被写体にフォーカスが固定されます。Onceモードでは、フォーカスが現在のビューに合わせて一度だけ調整されます。連続モードでは、フォーカスがビューに合わせて調整し続けます。

手動フォーカス

ManualFocusプロパティを使用すると、FocusModeがLockedに設定されているときに焦点距離をカスタム距離に設定できます。 このプロパティは0〜1の値を受け入れます。0はカメラを可能な限り近くにフォーカスすることを意味します。

フラッシュモード

FlashModeプロパティを使用すると、フラッシュのオン/オフを切り替えることができます。

ズームレベル

ZoomLevelプロパティを使用すると、カメラに使用されるズームレベルを変更できます。有効な値は、1.0から最大ズームレベルまでです。最初にMaxZoomLevelプロパティを照会してください。MaxZoomLevelプロパティに1.0が設定されている場合はデバイスのズーム機能を使用することができません。

オートフォーカス機能の限定(iOSのみ)

AutoFocusRestrictionプロパティを使用すると、カメラのオートフォーカスをNearまたはFarに限定できます。デフォルトではオートフォーカス機能の限定は設定されていません。

トラッキング可能なスケールを無視する

IgnoreTrackableScaleプロパティを有効にすると、カメラはトラッキングのためにトラッキング可能な項目のスケーリングを無視して1.0fと仮定します。trackableのスケールを変更するTransformOverrideを実行する場合はtrueに設定する必要があります。

Transformオーバーライド

ActiveOverrideを使用すると、WikitudeCameraまたはTrackablesにTransformの変更が加えられる前に、カスタムのTransformOverrideを適用できます。

任意のポイントにフォーカスする

WikitudeCamera.FocusAtPointOfInterest APIを使用して、カメラのフォーカスポイントを変更することができます。 任意のポイントにフォーカスを指定すると、フォーカスモードが変更されることがあります。このメソッドの呼び出しに渡されるパラメータは、基になるカメラがフォーカスするスクリーン座標です。 範囲は "0, 0"から "Screen.width, Screen.height"までです。値は、手動で選択することもできますし、例えば、"Input.mousePosition"メソッドを使用して、ユーザーがタップした任意のポイントを設定することもできます。デバイス方向の変更は、SDKの内部処理で考慮されています。

任意のポイントに露出する

WikitudeCamera.ExposeAtPointOfInterest APIを使用してカメラの露出ポイントを変更することができます。 任意のポイントに露出を指定すると、露出モードが変更されることがあります。このメソッドの呼び出しに渡されるパラメータは、基になるカメラがフォーカスするスクリーン座標です。 範囲は "0, 0"から "Screen.width, Screen.height"までです。値は、手動で選択することもできますし、例えば、"Input.mousePosition"メソッドを使用して、ユーザーがタップした任意のポイントを設定することもできます。デバイス方向の変更は、SDKの内部処理で考慮されています。