どうも、ナッツパパです。
今日はUnityのInspectorウィンドウで登場する【Mesh Renderer(メッシュ レンダラー)】について解説します。
難しそうで意外と簡単なので、肩の力を抜いて見ていって下さい♪
それでは早速見ていきましょう(^^)
Inspectorウィンドウとは?
まずはUnityの画面を軽く解説します。
上の画像では、左端のHierarchyウィンドウ(黄色枠)内の、黄色下線の『Sphere(球)』をクリック選択している状態です。真ん中の青い球が『Sphere』ですね。
そして、この『Sphere』がもっている情報(位置情報・大きさ・質感など)が記載されているのが、右端の赤枠で囲っているInspectorウィンドウです。
▼Unity画面の見方はこちらの記事で詳しく解説しています。
Meshとは何か?
【Mesh Renderer】の【Mesh】とは、ゲームオブジェクトの表面のことです。
人間でいうところの皮膚と同じイメージです。
Meshはポリゴン(三角形)が集まって作られています。
ザラザラとかツルツルとか色々あります。
【Mesh】が理解できたところで、次は本題の【Mesh Renderer】を解説していきます。
Mesh Rendererとは?
【Mesh Renderer】とは、【Mesh(表面)】をどの様に画面に映し出すかを決めることが出来る機能のことです。
ゲームオブジェクトにもたせる機能のことをUnityでは『コンポネント』と言います。
【Mesh(表面)】をどのように【Renderer(レンダリング)】するかを決めることが出来る機能が、【Mesh Renderer】というわけです。
Mesh Rendererはコンポネント(機能)の一種です。
もっといえば、Inspectorウィンドウに並んでいるものは全てコンポネントなのです。
Mesh Rendererのチェックを外すとどうなる?
【Mesh Renderer】のチェックを外すと、当然画面にキューブが映らなくなります。
キューブのMesh(表面)がレンダリング(映)されなくなったということです。
しかし、画面に映らなくなっただけで、この場所には存在しています。
なので衝突判定などはちゃんとできます
Mesh Rendererの詳細設定について
【Mesh Renderer】のプルダウンを開くと下記画像のように詳細設定が行えます。
ここをイジってどの様にゲームオブジェクトを映し出すかを決めるわけです。
②Lighting
③Probes
④Additional settings
以上4つの項目がありますので、それぞれ見ていきましょう。
Materials
まず【Material(マテリアル)】とは、ゲームオブジェクトに設定する描画データのことです。
描画データとは、色・はりつける画像・質感(光沢など)などがあります。
このMaterials設定では、自作した【Material】(描画データ)を選択することができて、ゲームオブジェクトに紐づけられるようになっています。
例えば、キューブ型のゲームオブジェクトに青色のデータを入れた【Material】を紐づけると青色のキューブが出来上がります。
Lighting
【Cast Shadows】でゲームオブジェクトに影を作るか作らないかなどを選択できます。
【Receive Shadows】にチェックを入れると、他のゲームオブジェクトからの影を受け取ることが出来るようになります。
【Contribute Global illumination】にチェックを入れると、ゲームオブジェクトがグローバルな照明(シーン全体の照明)にどの程度関与するかを設定することが出来るようになります。
Probes
Unityでは、Lihgt probeと言われる、照明データを収集し周囲のオブジェクトにメインライトからの反射や光の強度・光の当たる角度などをよりリアルに反映させることが出来る機能があり、任意の場所に設置することが出来るようになっています。※基本的にLihgt probeは、Unity側で自動生成されますが、より高度なカスタマイズが必要な場合に限り、自ら生成する必要がでてきます。
そして、【Mesh Renderer】内の【probes】設定で、このLihgt probeからの光のデータを、選択しているゲームオブジェクトがどのように受け取るのかを設定できるというわけです。
Additional settings
【Motion vectors】は、有効にすることで、ゲームオブジェクトのアニメーションをより滑らかにすることが出来る設定になります。ここは、初期設定で既に設定されているので私は特に触ったことはありません。
【Dynamic Occlution】は、カメラからゲームオブジェクトが映らなくなった時や、他のゲームオブジェクトに隠れてしまった時に、非表示にしてしまう設定です。
GPUの処理不可を軽減し、表示スピードのパフォーマンスを向上させることが出来ます。
この設定を正常に行うには、通常のカメラでは実現できず、Dynamic Occlution用のカメラを生成する必要があります。
まとめ
【Mesh Renderer】とは、ゲームオブジェクトをどのように画面に映し出すかを決める機能でした。
プルダウンメニューより詳細設定が行えます。
Hierarchyウィンドウでは、ゲームオブジェクト(ゲーム内で使用する物やキャラクター)を作成できる。
Projectウィンドウでは、マテリアル(ゲームオブジェクトに持たせる描画データ)を作成できる。
Inspectorウィンドウでは、コンポネント(ゲームオブジェクトに持たせる機能)を作成できる。
更にInspectorウィンドウでは、コンポネントの詳細設定が行えます。
例えば選択中のゲームオブジェクトの【Mesh Renderer】内の【Materials】設定で自作のMaterialを付与することも可能でしたね。
一応Unityの公式リファレンスのリンクを貼っておきますので気になる方は見てみて下さい。