MRが楽しい

MRやVRについて学習したことを書き残す

アンダーワールドの仕組みを探る その1(黒色の透過)

前回記事の続きとなります。
・HoloLensでホログラムにアクションを付ける
 http://bluebirdofoz.hatenablog.com/entry/2017/04/19/001341

今回はチュートリアルで体験したアンダーワールドについて、その仕組みを確認していきます。
まずはもう一度アプリを起動して、アンダーワールドを出現させます。
f:id:bluebirdofoz:20170420003012j:plain
その状態でhololensが穴より下に位置するように屈んでみると…
f:id:bluebirdofoz:20170420003018j:plain
見えない壁をすり抜けてアンダーワールドの世界に入れました。


UnityのプロジェクトでUnderworldを有効化してみると理由は一目瞭然です。
f:id:bluebirdofoz:20170420003026j:plain
この真っ黒な正方形のオブジェクトがアンダーワールドです。試しに"DarkBox"のメッシュを外してみると…
f:id:bluebirdofoz:20170420003035j:plain
中にアンダーワールドのオブジェクトが作り込まれていました。

ここで思い出すのは一番最初のチュートリアルで背景色に行った設定ですね。
・HOLOLENS 初めての開発 “HOLO”WORLD
 https://azure-recipe.kc-cloud.jp/2016/12/hololens-tutorial1/
・Hololensでの開発で知っておくと便利なこと
 http://qiita.com/miyaura/items/0f4cedb30101ab6a952b

Hololensでは黒色が透過扱いになります。
ここでは背景色にカラー[R 0][G 0][B 0][A 0]の真っ黒を指定することで背景を透過させていました。
つまり、この巨大なボックスも真っ黒なので透過扱いになっているという考えです。

仮説が正しいか確認するため、ボックスの色を白に変えて再実行してみます。
f:id:bluebirdofoz:20170420003054j:plain
どうやら正しかったようです。見渡す限りの巨大な白いボックスが現れました。
f:id:bluebirdofoz:20170420003115j:plain


さて、ここで一つ気になることがあったので試してみます。
"DarkBox"のメッシュを外し、色を付けないことによるオブジェクト透過の状態でアプリを起動してみます。
f:id:bluebirdofoz:20170420003129j:plain
結果、こちらのやり方では最初からアンダーワールドが見える状態となりました。
f:id:bluebirdofoz:20170420003159j:plain

今回の調査で面白いのは、同じ透過でもオブジェクトに色を付けない透過と黒色での透過は動作が異なるという点ですね。
黒色での透過は、そのオブジェクトに内包されたオブジェクトも含めて透過するということです。

これはhololensが黒色を透過色として扱っているだけということを考えれば当然の動作ですが、盲点でした。
この知恵は知っていれば何かに使えるかもしれません。