LightWave で線画出力:基礎編1:unReal Xtreme2 を使う

先日紹介し再配布している『終りなき戦い』のコンバットシェル(改変版)をモデルに、LightWave のシェーダープラグイン unReal Xtreme2 を使って線画を出力してみる。


オブジェクトを Layout 上に配置した状況。自分は操作しやすいのでビューを四面にしている([編集]>[表示オプション]>[プリファレンス]ウィンドウ>[表示]タブ>[ビューポート配置]>[四面]にして[標準に設定])。

unReal Xtreme2 の特徴

  • 長所:国産プラグインなのでインターフェースやマニュアルが日本語。そして多機能なのに無料。
  • 短所:設定できる項目が多いので、まず何をどうすればよいかが分かりにくい。また、Macでは使えない。

プラグインのインストール

配布元から自分の環境に合ったバージョンをダウンロードし、その ZIP ファイルを解凍してできたフォルダから辿って「unreal2.p」をコピーする。自分は手持ちの LightWave のバージョンに合わせ、9.6 用の 64bit 版を利用。なお、ここで解説している unReal Xtreme2 のバージョンは1.51である。

次に LightWave のプラグインフォルダを開く。自分の場合は「C:\LightWave_9_64\Plugins」だ(その後に入れた v11.6 や v2015 では「C:\Program Files\NewTek\LightWave_11.6.1\support\plugins」などとなった)。コピーしたファイルをプラグインフォルダ内の適当な場所へ貼り付ける。LightWave では追加プラグインのファイルをこのフォルダの中に入れていくのだが、色々と入れると後になってゴチャゴチャしてくる。そこで自分はバックアップの利便性も考え、「add」と名づけたフォルダを作り、その中に追加するプラグインをすべて入れている。

LightWave を起動し(Modeler か Layout かは問わず)、[ユーティリティ]>[プラグイン]>[プラグイン追加]から、先ほどフォルダにコピペした「unreal2.p」を選択し、[開く]で追加できる。

使用する機能について

unReal Xtreme2 でセルシェーディングをする際には、CelPainter というセル画風の塗り(色と陰)を出力する機能と、EdgeTracer 並びに ToonTracer という線を描画する機能を使う。線画だけなら色塗りは不要なので、ここではまず後者の機能から解説する。ちなみに CelPainter と EdgeTracer はシェーダーだが、ToonTracer はピクセルフィルターというものらしい。何が違うのかわからないが、わからなくても使える。

EdgeTracer をセットする

Layout(Modeler でも可能)にて、左上メニュー[色・質感編集](ショートカット【F5】)で[Surface Editor]を開く。左のサーフェイス名をひとつ選択し、[シェーダ]タブの[シェーダ追加]プルダウンメニューで[unReal2::EdgeTracer]を選択する。

左のサーフェイスリスト欄にサーフェイス名が2つ以上並んでいる場合は、すべて同様にする。ただし、いちいち選択してやるのは面倒なので、サーフェイスのシェーダ設定のコピー&ペーストを推奨する。先ほどひとつ設定したサーフェイス名を選択し、[シェーダ]タブで[unReal2::EdgeTracer]を選択して右クリック>[コピー](または右上の[編集]から[コピー])。これでこのサーフェイスの EdgeTracer 設定がコピーされたので、同じような手順で他の未設定サーフェイスに[貼付け]していく。なお、EdgeTracer のセットは CelPainter の項で述べる ShaderManager を利用しても可能。

そして、オブジェクトを保存しておく。それまでの設定を上書きしたくなければ別名保存する。Layout では[ファイル]>[保存]から、[現在のオブジェクトを保存]で別名にして保存できる。Modeler の場合は[ファイル]>[別名で保存]。LightWave の仕様上、[Surface Editor]でサーフェイス設定をいじることは Layout でも可能だが、サーフェイス情報はオブジェクトファイルに保存されるため、[シーン保存]では設定が保存されないので注意すること。ただしカメラアングルなどの情報はシーンファイル (.lws) として保存されるので、[ファイル]>[保存]>[シーン保存]または[シーン名を付けて保存]しておく。

ToonTracer を設定する

以降の作業はすべて Layout にておこなう。左上メニュー[ウィンドウ]>[イメージプロセッシング]で[特殊効果]ウィンドウを開く(ショートカット【Ctrl+F8】)。[プロセシング]タブ>[ピクセルフィルタ追加]から[unReal2::ToonTracer]を選択して追加。

