-
Unity におけるマテリアルとは
-
ゲームオブジェクトの視覚的な見え方を制御するアセットです。
-
レンダラ(Renderer) コンポーネントに適用すると
-
マテリアルとは要するに
-
シェーダという、描画された
-
表面の見え方や、色、テクスチャのような必要なプロパティの
-
コントロールをするスクリプトを
-
まとめるのに必要なアセットです。
-
マテリアルを作成するには
-
プロジェクトパネルの Create ボタンを使用します。
-
このアセットを作成した後は
-
レンダラ コンポーネントにアサインして
-
ドロップダウン リストからシェーダを選ぶことが出来ます。
-
3D パッケージからもってきたモデルから
-
マテリアルを生成することもできますが
-
これについては後で説明します。
-
基本的な例として、
-
Unity においてプリミティブであるキューブがあり、
-
その上で使用するサンプルのマテリアルがある場合
-
これをメッシュ レンダラに割り当てることができます。
-
メッシュレンダラ とはあらゆる 3D メッシュを
-
レンダリングするのに使用するコンポーネントです。
-
これをマテリアル スロットに割り当てます。
-
デフォルトではプリミティブ メッシュには
-
Unity のデフォルトである Diffuse マテリアルが割り当てられています。
-
次にこれをサンプルのマテリアルで置き換えます。
-
このマテリアルをアサインするために
-
マテリアルのプロパティに直接ドラッグしますが、
-
別の方法として、モデルの上にドラッグしたり
-
シーン上にドロップすることができます。
-
Unity のプレビューにより
-
ドロップしているメッシュ上でマテリアルが
-
どのようにみえるか確認できます。
-
一回アサインすると、このマテリアルの設定を
-
インスペクタ上の他のコンポーネントの下で確認することが出来ます。
-
インスペクタの設定のこの部分は
-
単に、マテリアル アセットを編集する場合のリンクでしかない
-
ことを理解すべきです。
-
これが重要である理由は、
-
オブジェクトのマテリアルのプロパティを変更するとき
-
実際にはマテリアル アセットそのものを変更しているからです。
-
例えば、もしこのマテリアルを赤にした場合
-
アセットが赤になります。
-
つまり例えば
-
Sphere があったとして
-
同じマテリアルを割り当てた場合
-
これもまた赤になります。
-
そしてこのマテリアルをそれら二つのマテリアルのいずれかの上で
-
調整するとき、
-
アセットを調整していることになるので、
-
そのマテリアルを使用するオブジェクトもまた変更されます。
-
モデリング アプリケーションから 3D アセットを
-
導入するとき、 Unity は
-
アセットがある場所に、
-
Materials サブフォルダの中でマテリアルを作成し、
-
さらにテクスチャを自動的に割り当てます。
-
例えば、この prop_blastDoor は
-
Unityにインポートされたとき、
-
Textures フォルダにテクスチャを保存してますが、
-
Unity は自動的にここを検索して
-
Unity が自動的に作成するマテリアルに再度割り当てを
-
行ないます。
-
アセットの二つの部品はドアと
-
フレーム部分です。
-
これらのアセットの両方は同じマテリアルを共有して
-
テクスチャの異なる部分を使用して
-
レンダリングを行ないます。
-
作成されたマテリアルは
-
prop_blastDoor であり、
-
その上でクリックすれば確認することが出来ます。
-
プロジェクトパネル上でハイライトされています。
-
標準ではこれをインポートするとき
-
別の Diffuse シェーダが表示されます。
-
これは 3D メッシュをレンダリングするとき、
-
平坦にみえる標準的な見え方です。
-
このアセットにはノーマルマップがあるため、
-
その代わりに Bump Diffuse といった
-
バンプ (Bumped) シェーダを使用して
-
このテクスチャを活用することが出来ます。
-
法線マップ (Normal Map) とは
-
高さや法線の向きといった情報を格納したうえで、
-
平らなメッシュの
-
表面にを投影して
-
オブジェクトそのものに頂点データを加えることなく
-
表面にディテールを加えた見た目を
-
実現します。
-
もしシーンビューまたはゲームビューの中で
-
メッシュをみたとき
-
これらが生み出す違いが分かります。
-
窪みや、溝、キズなどが
-
blastDoor オブジェクト上でアクセントがついて
-
法線マップのテクスチャ上で表現されます。
-
さらにこれを拡張して
-
鏡のような表面を実現するのに
-
バンプ鏡面 (Bumped Specular) を選択します。
-
ここでは、テクスチャおよび法線マップに加えて
-
Shininess (輝度)をセットできます。
-
これでデフォルトの平らな見た目から
-
窪みがあり、輝きのあるドアが表現できるようになりました。
-
これはシェーダを調整するだけで実現できています。
-
元のモデルそのものに
-
ディテールを追加することなく、
-
マテリアルを使用することに価値はまさにここにあります。
-
Unity は多くのシェーダが同梱されていて
-
ゲーム開発の様々なニーズをこれでカバーすることが出来て、
-
さらにカスタムのシェーダを書いたうえで
-
それらを割り当てることも出来ます。
-
また、これらを作成するには
-
プロジェクトパネルの Create ボタンを使用します。
(翻訳:gamesonytablet)