Unity でのカメラCamera in Unity

Mixed reality ヘッドセットを着用する holographic 世界の中心になります。When you wear a mixed reality headset, it becomes the center of your holographic world. Unityカメラコンポーネント ステレオスコ ピック レンダリングは自動的に処理し、は、ヘッドの移動と回転するときに従う、プロジェクトで「仮想現実はサポートされて」"Windows Mixed Reality"で選択されている (デバイスとしてその他の設定 セクションの Windows ストアのプレーヤー設定)。The Unity Camera component will automatically handle stereoscopic rendering and will follow your head movement and rotation when your project has "Virtual Reality Supported" selected with "Windows Mixed Reality" as the device (in the Other Settings section of the Windows Store Player Settings). これは、以前のバージョンの Unity で"Windows Holographic"として表示可能性があります。This may be listed as "Windows Holographic" in older versions of Unity.

ただし、表示品質を最適化してホログラム安定性カメラの設定を以下に説明を設定する必要があります。However, to fully optimize visual quality and hologram stability, you should set the camera settings described below.

注意

これらの設定は、アプリの各シーンでカメラに適用する必要があります。These settings need to be applied to the Camera in each scene of your app.

既定では、Unity では、新しいシーンを作成するときにカメラのコンポーネントが含まれていますが正しく適用されている以下の設定はありませんが、階層内のメイン カメラ GameObject が格納されます。By default, when you create a new scene in Unity, it will contain a Main Camera GameObject in the Hierarchy which includes the Camera component, but does not have the settings below properly applied.

イマーシブ ヘッドセットとホログラフィックHolographic vs. immersive headsets

Unity のカメラのコンポーネントの既定の設定では、現実の世界があるないために、スカイ ボックスのような背景を必要とする従来の 3D アプリケーションです。The default settings on the Unity Camera component are for traditional 3D applications which need a skybox-like background as they don't have a real world.

  • 実行されているときに、 イマーシブ ヘッドセット、ユーザーに表示される、すべてのものをレンダリングして、したがって、スカイ ボックスを保持する必要あります可能性があります。When running on an immersive headset, you are rendering everything the user sees, and so you'll likely want to keep the skybox.
  • ただしで実行されているときに、 holographic ヘッドセットなどHoloLens、現実の世界がレンダリングすべてカメラの背後に表示されます。However, when running on a holographic headset like HoloLens, the real world should appear behind everything the camera renders. これを行うには、HoloLens、透明色としてレンダリングを黒) の「透過的カメラ背景を設定するスカイ ボックス テクスチャではなく。To do this, set the camera background to be transparent (in HoloLens, black renders as transparent) instead of a Skybox texture:
    1. 階層ウィンドウで、メイン カメラを選択します。Select the Main Camera in the Hierarchy panel
    2. Inspector パネルで、カメラのコンポーネントを検索し、スカイ ボックスのフラグをクリア ドロップダウンを純色に変更します。In the Inspector panel, find the Camera component and change the Clear Flags dropdown from Skybox to Solid Color
    3. バック グラウンドのカラー ピッカーを選択し、(0, 0、0, 0) に、RGBA 値を変更します。Select the Background color picker and change the RGBA values to (0, 0, 0, 0)

実行時にチェックしてが、没入型か holographic にヘッドセットかどうかを判断するスクリプト コードを使用するHolographicSettings.IsDisplayOpaqueします。You can use script code to determine at runtime whether the headset is immersive or holographic by checking HolographicSettings.IsDisplayOpaque.

カメラの位置Positioning the Camera

(X: として、ユーザーの開始位置を想定している場合、アプリのレイアウトに簡単になります0、Y:0、Z:0).It will be easier to lay out your app if you imagine the starting position of the user as (X: 0, Y: 0, Z: 0). Main Camera は、ユーザーの頭の動きを追跡は、ために、Main Camera の開始位置を設定して、ユーザーの開始位置を設定できます。Since the Main Camera is tracking movement of the user's head, the starting position of the user can be set by setting the starting position of the Main Camera.

  1. 階層ウィンドウでメイン カメラを選択します。Select Main Camera in the Hierarchy panel

  2. Inspector パネルで、変換コンポーネントを検索し、(x: から位置を変更します。0、Y:1、z:-10) には、(x:0、Y:0、Z:0)In the Inspector panel, find the Transform component and change the Position from (X: 0, Y: 1, Z: -10) to (X: 0, Y: 0, Z: 0)

    インスペクター ウィンドウの Unity でのカメラCamera in the Inspector pane in Unity
    インスペクター ウィンドウの Unity でのカメラCamera in the Inspector pane in Unity

クリップ面Clip planes