追加されたその名称部分をダブルクリック(または右クリック>[プロパティ])して[unReal Xtreme2 - ToonTracer]設定パネルを出す。このパネルで線の描画設定をおこなうが、まずはとりあえず線を出すのに最低限必要な項目に限定して述べる。設定パネル各項目についての詳細な解説は配布元のマニュアル参照のこと。

ブラシを設定する

最初に[タイプ]ボタンでブラシ形状を選択する。「丸」は円、「角」は四角形となる。[ブラシAA]ボタンでは、ブラシパターン自体に適用されるアンチエイリアスを調整する。下の[ブラシ設定]タブでブラシ角度を設定している場合などで特に有効。

次に[ブラシ設定]タブに移る。[色]でブラシ色を決められるが、漫画用途に使うなら初期設定のまま黒 (RGB: 000, 000, 000) でよいだろう。[サイズ]にてブラシサイズをピクセル単位で設定する(最大50ピクセル)。一般的には 1-4 ピクセル程度だろうか。「2.5」などのように小数点も入力可能。

[圧縮率]の値を上げるとブラシ形状が縦方向に潰れる。これはコミスタやクリスタにおけるブラシ設定の「厚み」「厚さ」に相当する。[角度]でブラシ角度を設定。これはコミスタやクリスタでいう「向き」に相当する。[不透明度]は 100% のままでよい。[中心点X][中心点Y]はブラシ中心をブラシサイズに対する割合でずらす機能で、ブレ線の描画時に使う(100% でブラシひとつ分ずれる)。そして[線の強調]を有効にすると、細い線が少しだけ太く描画される。

そして2つある[境界設定]のタブに移る。ここの各項目を有効にすると、その境界に線が引かれるようになる。まず[オブジェクト境界]と[サーフェイス境界]にチェックを入れて有効化する。[深度境界]は隣接ピクセルの距離の違いで線を出すもので、有効化して値をいじるとオブジェクトの形状に合わせて手描きタッチのような線が入る。この項目はお好みで。

山や谷になっている鋭角な箇所に線を出すため、[法線の折り目]を有効化。[山折り][谷折り]欄で線を出すしきい値を設定できる。さらに[アウトライン]を有効化し、[描画方向]は[両側]にする。

また、もしここで[法線の折り目]を180度に設定すると、無条件に線の描画対象となる。評価単位をポリゴン単位にして、しきい値を山・谷とも180度にすると、隠線消去したワイヤーフレーム描画が出力される。なお隠線(いんせん)とは、手前の面に隠れてカメラからは見えなくなる部分の線。出力時にこれを消さないと裏側のワイヤーフレームまで描画される。

なお、Super Cel Shader などを使うときに必要な[オブジェクトのアイテムプロパティ]ウィンドウ>[輪郭]タブでの輪郭線設定はしなくとも、この ToonTracer の設定だけで線は出る。

背景色を設定する

左下の[オプション]をクリックし、[レンダラー設定]タブ>[背景色]で[設定色]を選択。右のカラーボックスや数値入力欄を使うことで背景色を任意の色へ変更可能だが、漫画用途に使うなら初期設定のまま白 (RGB: 255, 255, 255) でよい。

背景色とあるが、この色はオブジェクトの輪郭線より外の色というだけではなく、同時に輪郭線内の色にもなる。出力される線だけが「手前」にあり、その「奥」に置かれる色だと理解するのがよい。2DCGで例えるなら、線画だけを抽出したレイヤーの下に置かれる背景レイヤーの色である。

解像度を決める

出力解像度が低いとジャギー(ギザギザ)が目立つので、これを例えばモノクロ漫画原稿などで使えるレベルの値に変更する。参考までに 600 dpi のB4漫画原稿用紙の幅と高さ(ピクセル数)は、大体 5000 × 7000 pixel から 6000 × 8500 pixel 程度となる。そして、LightWave の出力にはレンダリング解像度とカメラ解像度の両方が必要になる。例えば、レンダリング解像度を高くしてもカメラ解像度の設定を忘れて低いままだと、出力画像が低解像度になってしまうので注意。

まずはレンダリング解像度を決める。[レンダー]タブ>[オプション]>[レンダーオプション]>[一般]タブで解像度(出力画像サイズ)を設定する。[解像度]欄のポップアップから選択してもよいが、並んでいるのは映像出力向けの設定ばかりなので、[幅]と[高さ]の欄に任意のピクセル数を入力したほうが使いやすいと思われる。数値を自分でいじった場合は[解像度]欄が[Global Custom]という表示になる。

