・CelPainterチュートリアル・



1.cow.lwoを読み込みます。

LightWaveに標準で入っているオブジェクトを使います。
cow.lwoをレイアウトで読み込み、適当に移動、回転させてカメラビュー内に収まるようにします。

・1・

2.とりあえず効果を確認する。

一番目立つサーフェイスCowHideをセルシェーディングしてみましょう。
サーフェイスエディタを開き、サーフェイス名CowHideを選択。
シェーダータブを開き、プラグイン"unReal:CelPainter"を選択します。
これだけでサーフェイスエディタのプレビューでもセルシェーディングの効果を確認できると思います。

・2-1・


また、F9を押して実際にレンダリングすれば全体を確認することもできます。
・2-2・

3.よりよい結果を得るために

CelPainterのデフォルト設定で得られる結果はSuperCelShaderのそれと全く同等です。
次にパラメータを調整したり、CelPainter固有の機能も使ってみます。

・ゾーン調整
いまの状態だとサーフェイスは境目がキッチリ分かれた3段階のグラデーションになっていると思います。
しかし、それでは硬いイメージがあるので若干やわらかくしてみましょう。


サーフェイスエディタのシェーダーに既にセットされているCelPainterの名前をダブルクリックしてCelPainterの設定パネルを開きます。

グラデーションの設定はパネル中央上の「ベース」タブで行います。
min、max、bright...の数値が4段ありますが、ためしに2段目のmaxを25%にし、3段目のminを50%、maxを75%にしてみます。

・3-1・

数値を変更したらパネルを閉じ、F9を押してレンダリングします。

すると先ほどより色の境目が滑らかになり、やわらかい感じになりました。

・3-2・

CelPainterはそれぞれの段のminとmaxの間を平坦な色にし、段同士の間はグラデーションで色をつなぐため、
2段目のmaxと3段目のmin、3段目のmaxと4段目のminの間を開けたことでグラデーションの幅が広がり、滑らかに見えるようになったのです。

・Tips・
この処理はLightWave5.6から付いているSuperCelShaderに似せるように計算を行っています。
したがって、市販されているLightWaveの解説書に載っているSuperCelShaderのゾーン設定のテクニックも使えると思います。

・色調整
さて、色の変化は滑らかになりました。
しかし、よく見ているとまだ物足りない部分があります。
陰の部分、白から灰色へ向かうグラデーションになっています。
作ろうとしている作品のイメージによっては、この黒ずんだ重い感じは合わない場合があります。
そこで、明るく軽い感じにしてみましょう。


再びCelPainterのパネルを開きます。

各ゾーンの色の調整はベースタブのbrightとカラーフィルタで行います。
brightは明るさを変えることができます。
試しに2、3、4段目のbrightを15%づつ上げてみましょう。
確かに明るくはなりましたがまだ陰は灰色のままです。

それでは次に色そのものを変えてみましょう。

・3-3・


まず2段目のカラーフィルタポップアップを「オーバーレイ」にします。
するとその下のカラースライダとパーセント表示の色が濃くなり、変更できるようになるので
色を[210,210,255]に、パーセントは100%のままにします。

3段目、4段目も全く同じ設定にします。
1段目はminとmaxが0で、実際の処理には使われないようになっているので設定しなくても構いません。

・3-4・

これでF9をおしてレンダリングします。
すると陰の部分が青くなり、軽い感じになったと思います。
・3-5・

4.高度な設定


ここで試しに色を変えてみましょう。
サーフェイスエディタからCowHideを選択し、カラー横の「T」をクリックしてテクスチャエディタを開きます。
牛の模様なので色は当然黒ですが、これをオレンジにしてみましょう。
テクスチャのカラーを[253,224,138]にしてテクスチャエディタを閉じ、F9を押してレンダリングします。
・4-1・

さて、レンダリグ結果を見てみると困った問題を見つけました。
模様のオレンジ色の部分までがカラーフィルタの影響で青くなっています。
カラーフィルタの効果はそのままではサーフェイス全体にかかってしまうので、サーフェイス基本色から大きく離れた色のカラーテクスチャが貼ってあるとこのように望まない結果を引き起こします。
・4-2・

この問題を回避するには4つの方法が考えられます。

A.カラーフィルタモードを変える

