開発者向けの実際のキャプチャの混在Mixed reality capture for developers

注意

HoloLens 2 に固有のガイダンスについて近日します。More guidance specific to HoloLens 2 coming soon.

参照してくださいアプリで有効にする MRC下 HoloLens 2 のガイダンスについては新しい MRC 機能。See Enabling MRC in your app below for guidance on a new MRC capability for HoloLens 2.

ユーザーがかかる場合がありますので、実際のキャプチャを混合(MRC) 写真またはビデオをいつでも、いくつか点が、アプリケーションを開発するときに点に注意する必要があります。Since a user could take a mixed reality capture (MRC) photo or video at any time, there are a few things that you should keep in mind when developing your application. これには、MRC 画質と MRCs をキャプチャ中にシステムの変更に応答するためのベスト プラクティスが含まれます。This includes best practices for MRC visual quality and being responsive to system changes while MRCs are being captured.

開発者は、それぞれのアプリに、複合現実のキャプチャと挿入を統合できますもシームレスにします。Developers can also seamlessly integrate mixed reality capture and insertion into their apps.

MRC HoloLens (第 1 世代) では、ビデオをサポートしており、720 p、最大の写真を MRC HoloLens 2 の 4 K 解像度を最大 1080p と写真のビデオをサポートします。MRC on HoloLens (first-generation) supports videos and photos up to 720p, while MRC on HoloLens 2 supports videos up to 1080p and photos up to 4K resolution.

品質 MRC の重要性The importance of quality MRC

複合現実にキャプチャされた写真とビデオが初めてユーザーがアプリの必要があります。Mixed reality captured photos and videos are likely the first exposure a user will have of your app. Microsoft Store のページで、またはソーシャル ネットワーク上で MRCs を共有する他のユーザーから複合現実のスクリーン ショットとしてかどうか。Whether as mixed reality screenshots on your Microsoft Store page or from other users sharing MRCs on social networks. MRC を使用するには、アプリのデモ、ユーザーを教育する、その混合世界の相互作用を共有するユーザーに促すユーザー調査および問題を解決します。You can use MRC to demo your app, educate users, encourage users to share their mixed world interactions, and for user research and problem solving.

MRC がアプリに与える影響How MRC impacts your app

アプリで MRC を有効にします。Enabling MRC in your app

既定では、アプリは複合現実のキャプチャを実行するユーザーを有効にする何もありません。By default, an app does not have to do anything to enable users to take mixed reality captures. ただし、HoloLens 2 の設計では、写真/ビデオ (PV) カメラと画面間の距離を増加するためを導入することの PV カメラに配置されたサード カメラ レンダリングを生成するために新しいオプションHoloLens 2します。However, because the design of HoloLens 2 increases the distance between the photo/video (PV) camera and the display, we'll be introducing a new option to produce a 3rd camera render aligned to the PV camera of HoloLens 2.

第 3 のカメラをで選択するとレンダリング HoloLens 2 プランの次の機能強化既定 MRC のエクスペリエンス。Opting-in to 3rd camera render on HoloLens 2 offers the following improvements over the default MRC experience:

  • ホログラム位置は、物理環境と (ほぼ相互作用) を手にする必要があります正確なすべてのではなくオフセット距離で他にも、距離、フォーカス ポイント既定 MRC でわかる場合があります。Hologram alignment to both your physical environment and hands (for near interactions) should be accurate at all distances, instead of having an offset at distances other than the focus point as you might see in the default MRC.
  • MRC 出力ホログラムを表示するために使用されないよう、ヘッドセットで適切な目を侵害されるは。The right eye in the headset won't be compromised, as it won't be used to render the holograms for the MRC output.

アプリで MRC を無効にします。Disabling MRC in your app