カメラ側の解像度も合わせるため、左下の[カメラ]ボタンからカメラを選択し、[カメラのアイテムプロパティ]を開き(ショートカット【p】)、[解像度][幅][高さ]の欄を確認し、併せて調整する。なお、カメラ解像度をレンダリング解像度と同じ値に自動で合わせることもできる。[カメラのアイテムプロパティ]ウィンドウ>[解像度]欄の左にある[グローバル]を有効にすると、先ほど[レンダーオプション]>[一般]タブで設定した解像度の値がカメラ解像度にも適用されるようになる。


レンダリングを実行する

最後に[レンダー]タブ>[レンダー]>[レンダーフレーム](ショートカット【F9】)を実行。[カメラ]ビューで見えている状態がプレビューされる。[レンダー状態]画面が起動し、中央の緑色のバーが最後まで進んで特に問題なければ[続行]、[レンダー状態]画面が閉じるので、[File]から保存形式を選択して保存する。他にオブジェクトを配置していなければ、「LW_PShop32 (.psd)」などの32ビット画像で保存することでアルファチャンネルが作成されるので、その後のマスキング作業に活用できる(詳しくは「応用編1:オブジェクトや影部分のアルファチャンネルを出力する」を参照)。

出力画像その1-3。その1のブラシ設定は上にある画像の通り。その2は「その1」から[深度しきい値]を2.0mmにしてみた結果。その3は「その1」の設定から[法線の折り目]の[山折り][谷折り]をそれぞれ180度にして隠線消去したワイヤーフレームを出力した。どれも1200×2000ピクセルでレンダリング時間は5秒弱。

よくある問題と解決法

黒い筋が出力されてしまう・画像の下部分が出力されない

大きなサイズで出力する場合にありがちだが、画像の途中に黒い横線が出たり、画像の下部分が消えたりする現象が発生することがある。原因は、レンダリング用に確保するメモリの不足。

このとき[レンダーオプション]>[一般]>[セグメント]欄を見ると2以上になっているはずなので、このセグメント数を1にするよう設定を変える。例えばこのセグメント数が2の場合、カメラの種別に関わらず、ToonTracer を使用するとレンダリングが上下2段階に分かれて行われ、その境界に横線が入ってしまう。セグメント数は同じ[一般]タブの[分割メモリ設定]の数値を上げることで変更可能。まずは数値を倍にしてセグメント数が1になるかを見て、ダメならさらにその倍にして(16→32→64...)……と調整する。このセグメント数を1にするためのメモリ設定値は、カメラのレンダリング解像度が大きくなればなるほど多くする必要がある。

以前はプラグイン側でもこの現象を防ぐために[UnReal2::RenderAssist]というピクセルフィルターを同梱していたが、近年のマシン性能向上などの理由で現行バージョンでは消えている。

細かいところの線が出ない

線幅を最小の1ピクセルに設定していても細部の線が出ない場合、その箇所が1ピクセル以下の線になっている可能性がある。あらかじめ大きめの解像度でレンダリングしたものを縮小すればよい。また、線を出したい境界ではきちんとサーフェイス分けやオブジェクト分けをしておくとよい。

線がガタつく

きれいな線を得るには、アンチエイリアス設定を可能な限り高くしておく。基本的に漫画制作で使われるのは2値データだが、3Dソフトでレンダリングする際はアンチエイリアスを有効にしたほうがよいだろう。その後、線画を原稿に持ち込む際に調整すればよい。

点状のノイズが出る

非平面ポリゴンに対して ToonTracer のラインを描画すると、点状のノイズが入る場合がある。なるべく三角ポリゴンやサブパッチ(レンダリング時に自動で三角化される)を使用すること。

クラシックカメラで点状のノイズが出る

クラシックカメラで ToonTracer を使用する場合、[カメラのアイテムプロパティ]>[アンチエリアシング]の[適正サンプリング]を必ずOFFにする。ONだとレンダリング画像に点状のノイズが発生する。

板ポリゴンで変な線が出る

板ポリゴンで線を表現した箇所は、それにアウトラインが入ると変な結果になる。透明度を小数点以下の数値(0.01% など)を入力すればラインが消えてくれる。

クラシックカメラ以外にするとアンチエイリアスがかからない

クラシックカメラ以外のカメラを使う場合、アンチエイリアス設定は ToonTracer の[オプション]で設定する必要がある。

色と陰・影をつける

単純な輪郭線だけであればこれまでの手順だけで大丈夫だが、くっきりと陰や影まで入れた画像を出力したい場合、さらなるシェーダー CelPainter を追加・設定する必要がある。モノクロで大きく陰を入れた画を出力するために、まずは色のついた状態から解説する。なお、陰 (shade) と影 (shadow) の違いについては理解しているものとする。

