この記事では Pencil+ ラインの概要と、Pencil+ ラインの基本的な使用方法を解説します。
1 Pencil+ ラインとは?
Pencil+ ラインはオブジェクトに輪郭線を描画する機能です。オブジェクトの交差、マテリアル ID の境界、スムージングの境界など、オブジェクトの様々な情報を使用してラインを描画する場所を指定できます。
Pencil+ ラインには線の表現に関わる多くのパラメータが組み込まれています。目的の表現にあわせて必要なパラメータを設定していきます。
1-1 Pencil+ ラインはポストエフェクト
Pencil+ ラインはポストエフェクトとしてラインを描画します。
ポストエフェクトとは後から効果を適用するという技術用語です。Pencil+ 4 ラインは 3ds Max の効果と同様に、スキャンラインレンダラーがレンダリングした画像に対して、後からラインを合成しています。
では、今回も VRoid Studio から出力したサンプルモデルに Pencil+ ラインを適用する方法を解説していきます。
3DCGで輪郭線を表現する場合、大まかに 3 つの手法があります。
- ポリゴンを使用する手法
- シェーダーを使用する手法
- ポストエフェクトを使用する手法
ラインは様々な手法で表現できます。ここでは手法の違いによるラインの特長を簡単に紹介したいと思います。
1. ポリゴンを使用する手法
オブジェクトのメッシュを同じ位置にコピーして反転し、ポリゴンを法線方向に押し出す手法です。ゲームなどリアルタイムコンテンツでは昔から使用されている手法です。レンダラーによってはチューブ状のメッシュを生成してレンダリングする場合もあります。
このポリゴンを使用する手法には以下のような特長があります。
- ラインの太さをモデリングツールで編集して調整できる。
- レイトレースによる反射屈折などレンダリングに関する制限が少ない。
- ラインがカメラのパースによる影響を受け太さが変化する。
- ラインがオブジェクトの外側に描画される。
ポリゴンを使用する手法はラインが 3D 空間上に存在するため、レンダリングに関する制限が少ないことがメリットとして上げられます。ラインを太く設定したり、カメラがラインに接近すると、オブジェクトとラインの隙間が目立つようになります。
2. シェーダーを使用する手法
マテリアルのシェーダーでラインを表現する手法です。古典的な物だとフォールオフ マップを使用する方法があります。また、3ds Max に標準機能として搭載されている Ink 'n Paint マテリアルもシェーダーを使用したライン機能です。
フォールオフはカメラから見たポリゴンの法線角度に応じてグラデーションを設定するマップです。ミキシング カーブを階段状に設定してラインのように表現できます。
フォールオフ マップを使用したラインには以下の特徴があります。
- レイトレースによる反射屈折などレンダリングに関する制限が少ない。
- ラインがカメラのパースの影響を受け太さが変化する。
- 形状によってラインの太さが変化するため、太さを制御するのが困難。
- ラインがオブジェクトの内側に描画される。
ラインの太さが法線角度に依存するため、カメラと水平に近いポリゴンではラインが細くなり、角度がなだらかなポリゴンではラインが太くなります。
Ink 'n Paintは3ds Maxのトゥーンレンダリング向けマテリアルです。Ink 'n Paintを使用したラインには以下の特徴があります。
- レイトレースによる反射屈折などレンダリングに関する制限が少ない。
- 比較的均一な太さのラインを描画できる。
- ラインがオブジェクトの内側に描画される。
- レンダリング時間が長くなる傾向がある。
シェーダーとしてラインを描画する手法は、ポリゴンでラインを描画する手法と同じくレンダリングに関する制限が少ないのが特長です。ラインは常にオブジェクトの内側に描画されます。
3. ポストエフェクトを使用する手法
オブジェクトID、Z深度、法線角度などのG-Buffer情報に所定のフィルターをかけ、輪郭線を抽出する手法です。これは、Pencil+ 1 や Liquid+ のラインで採用していました。ポリゴンを使用する手法やシェーダーを使用したラインと異なり、スキャンラインレンダラーと異なるプロセスでラインを計算します。最終的にスキャンラインレンダラーがレンダリングした画像にラインを合成して1つの画像を生成します。
Pencil+ 2 以降では独自の計算方式を採用しており、ポストエフェクトは生成されたライン画像を重ねるために利用してます。
Pencil+ ラインには以下の特徴があります。
- カメラのパースの影響を受けない。
- 均一な太さでラインを描画できる。
- ラインはオブジェクト内と外両側に描画される。
- レンダリング時間が速い。
- レイトレースによる反射屈折に対応していない。
ポストエフェクトを使用した手法はポリゴンやシェーダーを使用したラインと異なり、3D 空間上の制約が少ないのが特長です。
例えば写真や CG に手描きでラインを書き足す場合、どの位置にラインを描くでしょうか?
オブジェクトの内側に描くでしょうか、それとも外側に描くでしょうか。私達はオブジェクトの境界を中心として、内と外の両側にラインを描くことが自然だと考えました。
「ポリゴンを使用する手法」「シェーダーを使用する手法」では、オブジェクトの内側と外側のどちらか一方にしかラインを描画できませんでした。ポストエフェクトでは 3D 空間上の制約が少ないので、オブジェクト内と外の両側にラインを描画できます。しかし、ポストエフェクトではポリゴンやシェーダーのようにレイトレースの反射屈折に対応できません。
今回紹介した「ポリゴンを使用する手法」「シェーダーを使用する手法」「 ポストエフェクトを使用する手法」いずれの手法も技術的な特長があり、得意な表現や苦手な表現があります。これらの特長は作品の方向性によってメリットにもデメリットにもなりえます。また、技術的に苦手な問題を解決するオプションを提供してるソフトもあります。たとえば Pencil+ ラインはレイトレースの反射や屈折に対応していませんが、[Pencil+ 反射/屈折 マップ]を使用して問題に対処しています。
Pencil+ ラインがポストエフェクトを選択した理由は、実現したいライン表現にポストエフェクトが適していたからです。では実現したいラインがどんな物であったかについては、次のコラム 2「Pencil+ ラインの表現力」で紹介したいと思います。
Pencil+ ラインをアニメに使用していただける理由は、ラインの美しさ、表現力の高さ、レンダリングの速さなどが上げられると思います。
ここでは Pencil+ ラインを使用すると、どのような表現が可能なのか簡単に紹介したいと思います。Pencil+ ラインは様々なパラメータを使用して、作品にあわせたラインを表現できます。
均一な太さのライン
近年のアニメでは均一な太さの線で作画される作品が多い傾向が見られます。線の太さを均一にする理由は絵柄の流行など様々な要因がありますが、絵の品質を一定に保つ効果があるのが理由の 1 つではないでしょうか。漫画のように入り抜きのあるラインよりも、均一な太さのラインで描いた絵の方が、絵の品質を一定に保ちやすく量産に向いています。
手描きの絵と CG を同じカット内で馴染ませたい場合、均一な太さのラインを描画できることは重要なポイントの 1 つです。
距離によって太さが変化するライン
手描きの絵では遠くにあるオブジェクトの線は感覚によって省略されますが、CG を使用すると遠くにあるオブジェクトの線も詳細に描画されます。これは CG の長所でもありますが、ノンフォトリアリスティックレンダリングでは短所になる場合があります。
線画では線の多い部分に視線が誘導されます。CG を使用して遠くにあるオブジェクトまで詳細にラインを描画すると、絵の中で本来見せたい部分よりもオブジェクトが密集した部分に視線が集まってしまいます。実写映像で例えると見せたい対象にフォーカスを合わせて周辺をぼかすように、Pencil+ はラインの太さを制御できます。
例えばカメラからの距離に応じてラインの太さを変えることができるので、遠くよりも手前にあるオブジェクトに視線を誘導できます。
指定したオブジェクトからの距離を使用できるので、線画の中で強調したい部分を制御できます。
入り抜きのあるライン
漫画やイラストでは、つけペンの柔らかさを利用して線に強弱を持たせる「入り抜き」の表現を多く見ることができます。アニメも作風によって線に強弱のある作品があります。
Pencil+ はラインの太さに変化をつけて、手描きのようなニュアンスを加えることができます。
交差したライン
オブジェクトが水に沈んだり、オブジェクト同士がぶつかった表現をしたいときは、オブジェクトが交差した部分にラインを描画できます。
はみ出したライン
ポストエフェクトでラインを描画する Pencil+ は、オブジェクトから大きくはみ出したライン、歪んだライン、ラフなラインを描画できます。
ポリゴンやシェーダーを使用したラインとは異なり、オブジェクトのメッシュの細かさの影響を受けません。波線のような歪みや、破線を描画できます。
ブラシの形状を設定して毛筆のようなラインも表現できます。
高品質なアンチエイリアシング
Pencil+ ラインは表現力や自由度が高いのが特長ですが、それだけではありません。高品質なアンチエイリアシング処理されたラインを描画できます。
3DCG は群集シーンのようにオブジェクトを大量に配置することが得意ですが、カメラから遠くにあるオブジェクトは重なり合った状態になります。ポリゴンやシェーダーを使用したラインの場合、アンチエイリアシングのサンプリングを上げる必要があるためレンダリング時間が長くなります。
Pencil+ ラインはアニメーションでもフリッカー(ちらつき)のない美しいアンチエイリアシングを持ち、高速に描画できます。
簡単に Pencil+ ラインの表現力に関する機能を紹介しました。Pencil+ はノンフォトリアリスティックレンダリングで必要とされる、様々な表現を可能にします。ぜひオリジナルのライン表現に挑戦してみてください。
2 Pencil+ ライン の使い方
Pencil+ ラインを作成して、オブジェクトに割り当てる方法を解説します。
2-1 レンダラーをスキャンラインレンダラーに変更する
「Pencil+ マテリアルの使い方」と同様に、Pencil+ ラインを使用するにはスキャンラインレンダラーに変更する必要があります。
2-1-1 レンダラーの変更手順
- [レンダリング設定]ダイアログを開きます。
- [レンダリングを割り当て]ロールアウトの [...]ボタンをクリックします。
- [レンダラーを選択]ダイアログ ボックスで、[スキャンライン レンダラー]を選択してOKボタンを押します。
これで Pencil+ ラインが使用できるようになりました。
レンダラーを選択ダイアログ ボックスに[Pencil+ 4 ライン レンダラー]が表示されてるのに気がついたかも知れません。これは Pencil+ ライン専用のレンダラーで、ラインのみをレンダリングします。
スキャンラインレンダラーを使用してレンダリングするとマテリアルのシェーディング計算が行われますが、Pencil+ ライン レンダラーを使用するとマテリアルの計算をはぶくことができます。スキャンラインレンダラーを使用してレンダリングした場合よりレンダリング時間が短くなります。
アニメーションスタジオでは 3ds Max の Render Elements を使用してマテリアルとラインを別々の画像に出力し、After Effects などのコンポジットソフトで合成して最終的な映像に仕上げます。コンポジット段階でラインの設定のみ変更したい場合が発生したときは、Pencil+ ライン レンダラーを使用すると便利です。
Pencil+ はバージョン 4 からマルチプラットフォーム化するためライン機能を独立したレンダリングエンジンに変更しました。これにより Maya、Unity、After Effects、Blender で全く同じラインをレンダリングできるようになりました。
[Pencil+ 4 ライン レンダラー]はライン レンダリングエンジンの副産物ですが、「ラインのみレンダリングしたい」や「レンダリング フレーム ウィンドウからラインだけ印刷したい」というリクエストに応えた機能でもあります。
2-2 Pencil+ ラインを作成する
Pencil+ ラインを作成してオブジェクトにラインを描画する手順を解説します。3ds Max ではポストエフェクトを管理する専用の[環境と効果]ダイアログを開き、Pencil+ ラインを追加してラインを設定します。
2-2-1 ラインを作成する手順
- [環境と効果]ダイアログの[効果]パネルを開きます。
- [追加]ボタンを押し、[効果を追加]ダイアログ ボックスから [Pencil+ 4 ライン]を選択して[OK]を押します。
- [ラインセット]リストの[追加]を押してラインセットを作成します。
- [マテリアル]リストの[追加]ボタンを押し、[マテリアルの追加]ダイアログでマテリアルを選択して[OK]を押します。
最初はラインを描画したモデルがどのように見えるか確認するため、全てのマテリアルを追加します。
オブジェクトにラインを設定してレンダリングできました。モデルにラインを描画するとどのように見えるか、大まかな雰囲気が把握できるようになりました。 この時点でモデルに問題がないか、様々な角度からレンダリングして確認します。ポリゴンが同じ位置で重なっている場合や穴が開いてる場合など、メッシュに問題がある場合はラインが描画されることで気がつくことができます。
3 ラインセットとは
ラインセットはラインの色やストロークのタッチ、オブジェクトのどこにラインを描画するかを決めるグループです。ラインセットにオブジェクトまたはマテリアルを追加して、ラインを描画する対象を指定します。ラインセットは欲しい絵にあわせて複数作成する必要があります。
ラインセットの考えかたはマテリアルと同じです。オブジェクトにマテリアルを使用して色を設定する場合、色の数だけマテリアルを作成します。同じようにラインの色やタッチの種類の数だけラインセットを作成します。
3-1 ラインセットではオブジェクトとマテリアルどちらを使えばいいのか?
オブジェクトとマテリアルのどちらを使用してもレンダリング時間に差が出ることはないので、好みで選んで問題ありません。
オブジェクトとマテリアルには以下のような特長があります。
オブジェクト
オブジェクトはマテリアルより数が少なくなる傾向があるのでデータの管理が楽です。オブジェクト全体に同じタッチのラインを描画する場合は、オブジェクトを使用すると便利です。
マテリアル
マテリアルを使用すると、マテリアルごとに細かくラインを設定できます。また、オブジェクトを削除した場合でもマテリアルをシーンに残すことができます。このため別のオブジェクトにマテリアルを再適用すれば、ラインセットの設定をそのまま使用してラインを描画できます。
アニメーションスタジオではラインセットにマテリアルを使用する傾向があります。
日本のアニメ作品はラインに対するこだわりが非常に強いように感じます。手描きの作画を見ても作品ごとに線の描き方のルールが異なるのがわかるのではないでしょうか。CG でもどこにラインを描画するか、どのような質感のラインにするか、作品ごとに細かく制御する必要があるためマテリアルを使用したライン制御が好まれているようです。
今回のモデルではマテリアルを使用してラインを設定します。
3-2 マルチスレッド処理に適したデータ
Pencil+ ラインのレンダリングを速くしたい場合は、キャラクターを構成するメッシュは 1 つのオブジェクトにまとめるよりも、複数のオブジェクトに分かれている方が望ましいです。
Pencil+ ラインはマルチスレッドでラインを計算します。マルチスレッドとは複数の CPU コアを搭載している PC を使用している場合に、計算を並行して行うことでレンダリング時間を短くする技術ですPencil+ ラインはマルチスレッド処理をオブジェクト単位で行います。ポリゴン数が多い場合は、複数のオブジェクトに分けるとラインの計算が効率的になります。
今回のキャラクターの場合、VRoid Studio から出力した状態では Body、Face、Hair の 3 つのオブジェクトで構成されていました。これを Body、Face、Hair_Front1、Hair_Front2、Hair_Back、Tops、Bottoms、Shoes のように 8 つのオブジェクトに分けました。
今回のキャラクターのようにポリゴン数がそれほど多くない場合、レンダリング時間に大きな差がでることはありませんが、ポリゴン数の多いキャラクターの場合はオブジェクトを分けた方が効率的にレンダリングできます。
例えばパーティクルを使用してオブジェクトを散布する場合でも、全てのメッシュを 1 つのオブジェクトとして出力するのではなく、別々のオブジェクトにする[複数メッシュ]を使用するとレンダリング時間が速くなります。
4 Pencil+ ラインの構造
Pencil+ ラインの構造について解説します。
Pencil+ ラインはPencil+ マテリアルと同じようにパラメータが階層構造を有しています。ラインセットを 1 つ作成した場合、下の図のような階層構造になります。一見複雑に見えるかもしれませんが全部で 5 種類の階層で構成されています。Pencil+ ラインではこれらの階層を使用してラインの質感を設定します。
4-1 Pencil+ ライン 階層
最も上位にあるのがPencil+ ライン階層です。Pencil+ ライン階層にはラインのレンダリング全体に関わる設定と、ラインセットを管理するリストがあります。
4-2 ラインセット 階層
ラインセットを追加するとラインセット階層が表示されます。ラインセット階層ではオブジェクトのどの部分にラインを描画するか指定します。
ラインセットには[可視線]と[隠線]タブがあり、タブを切り替えると同じパラメータが並んでいます。可視線はカメラから見える部分のラインに関する設定を行い、隠線はオブジェクトの裏側のラインに関する設定を行うことができます。
多くの場合は可視線を使用することになると思います。隠線は工業製品の説明書などで使われるテクニカルアートのような表現で使用できます。
ラインセット階層のボタンをクリックすると[ブラシ設定][ブラシ詳細設定][減衰設定]パネルを開くことができます。
ラインセット階層には、[ブラシ設定]のパラメータがデフォルトのライン設定として表示されています。また、エッジの検出設定ごとに、より細かくラインを制御するために[個別のブラシ設定]を使用できます。
4-3 ブラシ設定 階層
[ブラシ設定]ではラインの色、太さ、ストレッチ量を設定します。アナログの画材で例えるとインクやペン先の設定にあたります。4-4 ブラシ詳細設定 階層
[ブラシ詳細設定]は、より詳細なブラシの形状やストロークに関する設定を行います。アナログの画材で例えると線を引く勢いや筆圧のような、線のタッチに関する設定にあたります。4-5 減衰設定 階層
[減衰設定]はカメラやオブジェクトからの距離を使用して、ラインの太さや不透明度の変化を設定します。4-6 設定のインスタンス
Pencil+ ラインの階層構造は[ブラシ設定][ブラシ詳細設定][減衰設定]をインスタンスとして管理できるので便利です。
例えばラインの色を変えたいときはラインセットを複数作成します。ラインの色はラインセットごとに変えたいが、[ブラシ詳細設定]は同じにしたい場合があります。[ブラシ詳細設定]をインスタンス コピーすると、1 つの変更で全てのラインセットに同じ設定が適用されます。
次の記事
次の記事ではラインセットをどのように使い分ければよいか、またオブジェクトのどの部分にラインを描画するか指定するエッジの検出設定を解説します。