HoloLensでは現実空間に3Dオブジェクトを配置、作用させることによってMixedReality(複合現実)を実現しています。
この3DオブジェクトはHoloLensやxRの分野だけではなく、映画、ゲーム、製造、建築など多くの業界で幅広く用いられるようになりました。
3Dオブジェクトを作成するツールも増え、少し良い性能のPCさえあれば3Dモデルを作ることは誰でも簡単にできるようになりました。
前回からライトセーバーのコアとなるカイバークリスタルを作っています。 今回は5回目の記事です。
前回の記事はこちら
〇カイバークリスタルのMaterialをUnityで作成する。
一説によるとジェダイの持つライトセーバーに用いられているカイバークリスタルは最初は無色透明なものの、持ち主のフォースの絆を浴びることでそれぞれの持ち主に合わせて色が付くそうです。
しかし私のクリスタルは色の前にクリスタルとしての透明度や神聖さもまだ秘めていない無機質なプラスティックのような見た目をしています。
まずはShaderを選択します。MRTK StandardShaderで再現できればHoloLensとしては最適なのですが、やはりコアになるパーツであるためこだわります。二種類の方法を試してみました。
・Gem Shaderを用いた表現
Assetsの中からGem Shaderというshaderを用いた表現です。使用したアセットは次のものです。
カイバークリスタルのMaterialを選択しShaerを『FX/Gem』へと切り替えます。
Gem ShaderはクリスタルなどのGemを表現するためのShaderであるためそれだけでクリスタルの表現ができました。
・MRTK StandardShaderを用いた表現
MRTK StandardShaderを用いた方法です。
カイバークリスタルのMaterialのShaderを『Mixed Reality Toolkit/Standard』Rendering Modeを『Transparent』に設定します。
これで透明度を持った表現ができます。
次にCull ModeをOffに設定します。
これはメッシュの表と裏両面を描画する設定です。 透明度を持ったクリスタルの表現ができます。
Cull Mode Offにすることで裏側の面の影響も受けるようになりよりクリスタルらしい複雑な質感へとなります。
次にテクスチャを設定します。 今回はフリーの画像素材から次の画像を使用しました。
Unityへ画像を取り込みInspectorでMaterialのAlbedoにドラッグ&ドロップして画像を設定します。
これだけでは雰囲気が出ないのでNormal Mapを設定します。
Normal Mapに関しては過去の記事を参考にしてください
・Normal Mapを作成する。
Unityにインポートした画像を選択します。([Ctrl]キー+[D]キーで画像をコピーすることを忘れなく)
InspectorからTexture Typeを『Normal Map』に変更します。 Create from Grayscaleにチェックを入れて最下部の『Apply』をクリックします。
これでNormal Mapが作成されました。 マテリアルのNormal Mapにチェックを入れて有効化して先ほど作成したNormal Mapの画像をドラッグ&ドロップします。
シーンに配置したクリスタルを見ながらNormal Mapの数値を変え調整をします。
これでMRTK StandardShaderを用いたカイバークリスタルのMaterialの完成です。
以上でGem Shaderを用いた場合とMRTK StandardShaderを用いた場合の二つの方法でのカイバークリスタルのMaterialが完成しました。
二つを比較して、今回はMRTK StandardShaderを用いたMaterialのほうが気に入ったのでこちらを採用しようと思います。
これでカイバークリスタルが完成しました。