背景色についての注意

前述したように、CelPainter を使えば出力画像に色や陰をつけられる。その場合、ToonTracer の設定については上記とほぼ同じだが、その背景色設定については異なってくるので注意。[unReal Xtreme2 - ToonTracer]設定パネルで、もしも左下の[オプション]>[レンダラー設定]タブ>[背景色]にて[設定色]を選択していた場合、これを解除して[レンダリング画像]へと変更しておく。これをしないと CelPainter でせっかく色を設定しても、すべてがここの背景色で上書きされてしまうので注意。

ただし、このままだとレンダリング背景色が LightWave の標準である黒色になってしまうので、漫画・イラスト用に使うためこれを白色にする。Layout 画面左上の[ウィンドウ]>[背景オプション](ショートカット【Ctrl+F5】)>[特殊効果]ウィンドウ>[背景]タブ>[背景色]で、カラーボックスをクリックするなどして白 (RGB: 255, 255, 255) に設定。


CelPainter をセットする1(LightWave 標準の方法)

Layout(Modeler でも可能)にて、左上メニュー[色・質感編集](ショートカット【F5】)で[Surface Editor]を開く。左のサーフェイス名をひとつ選択し、[シェーダ]タブの[シェーダ追加]プルダウンメニューで[unReal2::CelPainter]を選択する。

左のサーフェイスリスト欄にサーフェイス名が2つ以上並んでいる場合は、すべて同様にする。ただし、いちいち選択してやるのは面倒なので、サーフェイスのシェーダ設定のコピー&ペーストを推奨する。先ほどひとつ設定したサーフェイス名を選択し、[シェーダ]タブで[unReal2::CelPainter]を選択して右クリック>[コピー](または右上の[編集]から[コピー])。これでこのサーフェイスの CelPainter 設定がコピーされたので、同じような手順で[↑][↓]キーで他の未設定サーフェイスに移動し、[貼付け]していく。貼り付ける際はすでにあるシェーダー名の上で右クリックしないとダメなので注意(さもなくば右上の[編集]から[貼付け])。

そして、オブジェクトを上書きせずに別名で保存しておく。Layout では[ファイル]>[保存]>[現在のオブジェクトを保存]から別名にして保存。Modeler の場合は[ファイル]>[別名で保存]。[Surface Editor]でサーフェイス設定をいじることは Layout でも可能だが、シーン保存では設定が保存されないので注意すること。なお、Layout 画面左下で[オブジェクト]が選択されていないと、オブジェクトを保存しようとしてもメニューがグレーアウトして保存できないので注意。

CelPainter をセットする2(ShaderManager を使う方法)

unReal には、シェーダーをセットする際の面倒な手順を効率化してくれるプラグイン「ShaderManager」が同梱されているので、それを使って CelPainter をセットする方法も記しておく。

[ユーティリティ]タブ>[プラグイン]>[プラグイン]から[unReal2::ShaderManager]を選択。[シェーダー追加]タブ>[プラグイン種別]から[CelPainter]を選び、下のサーフェイス一覧で CelPainter を適用したいサーフェイスをチェックし(左のチェックボタンで全選択/全解除)、右上[実行]ボタンを押す。最後に[続行]ボタン。これで色・質感編集[Surface Editor]でチェックしたサーフェイスを選んで[シェーダ]タブを開くと、[unReal2::CelPainter]が追加されているはず。

また、このプラグインではシェーダ設定のコピーなども可能。[シェーダー設定コピー]タブで[プラグイン種別]から[CelPainter]を選択し、[コピー元サーフェイス]で設定のコピー元を選んでから、適用したいサーフェイス名の左にチェックを入れて右上の[実行]ボタンを押す。この ShaderManager を使えば、EdgeTracer も同じようにセットできる。

……しかし、なぜか自分の環境では ShaderManager が使えない。[シェーダー追加]タブではサーフェイスリストの最初にあるサーフェイスにだけ、しかもチェックして追加しようとした数のぶんだけ多重にシェーダーが追加されるというおかしな現象が発生。具体的には、18個あるサーフェイスすべてに ShaderManager から追加したはずが、[unReal2::CelPainter]が最初のサーフェイスにだけ18個追加され、他のサーフェイスには追加されないという状況。

