【マチェイヨラ】Unity用シェーダー マチェイヨラのパラメータについて (ver 2.1.0)
はじめに
マチェイヨラを使っていただきありがとうございます。
マチェイヨラのパラメータについて解説します。
記事作成時点のバージョンは 2.1.0 になります。
前提知識
マチェイヨラを調整する前に Unityのシェーダー について知っておきましょう。
シェーダーの選択
マチェイヨラシェーダーに限らず、シェーダーには下記のような名前がついていることがあります。
・Opaque
・Cutout / Transparent Cutout / Alpha Test / Alpha Clip
・Fade / Alpha Fade
・Transparent / Alpha
特に気にせず使ってしまっているかもしれませんが、
負荷や描画結果に影響することもあるため、適切に使い分けましょう。
-
Opaque
不透明なオブジェクトに使用します。
透過する目的がなければこれを使用してください。
全体で光を遮るため、メッシュの形に影ができます。
-
Cutout / Transparent Cutout / Alpha Test / Alpha Clip
テクスチャで一部だけ完全に透明にするときに使用します。
半透明部分が存在しないため、複雑な形でもきれいに透過することができます。
不透明部分だけ影ができます。
-
Fade / Alpha Fade
テクスチャで一部またはパラメータで全部を(半)透明にするときに使用します。
反射光や金属部分も(半)透明になるため、ガラス等の表現には向きません。
描画の不具合を防止するため一番手前にある面しか描画しません。
アルファチャンネルに応じた影ができます。
また、ブレンドモードを指定することにより、加算合成等の表現ができます。 -
Transparent / Alpha
テクスチャで一部またはパラメータで全部を(半)透明にするときに使用します。
「色」が透明になるだけなので反射は描画されます。
ガラス等の(半)透明な材質を表現します。
描画の不具合を防止するため一番手前にある面しか描画しません。
また、金属は不透明な物質のため、メタリックを上げると透過しなくなります。
透過部分は半透明の影ができます。
テクスチャのインポート設定
テクスチャを選択すると Inspector からインポート設定を変更できます。
主に使う項目について説明します。
-
Texture Type
テクスチャのタイプを指定します。
ノーマルマップの場合はここを Normal map にすると覚えておきましょう。 -
sRGB (Color Texture)
テクスチャの色を数値としてシェーダーに入力する場合はここのチェックをはずします。
詳しくはガンマ補正とかで検索してください。要するにガンマ色空間でなくリニア色空間で値を取得する設定です。 -
Wrap Mode
テクスチャ座標が 0~1 の外の場合のテクスチャの状態を指定します。
タイリングするときには Repeat、しないときは Clamp を選択してください。 -
Format
圧縮フォーマットを設定します。基本的に Automatic で問題ないですが、
シェーダー側で R チャンネルしか使用しない場合は R8 にするとメモリの節約になります。 -
Compression
圧縮クオリティを設定します。ノーマルマップは圧縮すると影がブロックノイズのように描画される事があるため、
その場合は None にすることで解決できるかもしれません。
シェーダーの解説
シェーダーのパラメータを解説します。
色
-
メインテクスチャ
メインテクスチャを設定します。 -
カラーパレット
指定した色をテクスチャに乗算します。
※ Transparent の場合は 「A」の値がテクスチャのアルファチャンネルに乗算され、透過されます。 -
MatCap
テクスチャをMatCapとして使用します。 -
Tiling
連続するテクスチャを使用する場合はこの値を大きくしてください。 -
Offset
テクスチャを X, Y 軸方向にずらすことができます。 -
Sync X - Y
チェックすることで X, Y 軸を同時に変更することができます。
-Cutout のみ-
-
カットオフ閾値
この値よりテクスチャのアルファチャンネルが小さい部分は描画されません。 -
ラメのカットオフ閾値
この値よりテクスチャのアルファチャンネルが小さい部分はラメが描画されません。
-Fade のみ-
-
ブレンディング
半透明部分のブレンドモードを指定します。
設定 | 機能 |
---|---|
Normal | 通常の半透明 |
Additive | 加算 |
SoftAdditive | ソフトな加算 |
Screen | スクリーン |
Manual | Blend係数を個別に指定できます。 |
-
グラデーション
グラデーションテクスチャを設定します。
自作のテクスチャを使用する場合は Wrap Mode を正しく設定することに注意してください。 -
反転
グラデーションテクスチャを左右反転します。 -
ブレンドモード
グラデーション部分のブレンドモードを指定します。 -
ブレンド率
グラデーション部分のブレンド率を指定します。 -
パワー
グラデーションのかかる強さを調整できます。 -
シフト
グラデーションをずらすことができます。 -
フレネルレベル
リムライトのようなフレネル表現ができます。 -
反転
フレネルの反転ができます。 - フレネルパワー
フレネルがかかる強さを指定します。
-
エミッションブースト
Albedo の色を明るくすることができます。
発光表現のために 1 を超える値を設定できるようにしています。 -
光源の影響率
光源の反射ベクトルによって更に色に変化が出ます。
マスク
-
マスク
グラデーションやラメを適用しない部分を指定できます。 -
グラデーションマスク
グラデーションをマスクするカラーチャンネルを指定します。 -
ラメマスク
ラメをマスクするカラーチャンネルを指定します。 -
ザラザラマスク
ザラザラをマスクするカラーチャンネルを指定します。 -
エミッションマスク
エミッションブーストをマスクするカラーチャンネルを指定します。 -
カーボンマスク
カーボンをマスクするカラーチャンネルを指定します。 -
反転
マスク部分を反転できます。
ディテール
-
ディテールのテクスチャ
光沢・メタリックをテクスチャから設定できます。 -
光沢-チャンネル
Standard シェーダーでいう Smoothness にあたります。
ディテールテクスチャの指定したチャンネルから値を取得できます。
スライダーで調整する場合は「Manual」にしてください。 -
メタリック-チャンネル
Standard シェーダーでいう Metallic にあたります。
ディテールテクスチャの指定したチャンネルから値を取得できます。
スライダーで調整する場合は「Manual」にしてください。 -
反転
ディテールテクスチャから取得した値を反転できます。 -
調整
ディテールテクスチャから取得した値を調整できます。
-
ノーマルマップ
Normal map を指定します。
クリアコートには反映されません。 -
ノーマルマップ2
2つ目の Normal map を指定します。
クリアコートには反映されません。 -
DirectX
DirectX 用のノーマルマップを使用するときにチェックします。 -
レベル
ノーマルマップの強度を設定します。
-
ザラザラのテクスチャ
塗装部分に微細な凹凸があるような表現ができます。
Glitter テクスチャをアサインすることで有効化します。 -
レベル
ザラザラの強さを指定できます。
クリアコート
-
クリアコート
クリアコートを オン / オフ できます。 -
ノーマルマップ
クリアコートにノーマルマップを適用できます。 -
カラー
クリアコートの色を指定します。
クリアコートの厚さが2以上のときに色が変わります。 -
厚さ
クリアコートの厚さを指定します。
ラメ
-
ラメの量
Low, Highに設定するとラメ表現ができます。
Low ではラメの間隙が狭いとリアリティがなくなるため
High でラメを重ねることでリアリティを出すことができます。 -
彩度
ラメの彩度を設定します。 -
色相
ラメの色相を調整します。
ラメの色は見る方向からも変化します。 -
縦横比
ラメの縦横比を調整できます。 -
ボリューム
ラメの量を設定します。 -
間隙
ラメ同士の間隙を設定します。 -
まばら
ラメを間引く量を設定します。 -
メタリック
ラメのメタリックを指定します。 -
光沢
ラメの光沢を指定します。
カーボンファイバー
-
カーボンファイバー
カーボンファイバーを オン / オフ できます。 -
カーボン色
チェックボックスをオンにするとカーボンの色を指定できるようになります。 -
カーボンアングル
カーボンのストライプを90度回転することができます。 -
カーボンディテール
カーボンのAOを調整します。 -
レベル
カーボンの立体感を調整します。
Advanced
-
カリングモード
Off にすると裏面も描画することができます -
Render Queue
シーン内の描画順を整理します。
シーン全体に影響し、他プレイヤーの迷惑になるおそれがあるため、
この設定項目について十分に理解し、且つ変更する必要がある場合のみ変更してください。
マテリアル設定のヒント
参考にできそうな設定を紹介します。
CG テクスチャサイトのアセットを使いたい
CG テクスチャサイトのアセットを使用することができます。
( おすすめサイト - ambientCG )
使用可能なテクスチャ
- Color
- Roughness
- Metalness
- Normal Map
1. テクスチャを用意する
使用可能なテクスチャを用意してください。
2. Roughnessマップ・Metalnessマップをまとめる
Photoshop等でカラーチャンネル別にマップを格納します。
Roughness マップをインポートする
背景からレイヤーに変更する
RGB モードに変更する
G・B チャンネルを黒に塗りつぶす
Metalness マップをインポートする
Roughness マップの G チャンネルに Metalness マップをペーストする
画像データとして保存する
3. テクスチャを Unity にインポートする
Roughness マップ・Metalness マップは sRGB のチェックを外す
Normal Map は Texture Type を Normal map に設定する
4. マテリアルを設定する
- Color
色
→テクスチャ
- Roughness・Metalness
ディテール
→ディテールテクスチャ
光沢-チャンネル
→R
反転
メタリック-チャンネル
→G
- Normal Map
ディテール
→ノーマルマップ
シンプルな Skybox でもキレイに反射させたい
シンプルな Skybox でも MatCap を使うことでキレイに反射できます。
1. 反射に使いたい MatCap テクスチャを用意する。
2. マテリアルを設定する
色
→ テクスチャ
→ MatCap をセット
MatCap
色
→ ブレンドモード
→ Multiply
色
→ ブレンド率
→ 1
リアルなカーボン素材を表現したい
カーボンファイバーはクリアコートに使用痕をもたせるとリアルに見えます。
1. ダメージ表現用のテクスチャを用意する
2. マテリアルを設定する
ディテール
→ 光沢-チャンネル
→ Manual
ディテール
→ 光沢
→ 0.7
ディテール
→ メタリック-チャンネル
→ Manual
ディテール
→ メタリック
→ 0.95
クリアコート
→ On
クリアコート
→ 光沢-チャンネル
→ 任意のチャンネル
カーボンファイバー
→ On
カーボンファイバー
→ カーボン色1
→ On
→ #333333
カーボンファイバー
→ カーボン色2
→ On
→ #484848
3. 必要に応じてノーマルマップもつけると良いかもしれません
クリアコート
→ ノーマルマップ
クリアコート
→ レベル
→ 0.5
Discussion