アニメ調 CG の作り方 第 7 回「ラインセットの分け方」(Maya 編)

この記事ではラインセットをどのように使い分ければよいか、またオブジェクトのどの部分にラインを描画するか指定するエッジの検出設定について解説します。

1 ラインセットの分けかた

ラインの質感を設定する際は、欲しいラインの質感ごとにラインセットを作成し、それに対応するマテリアルを追加する作業を繰り返します。

1 つのラインセットに全てのマテリアルを追加した状態だと、不要なラインがレンダリングされていると感じるかも知れません。ラインセットを分けてエッジの検出設定を変更することで、欲しい所にラインを描画し、不要なところにラインが描画されないように設定していきます。

1 つのラインセットに全てのマテリアルを追加した状態でレンダリングした画像
髪の毛のラインが多く、白目の境界にラインが描画されている。

ラインセットを分ける方法には、大まかに3通りの考え方があります。

  • マテリアルの色ごとに分ける
  • オブジェクトごとに分ける
  • エッジの検出設定ごとに分ける

1-1 マテリアルの色ごとに分ける

同じ色のマテリアルごとにラインセットを分ける方法です。マテリアルの色に合わせてラインの色を設定する、いわゆる「色トレス」をしたい場合に使用します。赤色のマテリアルには赤色のライン、青色のマテリアルには青色のラインのように、描画したいマテリアルの色ごとにラインセットを分けます。

マテリアルごとにラインセットを分けたレンダリング画像
マテリアルの色ごとにラインの色を変更している。

マテリアルごとにラインセットを分けた場合のラインセットリスト

1-2 オブジェクトごとに分ける

オブジェクトのまとまりごとに分ける方法です。体を構成するオブジェクトや、髪や顔など主要なオブジェクト単位でラインセットを分けます。
ラインの設定を変えたい場合は、オブジェクト単位で調整したい場合が多いと思います。

オブジェクトごとにラインセットを分けたレンダリング画像
Sphere、Cylinder、Cube、それぞれオブジェクトごとにラインの色を変更している。

オブジェクトごとにラインセットを分けた場合のラインセットリスト

1-3 エッジの検出設定ごとに分ける

ラインの出し方のルールで分ける方法です。例えばマテリアルの境界にラインを引きたくない場合や、ポリゴンが交差した部分にラインを引きたくない場合など、ラインの描画設定単位でラインセットを分けます。

検出設定ごとにラインセットを分けたレンダリング画像
SphereとCubeはマテリアルID境界、Cylinderではアウトラインを描画しない設定にしている。

検出設定ごとにラインセットを分けた場合のラインセットリストの例

アニメの場合はイラストと異なり色トレスのように細かくラインの色を分けることは少なく、単色のラインが一般的です。このため「オブジェクトごとに分ける」「エッジの検出設定ごとに分ける」方法の併用が多くなります。また、「オブジェクトごとに分ける」「エッジの検出設定ごとに分ける」場合でも、ラインの[カラーマップ]を使用して色トレスのように色を変更できます。

最終的に欲しい絵から逆算して、ラインを管理しやすい単位でラインセットを分けるのがよいと思います。

2 ラインセットにマテリアルを分ける

今回のキャラクターはセル画調を目標にしているので、ラインセットはオブジェクトごとに分ける方法と、検出設定ごとに分ける方法を使用します。

今回のモデルはBody、Face、Hair_Front1、Hair_Front2、Hair_Back、Tops、Bottoms、Shoesの 8  つのオブジェクトで1キャラクターを構成しています。これらのオブジェクトに対応したラインセットを作りますが、ラインセットとオブジェクトを1対1で作成するとラインセットの数が多くなり管理が煩雑になります。同じ設定のラインセットを複数作成しても管理が複雑になるので、まずは「体」「顔」「髪」と大まかに3つのラインセットに分けてラインを設定し、必要に応じてラインセットを分けていきます。

2-1 ラインセットを作成する手順

  1. 既に追加済みの「ラインセット1」を削除します。
    このラインセットはモデルにラインを追加した時、どのようにレンダリングされるのか確認のため追加したものでした。ラインセット リストで「LineSet1」を選択し、[削除]ボタンをクリックしてラインセットを削除します。
  2. ラインセットを再作成します。ラインセット リストの[追加]ボタンをクリックしてラインセットを作成します。
    ラインセットの[名前]をHairSet、FaceSet、BodySetに変更し、使用用途を判別しやすくしました。
  3. 各ラインセットにマテリアルを追加します。髪に使用しているマテリアルはHairSet、顔に使用しているマテリアルはFaceSet、体に使用しているマテリアルはBodySetに追加します。
    1 つの Pencil+ ライン内では、同じマテリアルやオブジェクトを重複して別のラインセットに追加できません。もし[マテリアルの追加]ダイアログに目的のマテリアルが見あたらない場合は、他のラインセットに追加していないか確認してください。
  4. ラインセットにマテリアルを追加し終わったらレンダリングします。
    ラインセットを分けてマテリアルを追加しただけでは、1 つのラインセットに全てのマテリアルを追加したときと同じレンダリング結果になります。