仕方がないので、ゼロから追加するのではなく、最初の1サーフェイスにだけ[Surface Editor]>[シェーダ]タブで[unReal2::CelPainter]を追加し、それから ShaderManager でこの設定を他のサーフェイスにコピーしようとしたが、[実行]ボタンを押した瞬間に LightWave がクラッシュした。……どうやら自分の環境では ShaderManager を使えなさそうなので、諦める。検索すると似たような状況に陥っている方がいたが、根本的な解決には至っていない模様。

試しにレンダリングを実行してみる

とりあえずこの時点でレンダリングしてみる。[レンダー]タブ>[レンダー]>[レンダーフレーム](ショートカット【F9】)を実行。[カメラ]ビューで見えている状態がプレビューされる。[レンダー状態]画面が起動し、中央の緑色のバーが最後まで進むのを待つ。色をつけるとモノクロ線画よりもレンダリング時間がかかるので注意。そして特に問題なければ[続行]、[レンダー状態]画面が閉じるので、[File]から保存形式を選択して保存する。

出力結果その4及び設定。初期設定のままで出力したもの。1200×2000ピクセル(これは以後も同じ)でレンダリング時間は30秒ほど。

配布元サイトの解説によると、CelPainter の標準設定で得られる結果は、LightWave に最初から搭載されているシェーダー SuperCelShader の標準設定と全く同じものになるらしい。そのため、ここからどう調整していくかがポイント。

以下では、とりあえずセル塗り風の色と陰を出すため最低限必要な項目に限定して述べる。CelPainter 各設定項目についてのより詳細な解説は、配布元のマニュアルバージョン1.5以降の差分ドキュメント参照のこと。配布元のサイトにはチュートリアルもあるが、古いバージョンでの解説なのでインターフェースが違うことに注意。

地の色と陰色の境界を調整する

まず[Surface Editor]でサーフェイスを選んで[シェーダ]タブで追加されている[unReal2::CelPainter]をダブルクリック(または右クリック>[プロパティ])し、CelPainter メインパネルを出す。

色のついた帯が見える欄があるが、ここをグラディエントビューと呼ぶ。グラディエント (gradient) とは勾配という意味だが、要するにグラデーションのこと。表示されている帯はプレビューエリアと呼び、ここには下で選択されているタブ(ベース、スペキュラ、透明度)の状態が表示されているので、別のタブへ移動すると表示も変わる。

プレビューエリアには「四角形に囲まれたX印」と「上を向いた三角形」のペアがいくつか並んでいるが、これをグラディエントキーと呼ぶ。このキーをいじることで、全体における色の量や、色が推移する幅などを調整できる。上を向いた三角形はキーのハンドルで、これをクリックすることでそのキーを選択し、ドラッグで位置を移動・変更したり、下のタブで設定情報を編集できる。四角形に囲まれたX印のハンドルを押すと、そのキーは削除される。キーを追加したい場合は、プレビューエリアの任意の位置をクリックする。慣れないうちは色々といじって元に戻せなくなる前に、スクリーンショットを撮っておくなどして初期設定の数値情報をメモしておくのがよいだろう。

現状では色と色の境界がグラデーションになっているので、セル塗りのように色の変化をはっきりさせてみる。三角ハンドルをひとつ選択し、[ベース]タブの[スムージング]を[リニア]ではなく[ステップ]にする。プレビューエリアの該当キー部分に表示される色の境界が、グラデーションではなく段階的に変化したのが分かる。まだひとつのキーだけなので、別のハンドルを選択して他のキーでも同じように設定する。グラデーションを消したことで不要になったキーは削除。

これだけだと今選択しているサーフェイスだけにしか適用されないので、他のサーフェイスにも同じように設定していく。[Surface Editor]ですでに設定してあるサーフェイスを選択し、[シェーダ]タブで[unReal2::CelPainter]を選択して右クリック>[コピー](または右上の[編集]から[コピー])。これでこのサーフェイスの CelPainter 設定がコピーされたので、同じような手順で他の未設定サーフェイスに[貼付け]していく。ただし、すでに CelPainter が設定してあるサーフェイスに貼りつけると CelPainter が2重になってしまうので、既にある CelPainter 設定を[除去]、またはシェーダー名の左にある[オン]のチェックを外してから新規に貼りつけること。これらシェーダーの追加・削除作業は ShaderManager が使えると一気にできてとても楽なので、使える人は使ったほうがよい。

そしてレンダリングして確認する。サイズが大きいと時間がかかるので、調整用ならサイズを小さくするか、または一部の目立つサーフェイスだけ設定して確認するのがよい。以後はパラメータ調整とレンダリング確認を繰り返し、好みの設定を見つけたらオブジェクトを保存しておく。