2D アプリを使用する場合DXGI_PRESENT_RESTRICT_TO_OUTPUTまたはDXGI_SWAP_CHAIN_FLAG_HW_PROTECTEDを適切に構成されたスワップ チェーンを持つ保護されたコンテンツを表示するには、アプリのビジュアル コンテンツになります複合現実のキャプチャの実行中に隠されて自動的にします。When a 2D app uses DXGI_PRESENT_RESTRICT_TO_OUTPUT or DXGI_SWAP_CHAIN_FLAG_HW_PROTECTED to show protected content with a properly-configured swap chain, the app's visual content will be automatically obscured while mixed reality capture is running.

MRC がアクティブな場合を知るKnowing when MRC is active

AppCaptureクラスは、(オーディオまたはビデオ) の実際のキャプチャを混在システムを実行する場合を把握するアプリで使用できます。The AppCapture class can be used by an app to know when system mixed reality capture is running (for either audio or video).

注意

AppCapture のGetForCurrentViewデバイスの実際のキャプチャを混合する場合は null を使用できない API を返すことができます。AppCapture's GetForCurrentView API can return null if mixed reality capture isn't available on the device. CapturingChanged イベントが中断されると、アプリの登録を解除しても、それ以外の場合 MRC がブロックされた状態を取得できます。It's also important to de-register the CapturingChanged event when your app is suspended, otherwise MRC can get into a blocked state.

ベスト プラクティス (HoloLens 固有)Best practices (HoloLens-specific)

開発者から、追加の作業なしで動作する MRC が必要ですが、アプリの最適な複合現実キャプチャ エクスペリエンスを提供する注意すべきいくつかの点があります。MRC is expected to work without additional work from developers, but there are a few things to be aware of to provide the best mixed reality capture experience of your app.

MRC ブレンドするホログラムのアルファ チャネルを使用して、カメラ画像MRC uses the hologram’s alpha channel to blend with the camera imagery

最も重要な手順では、アプリが不透明な黒にオフになったときではなく透明な黒色にクリアするかどうかを確認します。The most important step is to make sure your app is clearing to transparent black instead of clearing to opaque black. Unity では、既定では、MixedRealityToolkit これは、非 Unity で開発している場合は、1 つの行を変更する必要があります。In Unity, this is done by default with the MixedRealityToolkit but if you are developing in non-Unity, you may need to make a one line change.

場合は、アプリが透明な黒を消去しないで MRC で見成果物の一部を次に示します。Here are some of the artifacts you might see in MRC if your app is not clearing to transparent black:

例エラー:エッジ (透明な黒色に失敗した) コンテンツの周囲の黒Example Failures: Black edges around the content (failing to clear to transparent black)

Failing to clear to transparent black: black edge artifacts around holograms Failing to clear to transparent black: black edge artifacts around holograms

例エラー:ホログラムのシーン全体の背景が黒で表示されます。Example Failures: The entire background scene of the hologram appears black. 黒の背景で結果が 1 のバック グラウンドのアルファ値を設定Setting a background alpha value of 1 results in a black background

黒の背景で結果が 1 のバック グラウンドのアルファ値を設定

予想される結果:ホログラムが現実 (透明な黒色に消去する場合に予期される結果) を組み合わせた正しく表示されます。Expected Result: Holograms appear properly blended with the real-world (expected result if clearing to transparent black)

透明な黒色に消去する場合、予期される結果

解決方法:Solution:

  • アルファ値は 0 不透明な黒で表示されている任意のコンテンツを変更します。Change any content that is showing up as opaque black to have an alpha value of 0.
  • アプリが透明な黒色にクリアすることを確認します。Ensure that the app is clearing to transparent black.
  • Unity をオフに ID3D11DeiceContext::ClearRenderTargetView() で使用される色を変更する必要があります以外 Unity アプリの場合は、MixedRealityToolkit で自動的に既定値です。Unity defaults to clear to clear automatically with the MixedRealityToolkit, but if it’s a non-Unity app you should modify the color used with ID3D11DeiceContext::ClearRenderTargetView(). 不透明な黒 (0,0,0,1) ではなく、透明な黒 (0,0,0,0) をオフにすることを確認するには。You want to ensure you clear to transparent black (0,0,0,0) instead of opaque black (0,0,0,1).