ラインセットの追加と削除手順

次の工程ではラインの太さや色を変更します。

ラインセットにはオブジェクトとマテリアルのどちらも追加できます。ではオブジェクトとマテリアルの両方を別々のラインセットに追加した場合、オブジェクトとマテリアルのどちらにラインを描画するのか疑問に思ったかもしれません。

Pencil+ ラインではリストの上にあるラインセットの設定が優先されます。例えばアウトラインを描画する設定のラインセットと、アウトラインを描画しないラインセットにそれぞれオブジェクトとマテリアルを追加したとします。このような場合はリストの上にあるラインセットの設定が優先されるため、ラインセットの順番を変更するとレンダリング結果が変わります。

ラインセットの優先順位

ラインを設定する場合はオブジェクトとマテリアルを混在して使用せず、どちらか一方に統一した方が管理しやすくなります。

ラインセットを分けるように Pencil+ ラインを複数追加することがあると思います。しかし、Pencil+ ラインの分けすぎには注意が必要です。

PencilLine ノードは、PencilLine ノード単位で順番に計算します。このため PencilLine ノードの数が多いとレンダリング時間が遅くなることがあります。
Pencil+ ラインはマルチスレッドとしてラインを計算しますが、マルチスレッドとして動作するのは 1 つの PencilLine ノードの計算です。

例えばキャラクターと背景で PencilLine ノードを分けるのは問題ありませんが、1 つのキャラクターを複数の PencilLine ノードに分けるような使用方法は、レンダリング時間が長くなる場合があるので避けた方がよいです

複数の PencilLine ノードを追加した場合のラインリスト
画像のリストの場合、PencilLine4 の計算が完了後に PencilLine3、PencilLine2、PencilLine1 の順番で計算が実行される。

3 ラインサイズの相対と絶対

ラインの太さや色は、ラインセットの[ブラシ設定][ブラシ詳細設定]を使用して設定していきます。その前にラインを設定する上で重要なラインサイズの[相対]と[絶対]について解説します。

Pencil+ ラインにはレンダリング全体に影響するオプションがあり、それらのオプションは[Pencil+ 4 ラインのパラメータ]階層にまとまっています。
ラインサイズの[相対][絶対]も全てのラインセットに影響するオプションで、ブラシ設定の[サイズ]に影響します。

ラインサイズの相対と絶対

相対

相対を使用すると、ラインの太さはレンダリングの出力サイズに応じて画面内での比率を維持するように変化します。このとき640×480ピクセルでレンダリングしたラインの太さを基準にします。

例えば640×480 ピクセルでレンダリングした場合と、1280×853 ピクセルでレンダリングした場合で、画面に対するラインの比率が同じレンダリング結果になります。

ラインサイズを相対でレンダリングした画像
レンダリングサイズに応じてラインの太さが変わる。

絶対

絶対を使用すると、常に指定したピクセル数でラインを描画します。

例えばブラシ設定の[サイズ]が 20 の場合、640×480 ピクセルでレンダリングした場合と 1280×853 ピクセルでレンダリングした場合、どちらも 20 ピクセルの太さのラインを描画します。

ラインサイズを絶対でレンダリングした画像
レンダリングサイズを変更してもラインの太さは常に一定。

相対は後からレンダリングサイズを変更しても見た目の一貫性を保つことができます。テストレンダリングでは低解像度でレンダリングし、最終的なレンダリングでは解像度を大きくできます。

絶対はカメラスクリーンで動作する一般的なポストエフェクトの動作に近く、出力サイズを変更した場合は、必要に応じてラインの太さを調整する必要があります。

アニメーションスタジオでは絶対を使用する傾向があります。相対はレンダリング解像度が一定の場合は意図した通りに動作しますが、特定のカットだけ出力サイズや縦横比を変更する必要がある場合は、絶対を使用した方がラインの太さの一貫性を保つことができます。

今回のキャラクターでは[絶対]を使用してラインの設定を行います。

4 Pencil+ ラインの色と太さを設定する

各ラインセットでラインの色と太さを設定します。ラインの色と太さは[ブラシ]階層で設定します。

ブラシ階層
[基本色]を変更するとラインの色を変えることができます。

ラインの色を変更
[サイズ]を変更するとラインの太さを変えることができます。

ラインのサイズを変更

アニメではラインの色は黒色が多いですが RGB(0.0.0) の完全な黒は使用せず、RGB(16.16.16) のようにわずかに明るい色を使用する傾向があります。作品によっては茶色や水色など印象的な色のラインを使用することもあります。