出力結果その5及び設定。全体的にキーを左にずらして調整し、初期設定よりも明るくしてみた。なお、これ以外の結果も含めて今回は[ベース]タブしかいじっていない。

出力結果その6及び設定。試しにキーを削除して、陰を1段階のみにしてみた。やや単調な気がする。

陰の量などもキーのハンドルを左右に動かして調整すればよいが、光源自体を移動させたければライトを移動させる必要がある。Layout 画面左下の[ライト]ボタンを選択し、[変形]タブ>[移動]>[移動]と、[変形]タブ>[回転]>[回転]を組み合わせて動かす。

ちなみに日本のセルアニメーション用語では、キャラクターの地の色(通常色)のことをノーマルと呼び、そこへ落ちる標準のカゲを1号影(影1号)と呼ぶ。さらに暗い色のカゲになると2号、3号と数字が増える。BL影という用語もあり、これはブラックつまり黒色のカゲのこと。セルアニメでは基本的にこれらとハイライトをあわせて明暗を表現している。定着しているからなのか、用語で影と陰の使い分けはなされていない模様。

陰の色を調整する

単にキーハンドルを左右に動かすだけでは、サーフェイス色を地の色として明度の異なる陰の量が変わるだけである。そこで、色を陰の上に載せてみる。[カラー]欄の右にあるカラーボックスをクリックして出る[色の設定]パネルでも色は調整できるが、それよりも[カラーピッカー]ボタンからカラーピッカーパネルを使うのが、両隣に載せる色と比べながら色調整できるのでおすすめ。その場合はパラメータ変更しても[更新]ボタンを押さないと適用されないので忘れずに。

カラーピッカーパネルに3段並んでいるカラースライダだが、上から順に色相、彩度、明度というよくあるHSV形式。その右のカラーエリア(色比較欄)では現在選択されているキーの色が中心に、その両隣のキーの色が左右に表示される。上段[Color]がキーの色、中段[Bright]がその色の明度、下段[Luminance]が輝度である。最初は左のスライダの項目を表示しているのかと勘違いして「なぜ彩度なのに Saturation じゃなくて Bright なんだろう? 明度も Luminance じゃなくてここは Value では?」などと思ったが、全然関係なかった。少し紛らわしい。

マニュアルによると「アニメ調の明るい陰を設定したい場合は色相をメインに調節して、輝度を維持したまま明度が下がるように色を選ぶと良い結果が得られます」とのこと。なお、セルアニメ調の陰色の設定は、以下のブログ記事が参考になる。単に地の色の明度を下げて陰色にするだけだと効果的ではないらしい。

また、このへんも参考になるかもしれないので並べるだけ並べておく。

さて、ふたたびレンダリングして確認、パラメータ調整してレンダリング確認……を繰り返して最終的な画に近づけてゆく。自分は設定コピーが面倒なのとレンダリング時間短縮のため、一番目立つサーフェイスの設定だけをいじってはレンダリング確認し、ある程度設定が固まったら他のサーフェイスにもその設定をコピーして最終的な画を出力するという方法にしている。

出力結果その7及び設定。陰に少し赤みのある色を載せてみた。

影を落とす

ここで、地面に影を落としてみる。まず影が落ちる地面がないので、オブジェクトとして作成する。適当な大きさの平らな板ポリゴン(今回は50m×50mにした)を y=0 の位置で作成。

次に、すでにオブジェクトを読み込んでいる Layout 画面へそれを読み込む。[ファイル]>[開く]>[オブジェクトを読み込む]から地面オブジェクトを選択して読み込むと、現在開いているシーンに追加される。この読み込んだオブジェクトはそれぞれ「アイテム」として画面左下のポップアップから選択できる。任意のアイテムを選択して[アイテム]タブの[置き換え]や[削除]から、別のオブジェクトに置き換えたり、削除したりできる。

まだ地面オブジェクトのサーフェイスを設定していないので、[Surface Editor](ショートカット【F5】)で任意の色をつける。適当なサーフェイス名をつけ、今回は白い背景のままがよいので、とりあえず色を白にする。そして[シェーダ]タブの[シェーダ追加]プルダウンメニューで、[unReal2::EdgeTracer]と[unReal2::CelPainter]を選択してサーフェイスにセットし、CelPainter のパネルを開いて設定を調整する。このサーフェイス設定が終わったらオブジェクトを保存しておくとよい。

[レンダー]タブ>[オプション]>[レンダーオプション]>[レンダー]タブで、[影レイトレース]にチェックをつけて有効化する。これをやらないと影が落ちない。