資産のアルファ値を調整できるは、場合に、通常にする必要はありませんようになりました。You can now tune the alpha values of your assets if you’d like, but typically don’t need to. ほとんどの場合、MRCs を適切にすぐに表示されます。Most of the time, MRCs will look good out of the box. MRC には、前乗算されたアルファが想定しています。MRC assumes pre-multiplied alpha. アルファ値は、MRC キャプチャのみ影響します。The alpha values will only affect the MRC capture.

HoloLens で MRC が有効な場合の注意点What to expect when MRC is enabled on HoloLens

次と両方に適用 HoloLens (第 1 世代) HoloLens 2 では、それ以外の場合に記載されていない場合。The following apply to both HoloLens (first-generation) and HoloLens 2, unless otherwise noted:

  • システム 30 Hz レンダリングするアプリケーションが調整されます。The system will throttle the application to 30Hz rendering. これによって MRC、アプリは、定数の予算の予約を保持する必要があるために実行する余地が作成され、30 fps の MRC レコードのビデオ フレーム レートとも一致This creates some headroom for MRC to run so the app doesn’t need to keep a constant budget reserve and also matches the MRC video record framerate of 30fps
  • 記録/ストリーミング時に"sparkle"に、デバイスの適切な目でホログラム内容が表示 MRC: テキストが読みにくくなる可能性があり、ホログラム端のギザギザよりが表示される (第 3 のカメラをで選択すると、上でレンダリングHoloLens 2を回避できますこのセキュリティの侵害)Hologram content in the right eye of the device may appear to “sparkle” when recording/streaming MRC: text may become more difficult to read and hologram edges may appear more jaggy (opting-in to 3rd camera render on HoloLens 2 avoids this compromise)
  • MRC 写真やビデオをアプリケーションの尊重フォーカス ポイント場合、アプリケーションが有効になっている、ホログラムを確認するために役立つ正確に配置します。MRC photos and videos will respect the application’s focus point if the application has enabled it, which will help ensure holograms are accurately positioned. ビデオ、ホログラムが緩やかに変化にドリフト フォーカス ポイントの深さが大幅に変更された場合に表示されるように、フォーカス ポイントが滑らかです。For videos, the Focus Point is smoothed so holograms may appear to slowly drift into place if the Focus Point depth changes significantly. フォーカス ポイントから別の深さではホログラムが現実の世界を参照してください以下の例をフォーカス ポイントが 2 つのメートル単位で設定がホログラムが 1 m に配置されてからオフセット表示されます。Holograms that are at different depths from the focus point may appear offset from the real world (see example below where Focus Point is set at 2 meters but hologram is positioned at 1 meter).

世界中に完全に登録されている 2 m 離れたでホログラムが表示されます。

アプリ内から MRC 機能の統合Integrating MRC functionality from within your app

複合現実アプリは MRC 写真や、アプリ内からビデオのキャプチャを開始できるし、キャプチャされたコンテンツが格納されることがなく、アプリを使用できる、デバイスの「カメラ ロールです」を。Your mixed reality app can initiate MRC photo or video capture from within the app, and the content captured is made available to your app without being stored to the device's "Camera roll." カスタム MRC レコーダーを作成したり、組み込みのカメラ キャプチャ UI を利用することができます。You can create a custom MRC recorder or take advantage of built-in camera capture UI.

組み込みのカメラ UI で MRCMRC with built-in camera UI

開発者が使用できる、 カメラ キャプチャ UI API 複合現実のユーザーにキャプチャされた写真またはほんの数行のコードでビデオを取得します。Developers can use the Camera Capture UI API to get a user-captured mixed reality photo or video with just a few lines of code.

この API は、組み込み MRC カメラ元となる、ユーザーが写真やビデオにかかるし、アプリにキャプチャされたを返しますの UI を起動します。This API launches the built-in MRC camera UI, from which the user can take a photo or video, and returns the resulting capture to your app. か、独自のカメラ UI を作成する必要がある下位レベル キャプチャ ストリームへのアクセス、Mixed Reality キャプチャのカスタム recorder を作成することができます。If you want to create your own camera UI, or need lower-level access to the capture stream, you can create a custom Mixed Reality Capture recorder.