コンテンツのレンダリングに近すぎるユーザーできます複合現実で使いやすい。Rendering content too close to the user can be uncomfortable in mixed reality. 調整することができます、近く、はるかにクリップ平面カメラ コンポーネント。You can adjust the near and far clip planes on the Camera component.

  1. 階層ウィンドウで、メイン カメラを選択します。Select the Main Camera in the Hierarchy panel
  2. Inspector パネルで、カメラ コンポーネント クリッピング平面を見つけて.85 0.3 からほぼテキスト ボックスに変更します。In the Inspector panel, find the Camera component Clipping Planes and change the Near textbox from 0.3 to .85. もっと近づきレンダリングされたコンテンツがユーザーの不安につながるとあたりしないで、距離のガイドラインをレンダリングContent rendered even closer can lead to user discomfort and should be avoided per the render distance guidelines.

複数のカメラMultiple Cameras

シーンでカメラの複数のコンポーネントがある場合は、Unity ステレオスコ ピックのレンダリングに使用するには、どのカメラを知っているし、どの GameObject をチェックしてヘッドの追跡が MainCamera タグ。When there are multiple Camera components in the scene, Unity knows which camera to use for stereoscopic rendering and head tracking by checking which GameObject has the MainCamera tag.

取り付けられていないエクスペリエンス中Recentering a seated experience

構築する場合、取り付けられているスケール エクスペリエンス、呼び出すことによって、ユーザーの現在のヘッドの位置に戻しますの Unity の世界配信元ことができます、 XR します。InputTracking.Recenter メソッド。If you're building a seated-scale experience, you can recenter Unity's world origin at the user's current head position by calling the XR.InputTracking.Recenter method.

Reprojection モードReprojection modes

HoloLens とイマーシブ ヘッドセットの両方には、各フレームの光子が出力されるときに、ユーザーの実際のヘッドの位置の misprediction の調整を表示するため、アプリが reproject されます。Both HoloLens and immersive headsets will reproject each frame your app renders to adjust for any misprediction of the user's actual head position when photons are emitted.

既定では。By default:

  • イマーシブ ヘッドセット位置指定 reprojection、アプリは、特定のフレームの深度バッファーを提供する場合、ホログラムの位置と向きの両方で misprediction を調整することを実行します。Immersive headsets will perform positional reprojection, adjusting your holograms for misprediction in both position and orientation, if the app provides a depth buffer for a given frame. 深度バッファーが指定されていない場合、システムはキャッシュミス方向にのみ修正します。If a depth buffer is not provided, the system will only correct mispredictions in orientation.
  • Holographic ヘッドセットかどうか、アプリが、深度バッファーを提供するかどうか、HoloLens の位置指定 reprojection は実行するようにします。Holographic headsets like HoloLens will perform positional reprojection whether the app provides its depth buffer or not. レンダリングは、現実の世界で提供される、安定したバック グラウンドではスパースでは多くの場合、位置指定 reprojection は深度バッファー HoloLens のない可能性があります。Positional reprojection is possible without depth buffers on HoloLens as rendering is often sparse with a stable background provided by the real world.

作成することがわかっている場合、方向のみのエクスペリエンス剛体本文-ロックされているコンテンツ (例: 360 度のビデオ コンテンツ) のみで印刷の向きを reprojection モードを明示的に設定できますHolographicSettings.ReprojectionModeHolographicReprojectionMode.OrientationOnlyします。If you know that you are building an orientation-only experience with rigidly body-locked content (e.g. 360-degree video content), you can explicitly set the reprojection mode to be orientation only by setting HolographicSettings.ReprojectionMode to HolographicReprojectionMode.OrientationOnly.

Windows と、深度バッファーの共有Sharing your depth buffers with Windows

共有を Windows の各フレームは、アプリ 2 つの要因の 1 つでホログラム安定性、ヘッドセットの種類に基づいて、アプリの深度バッファーのレンダリングしています。Sharing your app's depth buffer to Windows each frame will give your app one of two boosts in hologram stability, based on the type of headset you're rendering for:

  • イマーシブ ヘッドセット深度バッファーが指定の位置と向きの両方で misprediction、ホログラムを調整する場合に、位置指定 reprojection を実行できます。Immersive headsets can perform positional reprojection when a depth buffer is provided, adjusting your holograms for misprediction in both position and orientation.
  • Holographic ヘッドセットHoloLens が自動的に選択されているように、フォーカス ポイント深度バッファーが提供されている場合は、最もコンテンツと交差する面に沿ったホログラム安定性を最適化します。Holographic headsets like HoloLens will automatically select a focus point when a depth buffer is provided, optimizing hologram stability along the plane that intersects the most content.

