表示テーマ
MaterialとTexture
共有Materialと個別設定
MaterialはShaderと描画設定、公開ParameterをまとめたAssetです。同じMaterial Assetを使うRendererには共通の設定が適用されます。Rendererの「個別マテリアル設定」は、そのRendererだけの上書きに使います。
MeshRendererではSubMeshごとにMaterialを指定できます。SubMeshを選んでから、どのMaterialと個別値を編集しているか確認してください。
作成手順
- 「ツール → レンダリング → マテリアル作成」を開きます。
- 用途に合う既定を選び、ゲーム用FolderへMaterialを作成します。
- RendererのMaterial欄へ割り当てます。
- 色やTextureを設定し、Shaderが公開しているParameterを調整します。
- Material AssetとSceneの保存をそれぞれ確認します。
DecalにはDecal用の既定Materialを使用します。通常のMesh用Materialを設定しても、Decalの投影用入力とは一致しません。
標準PBRの主な値
| 項目 | 変わる見た目 |
|---|---|
| BaseColor | 表面の色。BaseColor Textureと乗算する |
| Metallic | 金属度。高いほど環境の反射色が重要になる |
| Roughness | 反射の粗さ。低いほど鋭く反射する |
| Normal Texture | 面の向きを細かく変え、凹凸に見せる |
| Occlusion | 環境光の遮蔽。直接光の影とは異なる |
| Emissive Color / Intensity | 表面から出る見た目の光。周囲の照明とは別 |
| AlphaClip | Maskedで切り抜く透明度の閾値 |
Textureの用途を取り違えると色や照明が不自然になります。色画像と、法線・質感などの数値画像は同じ色空間の扱いとは限りません。インポート用途を確認してください。
不透明・切り抜き・半透明
- Opaque:完全不透明の表面。
- Masked:Alpha閾値で有無を決める葉や金網など。
- Transparent:ガラスや煙など、背景と連続的に混ぜる表面。
Alphaのある画像を設定しただけで、すべての描画区分が自動で切り替わるとは限りません。MaterialのSurfaceMode、描画順とRendererの設定を確認します。
C#で個別値を変える
cs
using NEMEngine;
public sealed class MaterialTint : MonoBehaviour {
void Start() {
// 色を変えるRendererを取得
var renderer = GetComponent<PrimitiveRenderer>();
if (renderer == null) return;
// 共有Assetを変えず、この物体だけ上書き
bool applied = renderer.MaterialInstance.SetColor(
MaterialParameterNames.BaseColor, new Color4(0.2f, 0.8f, 1.0f, 1.0f));
// Materialが指定Parameterを持つか確認
if (!applied) Debug.LogWarning("ベースカラーの設定を確認してください");
}
}Parameter名はShaderが公開している名前と一致させます。標準PBRにはMaterialParameterNamesとMaterialParameterIDsを利用できます。独自ShaderGraphのParameterは作成時に付けた名前を使用します。
SetColorなどの戻り値は、変更が受け付けられたかを示します。型やParameter名が合わない場合、数値を変えても見た目へつながりません。