ついでに左下[ライト]ボタンを選択し、[ライトのアイテムプロパティ]ウィンドウを出す(ショートカット【p】)。下にある[影]タブ>[シャドウ種]が[レイトレース]になっているのを確認しておく。なお、レイトレース(レイトレーシング)とは、視点に入ってくる光の軌跡を辿って計算し画像を作成する技術のこと。

最後に[レンダー]タブ>[レンダー]>[レンダーフレーム](ショートカット【F9】)でレンダリングを実行。影を計算するためにレンダリング時間は増える。

出力結果その8。上の「出力結果その7」に影の設定を追加した結果。レンダリング時間は1分ほど。影の色は CelPainter の設定に従っているのがわかる。

そして見て分かる通り、自分の体の影が自身に落ちている。これを消して、地面だけに影が落ちるようにする。左下[アイテム]で自分の影を落としたくないオブジェクトを選択し、[オブジェクト]ボタンを選択して[オブジェクトのアイテムプロパティ]ウィンドウを出す(ショートカット【p】)。[レンダリング]タブ>[自己の影]の項目を無効化する。

そしてレンダリング。

出力結果その9-10。自分自身に影を落とさないよう設定した結果。2枚目は[ライトのアイテムプロパティ]>[ライトの明るさ]を 50% にした結果。

モノクロで陰・影をつける

これまでの設定を踏まえ、陰影も表現されたモノクロ画を出力してみる。

まず、[Surface Editor](ショートカット【F5】)でひとつのサーフェイスを選択し、[基本]タブのカラーボックスをクリックしてサーフェイス色を白 (RGB: 255, 255, 255) に変更する。

[シェーダ]タブにすでに追加されている[unReal2::CelPainter]がある場合、その左についている[オン]チェックを外すか、または削除する。[シェーダ追加]より新規に[unReal2::CelPainter]を選択して追加し、名称部分をダブルクリック(または右クリック>[プロパティ])して CelPainter メインパネルを出す。

陰のキーを選択し、[ベース]タブのカラーボックスをクリックして色を黒に変え、キーハンドルを動かして陰の具合を調整する。白と黒だけあればいいので、不要なキーは削除する。

この設定を他のサーフェイスにも移植する。色もすべて白、シェーダ設定もすべて同じにしたいので、先ほどひとつ設定したサーフェイス名の上で右クリックして[Copy]、他のサーフェイス名を右クリックし[Paste]で設定を移植。このとき、[Shift]押しながらだと複数まとめて選択可能。

念のためにオブジェクトを別名で保存しておく。そしてレンダリング。

出力結果その11及び設定。レンダリング時間は1分15秒だった。

今は地面オブジェクトがあるので地面に影が落ちているが、この影を消してみる。左下[アイテム]で地面のオブジェクトを選択する。[アイテム]タブ>[削除]でオブジェクトを消してもいいが、[オブジェクト]ボタンを選択して[オブジェクトのアイテムプロパティ]ウィンドウ(ショートカット【p】)>[レンダリング]タブ>[影を受ける]の項目を無効化すれば、地面オブジェクトを残したままでも影が消える。

そしてレンダリング。


出力結果その12。レンダリング時間は1分16秒だった。

[影を受ける]を無効にしてもオブジェクト自体はカメラに映るので、この場合、背景には影が落ちない白い地面がある。アルファチャンネルはオブジェクト部分に作られるため、マスク領域が画面全体にできてしまう。これを避けるには、[レンダリング]タブで[影を受ける]の項目ではなく、その上にある[カメラ無効]の項目にチェックすればよい。地面オブジェクトが写らなくなり、コンバットシェル部分だけのアルファチャンネルが得られる。

出力結果その13-15。これまで解説したことを組み合わせて設定をいじると、このような結果が得られる。

地面の影だけを出力する

素材としてあとで合成する場合、地面に落ちた影だけを別に出力したいことがある。任意のオブジェクトをレンダリング時に写らなくすることで、そのオブジェクトが落とす影だけを得ることが可能になる。画面左下[アイテム]で出力画像に写したくないオブジェクトを選択し、[オブジェクト]ボタンを選択して[オブジェクトのアイテムプロパティ]ウィンドウを出す(ショートカット【p】)。[レンダリング]タブ>[カメラ無効]の項目にチェックをつけて有効化する。なお、このとき[自己の影]は有効化しても反映されない。

出力結果その16。「出力結果その10」のコンバットシェルに[カメラ無効]を適用し、地面の影だけを出力。レンダリング時間は20秒ほど。

オブジェクト表面の陰影だけを出力する