今回のキャラクターでは少し明るい茶色のライン、RGB(41.37.36) に設定しました。ラインのサイズは 1.0 のまま使用します

色を変更したレンダリング画像

ラインの色と太さを設定したので、次はエッジの検出設定を変更してラインの描画箇所を設定します。

[サイズ] アトリビュートを使用すると、グレースケールのテクスチャマップを使用してラインの太さを制御できます。サイズマップを使用してイラストや漫画のような「入り抜き」のあるラインを表現できます。

サイズマップ

サイズマップでは画像の白色のピクセルは[サイズ] 100% の太さになり、黒色のピクセルでは 0% の太さになります。サイズマップを使用すると、ラインを出したくない箇所をマップで制御できます。

マップをレンダリングした画像

サイズマップを使用してレンダリングしたラインの画像
「入り抜き」のあるラインをアニメーション化できる。

Pencil+ ラインはインタラクティブな更新に対応しています。レンダー ビューの[インタラクティブ]をONにすると、Pencil+ ラインの変更をインタラクティブに確認できるようになります。

インタラクティブ

アニメでは手描きの絵と CG が画面内に混在することがあります。そんなときセルの線に比べて CG の線が細く見える場合があります。これはアンチエイリアシングの違いが影響しています。

現在のアニメで使われる動画は紙に書かれた物をスキャナーでスキャン、またはデジタル作画しています。このときソフトウェアで着色しやすいように、2 値化した(アンチエイリアスのない状態) の線画にします。

アンチエイリアスのない線画

セルは最終的に「撮影」と呼ばれるコンポジット工程で背景やエフェクトなどを合成し、最終的なカットが完成します。このとき2 値化したセルにポストエフェクトとしてアンチエイリアシングを適用します。

PSOFT anti-aliasingを適用した線画

ポストエフェクトでアンチエイリアシング処理した線とPencil+を使用したラインを比較すると、Pencil+ ラインの正確なアンチエイリアシング処理を行った線は少し細く(薄く)見える傾向があります。

Pencil+ ラインのレンダリング画像
オーバーサンプリング 2、サイズ 1.0

もしも手描きの絵にラインの太さをあわせたい場合は、オーバーサンプリング 1、ラインのサイズ 1.1 のように、ラインの太さを1ピクセルより大きな値を設定してください。
ポストエフェクトによるアンチエイリアシングと完全に一致しませんが、線の印象を近づけることができます。

Pencil+ ラインのレンダリング画像
オーバーサンプリング 1、サイズ 1.1

オーバーサンプリングとサイズ

オーバーサンプリングは線が密集したピクセルでも綺麗にアンチエイリアシングされたラインを描画するための機能です。このためオーバーサンプリングの値を下げると、ラインの設定によってはジャギが発生したように見える場合があります。

5 ラインの検出設定を変更する

ラインセットにマテリアルを追加すると、ある程度ラインを描画できると思います。しかし、ラインが出過ぎていたり、欲しい所にラインが出ていない場合があります。エッジの検出設定を使用してラインを描画する箇所を指定します。

5-1 エッジの検出設定

Pencil+ ラインを使用する上で重要な[検出設定]について解説します。

Pencil+ ラインではオブジェクトの端(エッジ)と判断した箇所にラインを描画します。オブジェクトのどこを端と判定するか指定するのが[エッジ]階層の検出設定です。ラインを意図した箇所に描画するには検出設定を理解する必要があります。

エッジの検出設定

エッジ名の右側にあるチェックボックスを ON にするとラインを描画します。ラインを描画したくないエッジは OFF に設定します。

エッジの検出設定チェックボックス

それではキャラクターモデルを使用して、検出設定がモデルのどこにラインを描画するか紹介します。下の画像はラインの設定が全て終わったデータです。どのような検出設定を使用してラインを描画しているか注目してください。

ラインの設定が完成した状態の画像
様々な検出設定を組み合わせて、意図した箇所にラインを描画できるようにしている。

5-1-1 アウトライン

オブジェクトの外側にラインを描画します。検出設定の中で最も利用頻度の高い設定です。

アウトラインを赤色でレンダリングした画像

グループを結合

上の画像では髪、顔、服などオブジェクト単位でアウトラインを描画していますが、[グループを結合]を使用すると複数のオブジェクトで構成されたモデルのシルエットをアウトラインとして描画できます。このグループには Maya の[グループ]と、Pencil+ ラインウィンドウのマージグループ タブを使用します。グループ結合の詳細についてはチュートリアル「グループを結合の使用方法」を御覧ください。

グループを結合 ON にし、アウトラインを赤色でレンダリングした画像
このモデルでグループを結合は使用していないため、解説用にグループ化した。

オブジェクトをグループ化
Pencil+ ラインウィンドウにマージグループを追加