Unity アプリは Windows に深度バッファーを提供するかどうかを設定するには。To set whether your Unity app will provide a depth buffer to Windows:

  1. 移動して編集 > プロジェクト設定 > Player > ユニバーサル Windows プラットフォーム タブ > XR 設定します。Go to Edit > Project Settings > Player > Universal Windows Platform tab > XR Settings.
  2. 展開、 Windows Mixed Reality SDK項目。Expand the Windows Mixed Reality SDK item.
  3. オンまたはオフにして、深度バッファーの共有を有効にするチェック ボックスをオンします。Check or uncheck the Enable Depth Buffer Sharing check box. これは、アップグレードされた古いプロジェクトに対して既定でこの機能が Unity に追加された、オフになりますのでを作成した新しいプロジェクトで既定でチェックされます。This will be checked by default in new projects created since this feature was added to Unity and will be unchecked by default for older projects that were upgraded.

Windows に深度バッファーを提供することにより、Windows 正確にマップできます、深度バッファー内のピクセルごとの正規化された深度値メートル単位の距離にメイン カメラの Unity で設定したのとほぼ平面を使用している限り、表示品質が向上します。Providing a depth buffer to Windows can improve visual quality so long as Windows can accurately map the normalized per-pixel depth values in your depth buffer back to distances in meters, using the near and far planes you've set in Unity on the main camera. レンダリングがハンドルの深さをパスした場合、一般的な方法で値おく必要がある一般的にここでは、半透明のレンダリングは、既存透けて表示されるときに、深度バッファーに書き込みを渡しますが色ピクセル混乱することが、reprojection 問題ありません。If your render passes handle depth values in typical ways, you should generally be fine here, though translucent render passes that write to the depth buffer while showing through to existing color pixels can confuse the reprojection. レンダリング パスが不正確な深さの値を持つ、最終的な深さピクセルの多くにままがわかっている場合は共有することでオフ"を有効にする深度バッファー"表示品質を向上させる可能性があります。If you know that your render passes will leave many of your final depth pixels with inaccurate depth values, you are likely to get better visual quality by unchecking "Enable Depth Buffer Sharing".

Mixed Reality Toolkit の自動シーンのセットアップMixed Reality Toolkit's automatic scene setup

インポートするときにMRTK が Unity パッケージをリリースからプロジェクトを複製するか、 GitHub リポジトリUnity で新しいメニュー ' Mixed Reality Toolkit' を検索します。When you import MRTK release Unity packages or clone the project from the GitHub repository, you are going to find a new menu 'Mixed Reality Toolkit' in Unity. [構成] メニューで、' Mixed Reality シーン設定の適用 ' メニューが表示されます。Under 'Configure' menu, you will see the menu 'Apply Mixed Reality Scene Settings'. 既定のカメラを削除し、基本コンポーネントを追加します。 これをクリックすると InputManagerMixedRealityCameraParent、およびDefaultCursorします。When you click it, it removes the default camera and adds foundational components - InputManager, MixedRealityCameraParent, and DefaultCursor.

シーンのセットアップの MRTK メニューMRTK Menu for scene setup
シーンのセットアップの MRTK メニューMRTK Menu for scene setup

MRTK で自動シーンのセットアップAutomatic scene setup in MRTK
MRTK で自動シーンのセットアップAutomatic scene setup in MRTK

MixedRealityCamera プレハブMixedRealityCamera prefab

これらのプロジェクト パネルから手動で追加できます。You can also manually add these from the project panel. プレハブとしてこれらのコンポーネントを見つけることができます。You can find these components as prefabs. 検索する場合にMixedRealityCamera、2 つの異なるカメラ プレハブを表示することができます。When you search MixedRealityCamera, you will be able to see two different camera prefabs. 違いは、 MixedRealityCameraはカメラのみプレハブは、 MixedRealityCameraParent Teleportation、モーションなどイマーシブ ヘッドセットの追加のコンポーネントが含まれていますコント ローラーと、境界。The difference is, MixedRealityCamera is the camera only prefab whereas, MixedRealityCameraParent includes additional components for the immersive headsets such as Teleportation, Motion Controller and, Boundary.

MRTK でカメラのプレハブCamera prefabs in MRTK
MRTK でカメラのプレハブCamera prefabs in MRTK

MixedRealtyCamera HoloLens とイマーシブ ヘッドセットの両方をサポートします。MixedRealtyCamera supports both HoloLens and immersive headset. デバイスの種類を検出し、フラグをクリアし、スカイ ボックスなどのプロパティを最適化します。It detects the device type and optimizes the properties such as clear flags and Skybox. 以下、アニメーション コント ローラー モデルでは、カスタムのカーソルなどをカスタマイズでき、Floor、便利なプロパティの一部を見つけることができます。Below you can find some of the useful properties you can customize such as custom Cursor, Motion Controller models, and Floor.

カーソルと床面、モーションのコント ローラーのプロパティProperties for the Motion controller, Cursor and Floor
カーソルと床面、モーションのコント ローラーのプロパティProperties for the Motion controller, Cursor and Floor

関連項目See also