輪郭線を除いた、オブジェクト表面の陰影だけを出力するには、これまでの設定のうち、CelPainter だけが適用されるようにすればよい。

具体的には、Layout 左上メニュー[ウィンドウ]>[イメージプロセッシング]で[特殊効果]ウィンドウを開き(ショートカット【Ctrl+F8】)、[プロセシング]タブのピクセルフィルタ欄で[unReal2::ToonTracer]の左にある[オン]のチェックを外して無効化する。

[Surface Editor]の[シェーダ]タブにある EdgeTracer については、有効化されていても特に問題ない。これでレンダリングすれば、輪郭線のない陰影だけの画像が出力される。

出力結果その17と、Photoshop におけるそのチャンネル表示。ToonTracer を無効化。地面オブジェクトの[オブジェクトのアイテムプロパティ]ウィンドウ>[レンダリング]タブ>[カメラ無効]をチェックしてレンダリングしたため、地面が写らずにコンバットシェル部分だけのアルファチャンネルも得られた。レンダリング時間は45秒ほど。このとき[レンダー]タブ>[オプション]>[レンダーオプション]>[レンダー]タブ>[影レイトレース]を無効化するとレンダリング時間が少し縮まる。


出力結果その18。[影レイトレース]を有効化し、[オブジェクトのアイテムプロパティ]ウィンドウ>[レンダリング]タブ>[自己の影]の項目を有効化した場合。

線に強弱をつける

線に強弱をつけるにはノード編集機能というものが絡んでくるらしく、これから学ぶ予定なのでまだよく分かっていない。とりあえず参考になりそうなものを。

  • unReal Xtreme2 1.50 beta6: D-Creation コメント欄。
  • CG@俺 unrealで線の強弱を作ろう!
    • ウェイトマップとノード編集機能を利用して、unReal Xtreme で強弱のついた線を出す方法。
  • 小ネタ集: D-Creation
    • 線に強弱をつける方法について少し触れられている。ペンのテクスチャに楕円のイメージを設定し、ペンサイズをイメージサイズに合わせるらしいが、少し面倒。そしてペンサイズの上限 32pixel を突破する方法についても。

また以下のような情報もあったが、学習が足りない今の自分には何を言っているかが理解できない箇所が多い。

962 :名無しさん@お腹いっぱい。:2012/08/13(月) 16:36:05.79
unrealでもライトのForwardと法線の内積をEdgeTracerのカスタムバッファに入れればライトで線の太さコントロールできるよ。
つか最新版で新型カメラでも普通にレンダリングできるようになってた。



970 :名無しさん@お腹いっぱい。:2012/08/14(火) 16:14:46.07
>>962さんの言う設定のやり方ノードでするの?がさっぱり分からない・・・
誰かこのファイル弄ってライトで線の太さコントロールする方法おしえてください
unreal_beta8で無理やりつけてみた強弱
http://bbs6.fc2.com//bbs/img/_408400/408397/full/408397_1344927385.jpg
http://www1.axfc.net/uploader/Sc/so/370177.zip


972 :名無しさん@お腹いっぱい。:2012/08/14(火) 18:06:48.42
>970
こんな感じかな
http://www1.axfc.net/uploader/Sc/so/370195.zip
いじったのはサーフェイスのノード設定と線の太さにグラディエントテクスチャ使用。
ライトは向きベクトルしか使ってないんで代わりにNullにするとライトの当たり具合と線のコントロールを別々に調整できていいかも。
dotノードは-1.0〜1.0の値を返して、ライトが面の方向を向いてるほど-1.0になって
逆にそっぽ向くと1.0になるんでグラディエントの範囲も-1.0〜1.0にして調整。
カスタムバッファの接続をウェイトマップやグレースケールテクスチャにすればその値で線の太さも変えられるよ。

LightWave3D・雑談スレ69
追記(2018-08-16)

v11.5以降に搭載されたノードによる輪郭線制御を使って、光の影響を受けた強弱を線につける方法について書いた。

参考

ライセンス

本記事に使用したオブジェクトの元データは、作成者の rogerharkavy 氏によりクリエイティブコモンズ・ライセンスの「Attribution-NonCommercial-ShareAlike(表示-非営利-継承)」で配布されているため、その派生物である本記事内の出力画像にも同じライセンスを適用する。

クリエイティブ・コモンズ・ライセンス
rogerharkavy, Ditty を著作者とするこの 記事内の画像クリエイティブ・コモンズの 表示 - 非営利 - 継承 4.0 国際 ライセンスで提供されています。
http://www.thingiverse.com/thing:21308にある作品に基づいています。