カスタム MRC レコーダーを作成します。Creating a custom MRC recorder

ユーザーが写真をトリガーできる常にまたはシステムを使用してビデオ MRC キャプチャ サービス、カスタム カメラ アプリの構築がホログラム MRC と同じように、カメラのストリームに含めるアプリケーションもかまいません。While the user can always trigger a photo or video using the system MRC capture service, an application may want to build a custom camera app but include holograms in the camera stream just like MRC. これにより、ユーザーの代理としてキャプチャを開始、カスタムの記録、UI をビルドまたは MRC 設定例をいくつかの名前をカスタマイズするアプリケーションです。This allows the application to kick off captures on behalf of the user, build custom recording UI, or customize MRC settings to name a few examples.

HoloStudio は、MRC 効果を使用してカスタム MRC カメラを追加しますHoloStudio adds a custom MRC camera using MRC effects

HoloStudio は、MRC 効果を使用してカスタム MRC カメラを追加します

Unity アプリケーションを参照する必要がありますLocatable_camera_in_Unityホログラムを有効にするプロパティ。Unity Applications should see Locatable_camera_in_Unity for the property to enable holograms.

他のアプリケーションを使用してこれを行うことができます、 Windows メディア キャプチャ Apiをカメラを制御し、仮想ホログラムおよびアプリケーションのオーディオ静止画と動画に含める MRC ビデオおよびオーディオ効果を追加します。Other applications can do this by using the Windows Media Capture APIs to control the Camera and add an MRC Video and Audio effect to include virtual holograms and application audio in stills and videos.

アプリケーションでは、効果を追加する 2 つのオプションがあります。Applications have two options to add the effect:

(これらの名前空間は、Visual Studio によって認識されませんが、文字列がまだ有効なことに注意してください)(Note that these namespaces will not be recognized by Visual Studio, but the strings are still valid)

MRC ビデオ特殊効果 (Windows.Media.MixedRealityCapture.MixedRealityCaptureVideoEffect)MRC Video Effect (Windows.Media.MixedRealityCapture.MixedRealityCaptureVideoEffect)

プロパティ名Property Name 種類Type 既定値Default Value 説明Description
StreamTypeStreamType UINT32 (MediaStreamType)UINT32 (MediaStreamType) 1 (VideoRecord)1 (VideoRecord) この効果を使用するキャプチャ ストリームについて説明します。Describe which capture stream this effect is used for. オーディオは、ご利用いただけません。Audio is not available.
HologramCompositionEnabledHologramCompositionEnabled booleanboolean TRUETRUE 有効またはホログラム ビデオのキャプチャを無効にするフラグします。Flag to enable or disable holograms in video capture.
RecordingIndicatorEnabledRecordingIndicatorEnabled booleanboolean TRUETRUE 有効またはホログラム キャプチャ中に画面の記録のインジケーターを無効にするフラグします。Flag to enable or disable recording indicator on screen during hologram capturing.
VideoStabilizationEnabledVideoStabilizationEnabled booleanboolean FALSEFALSE 有効または、HoloLens の追跡ツールを搭載したビデオ安定化を無効にするフラグします。Flag to enable or disable video stabilization powered by the HoloLens tracker.
VideoStabilizationBufferLengthVideoStabilizationBufferLength UINT32UINT32 00 ビデオ安定化の使用は履歴フレームの数を設定します。Set how many historical frames are used for video stabilization. 0 は、待機時間が 0 と能力とパフォーマンスの観点から「無料」ほぼです。0 is 0-latency and nearly "free" from a power and performance perspective. (待機時間とメモリの 15 フレーム) が最高品質には、15 を使用することをお勧めします。15 is recommended for highest quality (at the cost of 15 frames of latency and memory).
GlobalOpacityCoefficientGlobalOpacityCoefficient FLOATfloat 0.9 (HoloLens) 1.0 (イマーシブ ヘッドセット)0.9 (HoloLens) 1.0 (Immersive headset) グローバルの不透明度の係数ホログラムの範囲内で 0.0 (完全に透明) から 1.0 に設定 (完全に不透明)。Set global opacity coefficient of hologram in range from 0.0 (fully transparent) to 1.0 (fully opaque).
BlankOnProtectedContentBlankOnProtectedContent booleanboolean FALSEFALSE 有効または 2d の UWP アプリの表示が保護されたコンテンツがある場合は、空のフレームを返すことを無効にするフラグします。Flag to enable or disable returning an empty frame if there is a 2d UWP app showing protected content. このフラグが false と 2d の UWP アプリの場合は保護されている表示をコンテンツの 2d の UWP アプリは、複合現実のキャプチャとヘッドセットの両方で保護されたコンテンツ テクスチャによって置き換えられます。If this flag is false and a 2d UWP app is showing protected content, the 2d UWP app will be replaced by a protected content texture in both the headset and in the mixed reality capture.
ShowHiddenMeshShowHiddenMesh booleanboolean FALSEFALSE 有効または無効 holographic のカメラの非表示の領域のメッシュを表示して、隣接するコンテンツにフラグを設定します。Flag to enable or disable showing the holographic camera's hidden area mesh and neighboring content.

