夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

HoloLensで使える3Dモデルを作る ~ライトセーバーを作る~ その⑤ カイバークリスタルのMaterial

 HoloLensでは現実空間に3Dオブジェクトを配置、作用させることによってMixedReality(複合現実)を実現しています。

 この3DオブジェクトはHoloLensやxRの分野だけではなく、映画、ゲーム、製造、建築など多くの業界で幅広く用いられるようになりました。

 3Dオブジェクトを作成するツールも増え、少し良い性能のPCさえあれば3Dモデルを作ることは誰でも簡単にできるようになりました。

 前回からライトセーバーのコアとなるカイバークリスタルを作っています。 今回は5回目の記事です。

 前回の記事はこちら

redhologerbera.hatenablog.com

カイバークリスタルのMaterialをUnityで作成する。

 f:id:Holomoto-Sumire:20200105165954j:plain

 一説によるとジェダイの持つライトセーバーに用いられているカイバークリスタルは最初は無色透明なものの、持ち主のフォースの絆を浴びることでそれぞれの持ち主に合わせて色が付くそうです。

 しかし私のクリスタルは色の前にクリスタルとしての透明度や神聖さもまだ秘めていない無機質なプラスティックのような見た目をしています。

 まずはShaderを選択します。MRTK StandardShaderで再現できればHoloLensとしては最適なのですが、やはりコアになるパーツであるためこだわります。二種類の方法を試してみました。

・Gem Shaderを用いた表現

 Assetsの中からGem Shaderというshaderを用いた表現です。使用したアセットは次のものです。

assetstore.unity.com

 カイバークリスタルのMaterialを選択しShaerを『FX/Gem』へと切り替えます。

f:id:Holomoto-Sumire:20200105170307j:plain

 Gem ShaderはクリスタルなどのGemを表現するためのShaderであるためそれだけでクリスタルの表現ができました。

 

f:id:Holomoto-Sumire:20200105170658j:plain
Gem Shaderで表現したカイバークリスタル

・MRTK StandardShaderを用いた表現

 MRTK StandardShaderを用いた方法です。

 カイバークリスタルのMaterialのShaderを『Mixed Reality Toolkit/Standard』Rendering Modeを『Transparent』に設定します。

 これで透明度を持った表現ができます。

 f:id:Holomoto-Sumire:20200105171616j:plain

 次にCull ModeをOffに設定します。

 これはメッシュの表と裏両面を描画する設定です。 透明度を持ったクリスタルの表現ができます。

f:id:Holomoto-Sumire:20200105172035j:plain 

 Cull Mode Offにすることで裏側の面の影響も受けるようになりよりクリスタルらしい複雑な質感へとなります。

 次にテクスチャを設定します。 今回はフリーの画像素材から次の画像を使用しました。

 f:id:Holomoto-Sumire:20200105172348j:plain   www.photo-ac.com

 Unityへ画像を取り込みInspectorでMaterialのAlbedoにドラッグ&ドロップして画像を設定します。

 f:id:Holomoto-Sumire:20200105172909j:plain

 これだけでは雰囲気が出ないのでNormal Mapを設定します。

 Normal Mapに関しては過去の記事を参考にしてください

・Normal Mapを作成する。

 Unityにインポートした画像を選択します。([Ctrl]キー+[D]キーで画像をコピーすることを忘れなく)

f:id:Holomoto-Sumire:20200105173300j:plain

 InspectorからTexture Typeを『Normal Map』に変更します。 Create from Grayscaleにチェックを入れて最下部の『Apply』をクリックします。

f:id:Holomoto-Sumire:20200105174201j:plain

 これでNormal Mapが作成されました。 マテリアルのNormal Mapにチェックを入れて有効化して先ほど作成したNormal Mapの画像をドラッグ&ドロップします。

f:id:Holomoto-Sumire:20200105174657j:plain

 シーンに配置したクリスタルを見ながらNormal Mapの数値を変え調整をします。

 これでMRTK StandardShaderを用いたカイバークリスタルのMaterialの完成です。

 以上でGem Shaderを用いた場合とMRTK StandardShaderを用いた場合の二つの方法でのカイバークリスタルのMaterialが完成しました。

 

f:id:Holomoto-Sumire:20200105171110j:plain
MRTK StandardShaderで再現したカイバークリスタル

 二つを比較して、今回はMRTK StandardShaderを用いたMaterialのほうが気に入ったのでこちらを採用しようと思います。

 これでカイバークリスタルが完成しました。