VA(ビジュアルアーツ)チーム リードアーティストのマツです。アートとテクノロジーを専門とするVA チームが、先日発表したカマクラシェーダーズをリリースしました。github と unitypackage による配布となります。
カマクラシェーダーズ とは
カマクラシェーダーズは、アニメ、ペイント、水彩、ハッチのようなアート表現をサポートするための Unity リアルタイム用 シェーダー集です。3D はもちろん 2D, UI にも活用できます。モバイル対応です。
- Kamakura
- Kamakura-Hair
- Kamakura-2D
今回はカマクラシェーダーズのひとつ Kamakura シェーダーを例に配布用キャラクター Dreamy(ドリーミィ)のコスチュームでその特徴をみてみましょう。
Filter
HSB色空間(色相 : Hue、彩度 : Saturation、明度 : Brightness) 、コントラスト : Contrast Level によるフィルターです。Diffuse Color だけでは表現できない色調整が可能です。
Filter Hue : フィルター 色相
Filter Saturation : フィルター 彩度
Filter Brightness : フィルター 明度
Filter Contrast Level : フィルター コントラスト
Specular
スペキュラの色、スペキュラマスクで適用エリア、パワー、強度、滑らかさ を調整が可能です。
Specular Color : スペキュラ 色
Specular Mask : スペキュラ マスク
スペキュラの場所を限定することができます。
Specular Power : スペキュラ パワー
Specular Intensity : スペキュラ 強度
Specular Smoothness : スペキュラ 滑らかさ
Light Ramp Texture
ランプテクスチャエディタを用意しました。
[Create]_[Ramp Texture] で新規ランプアセットを作成します。
Texture Width でテクスチャ幅(px)を指定します。 Gradient Presets は、[+][-]ボタンで追加、ドラッグすることで順番を変えられます。
Gradient Presets をクリックすると Gradient を編集することができます。
複数 Gradient を追加します。
ランプテクスチャが完成。
Light Ramp
ランプテクスチャエディタで制作したテクスチャで光と影のシャープ、ぼかしを調整します。別途 PhotoShop 等でつくったテクスチャでも大丈夫です。 光と影の適用エリアをVertexColor(G Channel)で指定可能です。
Light Ramp Preset : ライトランプ プリセット
用意した Light Ramp Texture で効果を自由に変えることができます。
Light Ramp Offset : ライトランプ オフセット
Light Ramp Shift Using VertexColor(G) : ライトランプ 影濃淡制御
Maya VertexColorChannelSelector プラグインで、G チャンネルを使用して影の濃淡を指定します。 ヒップ上部 : 1、 ヒップ下部 : 0、それ以外 : 0.5 と VertexColor(G) をペイント
Light Ramp Offset が -1 1 間で表現するのを VertexColor(G) 0 1 間でペイントして表現します。VertexColor(G)を使用する場合は、Light Ramp Offset を 0 で調整することをおすすめします。 VertexColor(G) を使用することで部位ごとに影の濃淡を表現可能です。ライティングに関わらずVertexColor(G) 0 ペイントすることで必ず影を入れることができ、VertexColor(G) 1 ペイントで影を入れない表現が可能です。
Shadow
影の色、強度、テクスチャによる調整が可能です。
Shadow Color : 影 色
影を指定の色で塗りつぶします。
Shadow Intensity : 影 強度
Shadow Intensity : 1 で塗りつぶし、0 に近づくことで影を透過させ Diffuse Color(Texture) に近づけることができます。
Shadow Texture : 影 テクスチャ
Shadow Color と Shadow Intensity の他に Shadow Texture を使用することでより自由に表現できます。
Shadow Texture Use Filter : 影 テクスチャ フィルター
フィルターを使用時、影テクスチャにもフィルターを適用可能です。
Ambient
環境光の色と強度の調整が可能です。
Ambient Color : アンビエント 色
黄色とピンクの環境光の例
Ambient Intensity : アンビエント 強度
ピンクの環境光の強度を変えた例
Unity's Ambient Intensity : アンビエント 強度 (Unity)
Unity の環境光の強度を制御します。
Outline
アウトラインの色、太さ、VertexColor(R Channel)による入り抜き調整が可能です。
Outline Color : アウトライン 色
赤色と黄色のアウトライン色の例
Outline Blend Color Texture Value : アウトライン ブレンドカラーテクスチャ
テクスチャ色とアウトライン色のブレンドを調整します。
Outline Thickness : アウトライン 太さ
Outline Adapt to Camera Distance Value : アウトライン カメラ距離に適用
カメラの距離に関わらずアウトラインの太さを一定にする調整が可能です。
Outline Enable InnerSide Outline : アウトライン インナーサイド
インナーサイドのアウトラインをオンオフが可能です。
Outline Adjust Using VertexColor(R) : アウトライン 入り抜き
Maya VertexColorChannelSelector プラグインで、R チャンネルを使用してアウトラインの入り抜き調整を指定します。 アウトラインをそのまま表示したいときは赤、細く表現したいときは、明度を下げてペイントします。 ペイントが完了したら Combine して、FBX ファイルをエクスポートします。 ペイントを画像エクスポート/インポートも可能です。画像から頂点カラーを再現することも可能です。
Hatch
Hatch Texture : ハッチ テクスチャ
Hatch in Screen Space : ハッチ スクリーン スペース
Hatch Level : ハッチ レベル
ハッチングテクスチャ RGB それぞれのチャンネルで調整が可能です。 R : Hatch Level 1 G : Hatch Level 2 B : Hatch Level 3
Hatch Mask : ハッチ マスク
ハッチマスクテクスチャでハッチの適用エリアを調整が可能です。
Hatch Threshold : ハッチ しきい値
Hatch Intensity : ハッチ 強度
Hatch Range Stretch : ハッチ レンジ ストレッチ
Hatch Threshold と組み合わせて使用します。
Hatch Rotation : ハッチ 回転
Rim
リムのブレンドモードは、Additive, Normal の2つが用意されています。 リムノイズテクスチャでリムの細かな形状表現が可能です。
Rim Color & Blending Mode : リム 色、ブレンドモード
ブレンドモード Additive は、Diffuse Color(Texture) に加算します。 Normal は、Color と Intensity そのままの色で表現します。
Rim Size : リム サイズ
Rim Intensity : リム 強度
Rim Softness : リム 柔らかさ
Rim Noise : リム ノイズ
Emission
Emission Map : エミッション マップ
エミッションマップで適用エリアの調整が可能です。
Emission Color : エミッション 色
青色とオレンジ色のエミッション色の例
Emission Power : エミッション パワー
Cube Color
Rim, Ambient に Cube Color ( Left, Right, Front, Back, Top, Down ) を指定できます。
Cube Color Use For Rim : キューブカラー リム
Cube Color Use For Ambient : キューブカラー アンビエント
視認しやすいように Diffuse Texture を外してみました。
Stencil
ステンシルは、描画のエリアを調整します。例えば、キャラクターの目が髪にかくれないように使用します。
Point Light & Spot Light
Directional Light の他に Point Light, Spot Light に対応しています。
Local Light
Unity の Light GameObject を使用しない Local Light コンポーネントです。
Local Light コンポーネントを GameObject に使用することで、それぞれにライト効果が可能です。
Dreamy_Anime と Head と Costume にそれぞれ Local Light を使用している例です。Child が優先になります。絵作りのためにうその光の演出を行います。キャラクターだけでなく建物などに使用することで効果的な演出が楽しめます。
GI ( Global Illumination )
グローバル イルミネーション対応で、間接光の影響を表現可能です。
Unity の Light Probe Group を使用します。壁のマテリアルは Standard シェーダーの Emission を使用しています。
Unity の Ambient Intensity を設定します。
間接光に照らされた表現ができます。
カマクラシェーダーズ ライセンス
カマクラシェーダーズは無料です。
シェーダー : MITライセンス
キャラクター : CC BY-SA 4.0
カマクラシェーダーズ ダウンロード
メンバー募集
VA(ビジュアルアーツ)チームは、アーティストとテクニカルアーティストを募集しています。 アートでテクノロジーに挑戦したいひと、テクノロジーでアートにインスピレーションを与えたいひと のご応募まってます。ブログをみた!VAチームに入りたいとお伝えください。