MRC オーディオ効果 (Windows.Media.MixedRealityCapture.MixedRealityCaptureAudioEffect)MRC Audio Effect (Windows.Media.MixedRealityCapture.MixedRealityCaptureAudioEffect)

プロパティ名Property Name 種類Type 既定値Default Value 説明Description
MixerModeMixerMode UINT32UINT32 22
  • 0 :マイクのオーディオのみ0 : Mic audio only
  • 1 :システム オーディオのみ1 : System audio only
  • 2 :Mic およびシステム オーディオ2 : Mic and System audio

同時 MRC の制限事項Simultaneous MRC limitations

MRC にアクセスすると同時に複数のアプリに関する制限があります。There are certain limitations around multiple apps accessing MRC at the same time.

写真/ビデオ カメラへのアクセスPhoto/video camera access

写真/ビデオのカメラは、同時にアクセスできるプロセスの数に制限されます。The photo/video camera is limited to the number of processes that can access it at the same time. プロセスを記録中にビデオやその他のプロセスの写真の撮影写真とビデオのカメラの取得に失敗します。While a process is recording video or taking a photo any other process will fail to acquire the photo/video camera. (これは混合の実際のキャプチャと標準のフォトとビデオのキャプチャの両方に適用されます)(this applies to both Mixed Reality Capture and standard photo/video capture)

Windows 10 April 2018 Update では、この制限は適用されません組み込み MRC カメラ UI を使用する写真とビデオのカメラを使用して、アプリが開始した後に、写真やビデオを実行する場合。With the Windows 10 April 2018 Update, this restriction does not apply if the built-in MRC camera UI is used to take a photo or a video after an app has started using the photo/video camera. この場合、解像度と組み込みの MRC カメラ UI のフレーム レートが標準値から低下する可能性です。When this happens, the resolution and framerate of the built-in MRC camera UI might be reduced from its normal values.

Windows 10 年 2018年 10 月 Update では、この制限は適用されません Miracast を介して MRC をストリーミングします。With the Windows 10 October 2018 Update, this restriction does not apply to streaming MRC over Miracast.

MRC アクセスMRC access

Windows 10 April 2018 Update が複数のアプリ (ただし、写真とビデオのカメラへのアクセスをまだ制限) MRC ストリームへのアクセスを制限します。With the Windows 10 April 2018 Update, there is no longer a limitation around multiple apps accessing the MRC stream (however, the access to the photo/video camera still has limitations).

前に、Windows 10 April 2018 Update、アプリのカスタム MRC レコーダーでは、システム MRC (写真をキャプチャ、キャプチャするビデオ、または、Windows Device Portal からのストリーミング) で相互に排他的です。Previous to the Windows 10 April 2018 Update, an app's custom MRC recorder was mutually exclusive with system MRC (capturing photos, capturing videos, or streaming from the Windows Device Portal).

関連項目See also