オープンエッジ

[オープンエッジ]はアウトラインやオブジェクトと検出された箇所、かつ開いたエッジの場合にラインを描画するか指定します。

アウトライン オープンエッジ ON
オブジェクト オープンエッジ ON

アウトライン オープンエッジ ON
オブジェクト オープンエッジ OFF

オープンエッジを選択した画像

5-1-2 オブジェクト

[オブジェクト]の内側にある稜線にラインを描画します。
オブジェクトは他の検出設定と異なり、メッシュとカメラの位置関係によってラインを描画するか自動的に判定します。このためアニメーションした場合に、フレームによってラインが描画されたり消えたりする場合があります。

オブジェクトを赤色でレンダリングした画像

5-1-3 交差

[交差]はメッシュが交差した箇所にラインを描画します。
交差を使用すると他のオブジェクトと重なった箇所や、メッシュが変形してめり込んだ部分にラインを描画できます。交差は高い精度でエッジを検出しますが、検出設定の中で最も計算に時間がかかります。

交差を赤色でレンダリングした画像
交差を描画するためのメッシュを配置してラインを表現している。

5-1-4 スムージング境界

[スムージング境界]はメッシュを擬似的になめらかに見せる[スムージング]の境界にラインを描画します。
スムージングは[メッシュ表示]の[ハード エッジ]や、[ソフト エッジ]で編集できます。また、[ソフト エッジ/ハード エッジ]のオプションで角度に基づいてスムージング境界をつけることができます。

スムージング境界を赤色でレンダリングした画像

FBX ファイルにはモデルの外観を維持するためにスムージングの情報を格納するオプションがあります。FBX 形式を使用してモデルを読み込んだ場合は、ビューポートでスムージングがかかっていてもデータ的にハードなエッジが適用された状態が発生するので注意が必要です。

5-1-5 選択エッジ

[選択エッジ]は選択中の頂点、エッジ、ポリゴンの境界をラインとして描画します。
選択エッジを使用する場合はオブジェクトの頂点、エッジ、ポリゴンのいずれかを[セット]に追加し、セットに対して[選択エッジノードを追加]を実行する必要があります。

選択エッジを赤色でレンダリングした画像

5-1-6 法線角度

[法線角度]はポリゴン法線の角度を使用してラインを描画します。
直線で構成された家具やメカのようなオブジェクトにラインを設定する場合に便利です。メッシュは変形すると法線角度が変わるめ、静的なオブジェクトに適しています。

法線角度を赤色でレンダリングした画像
法線角度 ON、最小5、最大20。このモデルでは法線角度を使用していないため追加でラインを描画した。
キャラクターのようにポリゴン数が多く曲面で構成されたオブジェクトには適さない。

ローポリゴンメッシュに法線角度を赤色でレンダリングした画像
最小を 0 にするとメッシュのトライアングルを描画する。

5-1-7 ワイヤ

[ワイヤ]はメッシュのワイヤーフレームをラインとして描画します。モニターグラフィックスなど CG らしさが必要な場合に使用できます。

ワイヤを赤色でレンダリングした画像
今回のモデルではワイヤを使用していないため追加でラインを描画した。
Pencil+ ラインではこれらの検出設定を使用して、オブジェクトのどこにラインを出しどこにラインを出さないか設定します。

Pencil+のアウトラインはイラストのアウトラインと少し異なる所にラインを描画していると感じるかもしれません。

イラストでアウトラインというと[グループを結合]を使用したときのような、オブジェクトのシルエット状のラインをアウトラインと呼ぶことが多いかも知れません。

アウトライン画像
グループを結合 ON

Pencil+ のアウトラインはオブジェクト単位でラインを描画するため、1 オブジェクトの場合は一般的なアウトラインに見えますが、複数のオブジェクトで構成されたモデルではシルエットの内側までラインを描画します。

アウトライン画像
グループを結合 OFF

これはオブジェクトごとのシルエットを描画できることの優先度が高いと考え現在のような仕様にしました。
例えば漫画ではオブジェクト単位で線の太さをかき分ける画風があるため、単純なシルエット状のラインを描画するよりも、オブジェクト単位でラインを制御できることが重要だと考えました。また、アニメーションした場合にオブジェクトのアウトラインを安定して描画したいという目標もありました。アニメーションで安定してラインを描画できるようにすることは、Pencil+ ラインの大きな目標の 1 つでした。

[オブジェクト]のように自動的にラインの描画箇所が決まる設定もありますが、それ以外の検出設定ではアニメーションしてもラインが途切れることなく、安定してラインを描画できるます。

次の記事

次の記事ではラインセットの検出設定を編集して、オブジェクトの意図した個所にラインを描画する方法を解説します。

アニメ調 CG の作り方
第 8 回「ラインの検出設定」

Pencil+ for Maya チュートリアル