Unity でのフォーカス ポイントFocus point in Unity

名前空間: UnityEngine.XR.WSANamespace: UnityEngine.XR.WSA
種類:HolographicSettingsType: HolographicSettings

フォーカス ポイントHoloLens、ホログラムを安定化を現在最も実行する方法についてのヒントの指定に設定されている表示できます。The focus point can be set to provide HoloLens a hint about how to best perform stabilization on the holograms currently being displayed.

Unity でフォーカス ポイントを設定する場合は、すべてのフレームを使用して設定する必要がHolographicSettings.SetFocusPointForFrame() します。If you want to set the Focus Point in Unity, it needs to be set every frame using HolographicSettings.SetFocusPointForFrame(). フォーカス ポイントがフレームに設定されていない場合、既定の安定化プレーンが使用されます。If the Focus Point is not set for a frame, the default stabilization plane will be used.

注意

新しい Unity プロジェクトでは既定では、設定"を有効にする深度バッファーの共有 オプションがあります。By default, new Unity projects have the "Enable Depth Buffer Sharing" option set. このオプションでは、没入型のデスクトップ ヘッドセットまたは Windows を実行している HoloLens のいずれかで実行されている Unity アプリ 10 April 2018 Update (RS4) 後では、アプリを指定せず、自動的にホログラム安定性を最適化するために Windows を深度バッファーを送信または、フォーカス ポイント:With this option, a Unity app running on either an immersive desktop headset or a HoloLens running the Windows 10 April 2018 Update (RS4) or later will submit your depth buffer to Windows to optimize hologram stability automatically, without your app specifying a focus point:

  • 没入型のデスクトップ ヘッドセット、これにはピクセルあたりの深さに基づく reprojection 有効になります。On an immersive desktop headset, this will enable per-pixel depth-based reprojection.
  • Windows を実行している、HoloLens 10 April 2018 Update または後で、分析、最適な安定化平面を自動的に選択する、深度バッファー。On a HoloLens running the Windows 10 April 2018 Update or later, this will analyze the depth buffer to pick an optimal stabilization plane automatically.

どちらの方法を提供より高い画質を明示的な作業なしフォーカス ポイントを選択するアプリによって各フレームします。Either approach should provide even better image quality without explicit work by your app to select a focus point each frame. 注意くださいフォーカス ポイントを手動で指定する場合と、上記で説明した自動動作をオーバーライド通常ホログラム安定性が削減されます。Note that if you do provide a focus point manually, that will override the automatic behavior described above, and will usually reduce hologram stability. 一般に、する必要がありますだけを指定する手動のフォーカス ポイントを Windows に更新されていない HoloLens でアプリが実行されているときに 10 April 2018 Update。Generally, you should only specify a manual focus point when your app is running on a HoloLens that has not yet been updated to the Windows 10 April 2018 Update.

Example

使用可能なオーバー ロードで推奨されているとおり、フォーカス ポイントを設定する方法はたくさんあります、 SetFocusPointForFrame静的関数です。There are many ways to set the Focus Point, as suggested by the overloads available on the SetFocusPointForFrame static function. 次に示す各フレームを指定されたオブジェクトにフォーカス平面を設定する簡単な例を示します。Presented below is a simple example to set the focus plane to the provided object each frame:

public GameObject focusedObject;
void Update()
{
    // Normally the normal is best set to be the opposite of the main camera's 
    // forward vector.
    // If the content is actually all on a plane (like text), set the normal to 
    // the normal of the plane and ensure the user does not pass through the 
    // plane.
    var normal = -Camera.main.transform.forward;     
    var position = focusedObject.transform.position;
    UnityEngine.XR.WSA.HolographicSettings.SetFocusPointForFrame(position, normal);
}

上記の単純なコードがホログラム安定性を減らす場合は、ユーザーの背後にある最終的にフォーカスがあるオブジェクトを終了することに注意してください。Note that the simple code above may end up reducing hologram stability if the focused object ends up behind the user. これは、設定「を有効にする深度バッファーの共有」フォーカス ポイントを手動で指定する代わりにためにです。This is why you should generally set "Enable Depth Buffer Sharing" instead of manually specifying a focus point.

関連項目See also