もしフィルタの影響を与えたくない色が黒であれば、フィルタモードを「乗算」にするだけで解決します。黒[0,0,0]に何を掛けても黒のままです。
つまりデフォルトの牛カラーであればこの方法が使えました。

B.サーフェイス色フィルタを使用する


「拡張設定」タブの「サーフェイス色フィルタ」を有効にすると、カラーフィルタの色設定が無視され、代わりにカラーテクスチャなどを含むサーフェイス自身の色が使用されるようになります。
この方法であればサーフェイス色がどう変化してもその色が使われるのでおかしな結果になることはありませんが、逆に大きな効果も得ることができません。
・4-3・

C.フィルタマスクを使用する

フィルタマスクとは、自己発光や光沢、アルファなどのサーフェイスパラメータを利用してカラーフィルタの強さをコントロールする機能です。

まず、サーフェイスエディタからCowHideを選択、反射を0.1%にします。これは、反射が0%だと光沢の値が変更できないため、サーフェイスの見た目への影響を抑えつつ光沢パラメータを使用できるようにするためです。

次にカラー横の「T」をクリックしてテクスチャエディタを表示します。
「コピー」を使ってテクスチャレイヤーをコピーし、次にサーフェイスパラメータの光沢のテクスチャを表示、「ペースト」します。
これで光沢にカラーテクスチャがコピーできました。
続けてこの光沢のテクスチャを変更します。


Valueを調整し、カラーフィルタの効果を残したい部分が白(100%)、カラーフィルタをかけたくない部分が黒(0%)になるようにします。

今回の場合であれば模様の部分の効果を無くしたいのでValueを100%にし、「レイヤー反転」をチェックします。
・4-4・

最後にCelPainterパネルを開き、「拡張設定」タブのフィルタマスクを「光沢」に設定します。
・4-5・

これでレンダリングをすればテクスチャ部分のカラーフィルタが無くなっているのが確認できます。
・4-6・

・Tips・
今回はマスクバッファに光沢を使いましたが、これは、CelPainter側のスペキュラハイライトを使用しているとサーフェイスの光沢が無視され、自由に使用できるからです。

もし、LightWave側の反射を使用しているなどにより他のパラメータを使用しなければならない場合、例えば半透明度などを使用する場合は見た目への影響を最小限に抑えるためにテクスチャの強さの範囲を0%〜1%になるように設定し、CelPainterのフィルタマスクの「強さ」を10000%にすることで1%の部分が内部で100%として扱われ、見た目への影響を抑えつつマスク処理を行うことができます。

・D.カラーマップモードによるフィルタ処理

Cの方法なら殆どのケースに対処できますが、これだとマスクされた部分はフィルタ効果がかかりません。
ベースとなる色にも、カラーテクスチャの部分にも個別にフィルタをかけたいというケースが出てくると思います。

その場合に使用するのがカラーマップモードです。
先ほどの色調整の時に行っていたのは「セルゾーンモード」と呼ばれ、フィルタの色設定はゾーンごとに固定でした。
次に行う「カラーマップモード」では逆にゾーンごとの設定はできませんが、代わりにサーフェイスの色ごとにフィルタの設定ができるようになります。
では、実際に設定を行ってみましょう。


まず、フィルタマスクは使用しないので光沢のテクスチャを削除します。SHIFTを押しながら「T」をクリックでOKです。
次に、CelPainterの設定パネルを開き、「拡張設定」タブを選択、フィルタマスクを「無し」にしてマスクを解除します。
続けてカラーマップの設定に入ります。
同じく「拡張設定」タブのフィルタモードを「カラーマップ」にします。
するとその下の「カラーマップ編集」ボタンが有効になります。
このボタンを押すとカラーマップ編集用のパネルが表示されます。
・4-7・

まず、サーフェイスの白い部分に対するフィルタ設定をします。
パネル中央のたくさんの色が並んでいるカラーテーブル上に、1本だけ横に走っているバーがあります。
これはグレースケールキーと呼ばれ、白、グレー、黒の無彩色に対してのフィルタ設定を行う特殊なキーです。
このキーを直接ドラッグするか、「彩度」に直接値を入力して5にします。
これはサーフェイスの色の彩度が5以下の色を無彩色と見なしてこのキーのフィルタを適用するという意味になります。

