導入事例 - 実際には、セキュリティ ホールを見るCase study - Looking through holes in your reality

ユーザーは、複合現実と Microsoft HoloLens で実行できることを考えて、ときに、通常を引き続き使用質問などの「オブジェクト、ルームに追加できますか」。When people think about mixed reality and what they can do with Microsoft HoloLens, they usually stick to questions like "What objects can I add to my room?" または「どのようなことはレイヤー自分のスペースの上にでしょうか。」or “What can I layer on top of my space?" 検討するもう 1 つの部分を強調表示したい-基本的にマジック — にまたは周囲の実際の物理オブジェクトを検索するのと同じテクノロジを使用して。I’d like to highlight another area you can consider—essentially a magic trick—using the same technology to look into or through real physical objects around you.

技術者The tech

壁面を克服するように、エイリアンした試合かどうか RoboRaid、壁に安全にロックを解除 フラグメント、運が発生しました。UNSC 無限大格納庫を表示する、 E3 2015 で Halo 5 経験、話の内容を見ています。If you've fought aliens as they break through your walls in RoboRaid, unlocked a wall safe in Fragments, or were lucky enough to see the UNSC Infinity hangar in the Halo 5 experience at E3 in 2015, then you've seen what I'm talking about. 想像力に応じて、drywall に一時的なセキュリティ ホールを配置するか、loose floorboard 下の世界を非表示に、このビジュアルのトリックを使用できます。Depending on your imagination, this visual trick can be used to put temporary holes in your drywall or to hide worlds under a loose floorboard.

3 次元のパイプとその他の構造は、壁、侵入者を克服するように作成されたホールによってのみ表示 RoboRaid を追加します。

3 次元のパイプとその他の構造は、壁、侵入者を克服するように作成されたホールによってのみ表示 RoboRaid を追加します。RoboRaid adds three-dimensional pipes and other structure behind your walls, visible only through holes created as the invaders break through.

HoloLens の一意のホログラムはこれらのいずれかを使用して、アプリは、同様の現実は実際のウィンドウを表示しますまたは、床、壁の背後にあるコンテンツの錯覚を提供できます。Using one of these unique holograms on HoloLens, an app can provide the illusion of content behind your walls or through your floor in the same way that reality presents itself through an actual window. 左、自分で移動しが右側にあるを参照してください。Move yourself left, and you can see whatever is on the right side. 、近づくし、すべての複数のビットを確認できます。Get closer, and you can see a bit more of everything. 主な違いは、実際の穴ことが許可される、を通じて、フロアがシリアルすることはできません holographic 魔法のようなコンテンツに上昇中です。The major difference is that real holes allow you through, while your floor stubbornly won't let you climb through to that magical holographic content. (は、タスク バックログを追加します、。)(I'll add a task to the backlog.)

しくみBehind the scenes

この方法は、2 つの効果の組み合わせです。This trick is a combination of two effects. まず、holographic のコンテンツが「空間のアンカー」を使用して、世界中にピン留めFirst, holographic content is pinned to the world using "spatial anchors." アンカーを使用することでそのコンテンツを「world ロック」することで表示されているが視覚的にドリフト近くに、物理オブジェクトから移動した場合や、基になる空間マッピング システムの部屋の 3D モデルを更新してを意味します。Using anchors to make that content "world-locked" means that what you're looking at doesn't visually drift away from the physical objects near it, even as you move or the underlying spatial mapping system updates its 3D model of your room.

第二に、holographic コンテンツは、のみ、実際には、穴を確認できるように、非常に特定の領域に視覚的に制限されます。Secondly, that holographic content is visually limited to a very specific space, so you can only see through the hole in your reality. そのオクルー ジョン論理穴、ウィンドウ、または、トリックを販売するには、ドアを検索を要求する必要があります。That occlusion is necessary to require looking through a logical hole, window, or doorway, which sells the trick. ビューのほとんどをブロックしているものシークレット ジュラシック ディメンションへの領域でのクラック可能性があります適切に配置された恐竜のようになりますだけです。Without something blocking most of the view, a crack in space to a secret Jurassic dimension might just look like a poorly placed dinosaur.

これはなく実際のスクリーン ショット、HoloLens 上 MR 基本 101 からシークレット黄泉の外観の例です。

これはなく実際のスクリーン ショット、方法を示してからシークレット黄泉、 MR 基本 101 HoloLens で検索します。This is not an actual screenshot, but an illustration of how the secret underworld from the MR Basics 101 looks on HoloLens. 黒のエンクロージャは表示しませんが、仮想穴経由でコンテンツを確認できます。The black enclosure doesn’t show up, but you can see content through a virtual hole. (実際のデバイスを検索、ときに、フロアに思えますがあっても存在しない場合、それ以上の距離にある対象に見られるので、さらに表示されなくなります。)(When looking through an actual device, the floor would seem to disappear even more because your eyes focus at a further distance as if it’s not even there.)

Holographic のコンテンツを世界中のロックWorld-locking holographic content

Unity では、世界中のロックを維持する holographic のコンテンツの原因と WorldAnchor コンポーネントを追加するだけです。In Unity, causing holographic content to stay world-locked is as easy as adding a WorldAnchor component:

myObject.AddComponent<WorldAnchor>();

WorldAnchor コンポーネントは、位置と回転の GameObject (したがって、階層内には、そのオブジェクトの下のもの) の近くにある物理オブジェクトに対して相対的な安定に保つために絶えず調整します。The WorldAnchor component will constantly adjust the position and rotation of its GameObject (and thus anything else under that object in the hierarchy) to keep it stable relative to nearby physical objects. コンテンツを作成するときは、この仮想の穴に中央揃え、オブジェクトのルート ピボットされているように作成します。When authoring your content, create it in such a way that the root pivot of your object is centered at this virtual hole. (位置と回転に若干の調整は非常に顕著になるオブジェクトのピボットが壁の深い場所にある場合は、および穴は非常に安定した見えない可能性があります。)(If your object's pivot is deep in the wall, its slight tweaks in position and rotation will be much more noticeable, and the hole may not look very stable.)

すべてが仮想の穴を occludingOccluding everything but the virtual hole

これは、さまざまな方法は、壁に何が非表示にビューを選択的にブロックします。There are a variety of ways to selectively block the view to what is hidden in your walls. 最も簡単なものでは、HoloLens が完全に黒のオブジェクトが非表示に表示されることを意味する、付加的な表示を使用するという事実を利用します。The simplest one takes advantage of the fact that HoloLens uses an additive display, which means that fully black objects appear invisible. これを行う Unity で任意の特殊なシェーダーや材料コツを行わず、黒のマテリアルを作成し、コンテンツ ボックス オブジェクトに割り当てることだけです。You can do this in Unity without doing any special shader or material tricks— just create a black material and assign it to an object that boxes in your content. たくない場合 3D モデリングを行うように、いくつかの既定の 4 つのオブジェクトを使用し、それらを少し重複だけです。If you don't feel like doing 3D modeling, just use a handful of default Quad objects and overlap them slightly. このアプローチの欠点がいくつかが動作、ものを取得する最も簡単な方法は、後でそれをリファクタリングする可能性がある場合でも、優れたが低忠実度の作業の概念実証を取得します。There are a number of drawbacks to this approach, but it is the fastest way to get something working, and getting a low-fidelity proof of concept working is great, even if you suspect you might want to refactor it later.

前述の「ブラック_ボックス」アプローチを 1 つの主な欠点は、も写真しないことです。One major drawback to the above "black box" approach is that it doesn't photograph well. 効果は、HoloLens の表示を最適に見える場合があります、床、壁の残ったものではなく黒の大きなオブジェクトが行うすべてのスクリーン ショットに表示されます。While your effect might look perfect through the display of HoloLens, any screenshots you take will show a large black object instead of what remains of your wall or floor. この理由は物理ハードウェアとスクリーン ショット複合ホログラムと現実が異なります。The reason for this is that the physical hardware and screenshots composite holograms and reality differently. 偽のいくつかの計算には、少し迂回しましょう.Let's detour for a moment into some fake math...

偽の数値演算警告!これらの番号と数式についてに何らかの正確なメトリックの要点を説明するものです。Fake math alert! These numbers and formulas are meant to illustrate a point, not to be any sort of accurate metric!

表示される内容 HoloLens 経由。What you see through HoloLens:

( Reality * darkening_amount ) + Holograms

表示される内容のスクリーン ショットやビデオ。What you see in screenshots and video:

( Reality * ( 1 - hologram_alpha ) ) + Holograms * hologram_alpha

英語版。暗くなった現実 (サングラスを通じてなど) と任意の単純な組み合わせは、HoloLens を参照してくださいホログラム、アプリを表示することです。In English: What you see through HoloLens is a simple combination of darkened reality (like through sunglasses) and whatever holograms the app wants to show. スクリーン ショットを取得するとき、カメラの画像は、ピクセルあたりの透明度の値に従って、アプリのホログラムとブレンドされます。But when you take a screenshot, the camera's image is blended with the app's holograms according to the per-pixel transparency value.

この問題を回避する方法の 1 つでは、のみ、深度バッファーに書き込むし、その他のすべての非透過マテリアルに並べ替えを「ブラック_ボックス」マテリアルを変更します。One way to get around this is to change the "black box" material to only write to the depth buffer, and sort with all the other opaque materials. この例では、チェック アウト、 GitHub、MixedRealityToolkit に WindowOcclusion.shader ファイルします。For an example of this, check out the WindowOcclusion.shader file in the MixedRealityToolkit on GitHub. ここで、該当する行がコピーされます。The relevant lines are copied here:

"RenderType" = "Opaque"
"Queue" = "Geometry"
ColorMask 0

(「オフセット 50 で 100」に注意してください行が問題に対処する関連のない、おそらく合理的を除外するためです)。(Note the "Offset 50, 100" line is to deal with unrelated issues, so it'd probably make sense to leave that out.)

そのような非表示のオクルー ジョン マテリアルを実装すると、アプリは次の表示にし、複合現実のスクリーン ショットでは適切なボックスを描画します。Implementing an invisible occlusion material like that will let your app draw a box that looks correct in the display and in mixed-reality screenshots. ボーナス ポイントも非表示 (ピクセル単位) を描画するために巧妙な処理を実行して、さらにそのボックスのパフォーマンスを改善しようとすることができますが、雑草を実際に取得できるを通常は必要ありません。For bonus points, you can try to improve the performance of that box even further by doing clever things to draw even fewer invisible pixels, but that can really get into the weeds and usually won't be necessary.

Unity を描画し、他のボックスの外側の部分を除くここではシークレット黄泉 MR 基本 101 からです。

ここからシークレット黄泉MR 基本 101 Unity を描画し、他のボックスの外側の部分を除く。Here is the secret underworld from MR Basics 101 as Unity draws it, except for the outer parts of the occluding box. 黄泉のピボットが穴の維持、ボックスの中央に、実際の現場の基準としたできるだけ安定に注意してください。Note that the pivot for the underworld is at the center of the box, which helps keep the hole as stable as possible relative to your actual floor.

自分で行うDo it yourself

HoloLens があるし、自分の効果を試したいですか。Have a HoloLens and want to try out the effect for yourself? 無料の 3D のビューアー アプリをインストールして読み込むに最も簡単な (コーディングは不要) を行うことができますが、ダウンロード the.fbx ファイルが GitHub で紹介したの部屋で花 pot モデルを表示します。The easiest thing you can do (no coding required) is to install the free 3D Viewer app and then load the download the.fbx file I've provided on GitHub to view a flower pot model in your room. HoloLens にロードすることと、職場で錯覚を確認できます。Load it on HoloLens, and you can see the illusion at work. 小規模の穴にのみ表示できること、モデルの前にしたら、-他のすべては表示されません。When you're in front of the model, you can only see into the small hole—everything else is invisible. その他の任意の辺からモデルを見るし、それはまったく表示されなくなります。Look at the model from any other side and it disappears entirely. 移動、回転、および 3D ビューアーのスケールのコントロールを使用して、いくつかのアイデアを生成する考えることができます、垂直方向の画面に対して仮想穴の位置します。Use the movement, rotation, and scale controls of 3D Viewer to position the virtual hole against any vertical surface you can think of to generate some ideas!

Unity エディターでこのモデルの表示、flowerpot 周囲に大きな黒いボックスが表示されます。

Unity エディターでこのモデルの表示、flowerpot 周囲に大きな黒いボックスが表示されます。Viewing this model in your Unity editor will show a large black box around the flowerpot. HoloLens で、ボックスは表示されなくなります、マジック ウィンドウ有効する方法を提供します。On HoloLens, the box disappears, giving way to a magic window effect.

この手法を使用するアプリをビルドする場合は、チェック アウト、 MR 基本の 101 チュートリアルで、 Mixed Reality チュートリアルします。If you want to build an app that uses this technique, check out the MR Basics 101 tutorial in the Mixed Reality tutorials. 第 7 章では、(上記の絵) として非表示の黄泉を表示する、フロアが急増で終わります。Chapter 7 ends with an explosion in your floor that reveals a hidden underworld (as pictured above). 誰のチュートリアルを退屈させる必要があるか。Who said tutorials had to be boring?

ここでは、実行できるこのアイデア [次へ] の。Here are some ideas of where you can take this idea next:

  • 仮想穴内で対話型コンテンツを作成する方法と考えてください。Think of ways to make the content inside the virtual hole interactive. 壁のいくつかの影響を与えるユーザーのも無理はこの方法を提供できるという意味が実際に向上します。Letting your users have some impact beyond their walls can really improve the sense of wonder that this trick can provide.
  • 既知の領域にオブジェクトを表示する方法と考えてください。Think of ways to see through objects back to known areas. たとえば、方法する holographic 穴コーヒー テーブルをできます、フロアをその下にあるを参照してくださいでしょうか。For example, how can you put a holographic hole in your coffee table and see your floor beneath it?

執筆者紹介About the author

Picture of Eric Rehmeyer Eric RehmeyerEric Rehmeyer
シニア ソフトウェア エンジニア @MicrosoftSenior Software Engineer @Microsoft

関連項目See also