グレースケールキーが選択されている(選択されているキーは明るい黄色で描画されます)状態であることを確認したら、パネル下部のフィルタ設定でこのキーに対するフィルタパラメータの設定を行います。

デフォルトでもそれなりの結果になるようにパラメータが設定されていますが、これでは今ひとつなのでさらにパラメータをいじります。
色を[210,210,255]に、フィルタモードを「オーバーレイ」にし、続けて輝度変換を「平均」にします。
輝度変換はフィルタ色の輝度をサーフェイスの色で操作する機能で、これを利用することでゾーンによってフィルタ色を若干変更することができ、平坦な結果になるのを防ぐことができます。
・4-8・


次に模様部分のオレンジに対する設定です。
たくさん並んだ縦のキーを見てみましょう。
左から2番目のキーが一番オレンジに近いですね。これをクリックして選択状態にし、フィルタ設定を行います。

色は[240,160,50]、フィルタモードを「スクリーン」、彩度変換を「無視」、輝度変換を「平均」にします。
・4-9・

これでパネルを閉じ、レンダリングすれば白い部分も模様の部分もフィルタ効果がかかっていると思います。
・4-10・

・Tips・

今回はオレンジの部分に初めからキーがあったのですぐに設定ができました。
では、キーの無い部分の色に対してフィルタリングするにはどうすればいいでしょう。
1つはその色の右と左にあるキーを設定する方法。
キーの無い部分は、その両側のキーによるフィルタリング結果から補完されるので、これでも効果が得られます。
もう一つは近くのキーをドラッグして持ってくる方法。
今回のように模様が1色だけなら他の部分は使わないので適当なキーを持ってきてパラメータを変更して使ってやることができます。
最後ははその部分にキーを追加する方法。
パネル右上のツールボタンから追加を選択、カラーテーブル上の任意の位置をクリックすればそこにキーを追加できます。

キーはいくつでも追加できるので、色相分、360個のキーを作成すればあらゆる色に対応する究極のカラーマップが作れますが、キーが多すぎるとレンダリングが遅くなるのでそのサーフェイスの重要な色の部分にのみ作るようにしたほうが良いでしょう。


5.全てのサーフェイスの設定

さて、イメージを統一するために他のサーフェイスにもCelPainterを設定したいと思いますが、1つ1つのサーフェイスに1から設定をするのは非常に手間がかかります。

LightWaveには標準でプリセットシェルフが搭載されているのでこれを使えば簡単にコピーすることができます。
しかし、サーフェイスの基本パラメータまでコピーされてしまうので、牛の角まで牛模様が入ってしまいます。

7.0であればシェーダーのコピー、ペーストが可能になっていますが、シェーダーのパラメータ全てをコピーするので後から全サーフェイスのゾーン設定だけ変更したいという場合でもカラーフィルタの色設定まで上書きされてしまい修正が大変です。

そこでCelPainterの保存機能を使用します。


まず、シェーダー設定の済んでいるサーフェイスを選択、CelPainterのパネルを開き「保存」ボタンを押します。
するとファイルダイアログが表示されるので、適当な名前で保存してください。
・5-1・

次にまだCelPainterを設定していないサーフェイスを選択、シェーダータブに移ってCelPainterをセット、CelPainterのパネルを開きます。
今度は「読み込み」ボタンを押し、ファイルダイタログから先ほど保存した.ETファイルを選択してください。
すると読み込むパラメータを選択するパネルが表示されます。
このパネルで有効になっているパラメータのみが読み込み、設定されるようになっています。
・5-2・

今回はシェーダーをセットしたばかりなので、そのまますべて読み込んでも構いませんが、後でゾーン設定だけを変更した場合などは、「Cel-Zone」と「Cel-Bright」だけを有効にして読み込むことでグループIDや色設定を壊さずにゾーンの統一が可能です。
読み込みが完了したら、サーフェイスに応じてフィルタ色を適切に編集しましょう。


6.完成

このような流れでセルシェーディングされた牛が完成しました。
ここで説明した以外にもセレクティブライトやスペキュラなどの機能がありますので、マニュアルを参考にして思い通りのイメージを作るのに役立ててください。

・6-1・