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

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

1 髪の検出設定を行う

それではキャラクターの髪の不要なラインを描画しないように設定していきます。まずはどの検出設定が不要か確認します。

レンダリングした画像では、髪のメッシュに[交差]のラインが多く描画されています。また、髪のオブジェクトは面と裏で異なるマテリアルを割り当てます。このため[マテリアルID境界]のラインが描画されています。検出設定を変更して意図した箇所にラインを描画するように変更していきます。

検出設定がデフォルト状態の画像
髪のメッシュが交差しているため、髪の重なり部分にラインが描画されている。
[オブジェクト][交差][マテリアルID境界]など不要なラインを描画しないようにするには、検出設定名の右側にあるチェックボックスを OFF にします。

不要な検出設定を OFF にする

これで不要なラインを消すことができました。

検出設定を変更した画像

1-2 任意のエッジにラインを描画する

不要なラインを消すことができましたが、ラインが減り単調な印象になりました。そこでメッシュのエッジに対してラインを追加します。

Pencil+ ラインには任意の箇所にラインを描画する方法がいくつかあります。ここでは[ハードエッジ]を使用する方法と、[選択エッジ]を使用する 2 つの方法を紹介します

1-2-1 ハードエッジを使用する方法

Pencil+ ラインではハードエッジを[スムージングID境界]としてラインを描画できます。

ハードエッジを設定するにはオブジェクトを選択してから[エッジ選択モード]に切り替えます。エッジを選択して Maya メニューの[メッシュ表示]から[ハード エッジ]をクリックします。

[スムーズ メッシュ プレビュー]と[Pencil+ 4 レンダリング設定]を使用すると、[スムーズ メッシュ プレビュー]をレンダリングできるようになります。しかし、Maya の[スムーズ]はスムージングを再生成するため、ハードエッジの情報が消えてしまい[スムージングID境界]として描画できません。
[スムーズ]を使用したレンダリングでハードエッジを維持したい場合は、[サブディビジョン方法]の[グローバルを使用(OpenSubdiv Catmull-Clark)]チェックを OFF にして、プルダウンメニューから[Maya Catmull-Clark]選択してください。さらに[スムーズ メッシュ]メニューの最下部にある[Maya Catmull-Clark コントロール]の[エッジ硬度の伝播]をONにするとハード エッジのラインを描画できます。

ハードエッジを使用したラインの設定手順

1-2-2 選択エッジを使用する方法

Pencil+ ラインは[選択エッジノード]を追加して、コンポーネントモードで選択中の頂点、エッジ、ポリゴンの境界にラインを描画できます。

選択エッジの設定方法はオブジェクトでエッジを選択して Maya メニューの[作成]から[セット]を追加します。次に追加された[セット]を選択した状態で[選択エッジノードを追加]をクリックして、セットに PencilSelectedEdge ノードを追加します。

選択エッジを使用したラインの設定手順

ハードエッジと選択エッジは、どちらもメッシュのエッジに対してラインを描画しているため同じように感じるかもしれませんが、以下のような違いがあります。

  • ハードエッジはスムージングを変更するためシェーディングに影響がでます。
    スムージングは FBX ファイルに出力できるので、3ds Max、Blender、Unity など他のソフトウェアにスムージング情報を出力できます。
  • 選択エッジはシェーディングに影響は出ません。
    Maya の FBX 書き出しオプションの[セレクション セット]オプションを ON にすると FBX ファイルに選択セットを出力できるので、3ds Max にエッジの情報を出力できます。

球に十字状にハードエッジを設定した画像

どちらを使用してもメッシュのエッジに対してラインを描画できます。データの保持方法が異なるので、作業フローに応じて都合のよい方を使用してください。

今回のキャラクターではシェーディングへの影響を避けるため、選択セットを使用する方法を採用しました。

選択エッジを使用してラインを描画した画像
頭頂部から放射状にエッジを選択しラインを描画するように設定。

2 顔の検出設定を行う

キャラクターの顔では目と肌の境界や、口の内側と外側のラインを描画しないように設定します。

肌と白目の境界にラインが描画されている

このオブジェクトで肌と白目の境界にラインが描画されるのは、目と肌のメッシュがわかれているのが原因です。肌と白目の境界がアウトラインやオブジェクトの[オープンエッジ]として描画されています。

メッシュの連結を選択した画像
肌と白目はメッシュがわかれている。

目と肌の境界にラインを描画しないようにするため、アウトラインとオブジェクトの検出設定で[オープンエッジ]を OFF にします。

オープンエッジを OFF に設定

口の内側と外側には異なるマテリアルが割り当てられています。このため[マテリアルID境界]が描画されています。口の内側と外側の境界のラインを描画しないようにするために、[マテリアルID境界]を OFF にします。

マテリアルID境界を OFF に設定

これで顔から不要なラインを消すことができました。

顔の検出設定を行ったレンダリング画像
白目の境界のラインがなくなり、スッキリした印象になる。

3 鼻筋や服のしわの検出設定を行う

鼻筋や服のしわなど任意の位置にラインを描画する方法を紹介します。アニメやイラストでは鼻筋や服のしわに沿ったラインが描かれることが多いです。

検出設定がデフォルト状態の画像
鼻筋や服のしわに沿ったラインが欲しい。

髪では[ハードエッジ]や[選択エッジ]を使用する方法を紹介しました。しかし服のしわのように自由な曲線を描く場合、必ずしもしわを入れたい箇所にメッシュのエッジがあるとは限りません。

モデルのワイヤを表示した画像
服のしわに沿ったエッジが存在しないため、ハードエッジや選択エッジを使用できない。

このような箇所にラインを描画したい場合は検出設定の[交差]を使用します。
交差を使用してラインを描画する方法は簡単です。ラインを描画したい箇所にポリゴンを配置します。

鼻筋に交差用のメッシュを配置した画像
緑色が交差用のメッシュ。

服のしわに交差用のメッシュを配置した画像
緑色が交差用のメッシュ。このモデルではメッシュがわかりやすいように極端にはみ出させているが、シェーディング計算に影響するためはみ出す幅は少ない方が望ましい。

この状態でレンダリングすると交差用の緑色のメッシュがレンダリングされます。

交差用の緑色のメッシュがレンダリングされた画像

交差用のメッシュはレンダリングしたくないので、交差用のメッシュに透明な Pencil+ マテリアルを設定します。透明なマテリアルの作成方法は「透明度を設定する」の解説と同じです。 [透明度]を白 RGB(255,255,255) にします。

Pencil+ マテリアルを透明に設定

これで交差を使用したラインを描画できました。しかし、透明なマテリアルを割り当てた裏側のラインが途切れていることに気がつくかもしれません。

透明なメッシュの裏側のラインが途切れる

透明なメッシュの裏側のラインが途切れる

透明なマテリアルを設定するとメッシュ自体は見えなくなります。しかし、データとしてはメッシュが存在するため[隠線]と判定された部分のラインが描画されず、ラインが途切れてしまいます。

この問題を解決するため Pencil+ マテリアルの[ライン関連機能]には隠線となったラインを描画する特殊な設定があります。透明なマテリアルの裏側にあるラインを描画する場合は、[ライン関連機能]の[全ての隠線を可視線として描画]を ON にします。

全ての隠線を可視線として描画を ON
[全ての隠線を可視線として描画]は、通常は隠れてしまうはずの裏側のラインを描画する例外的な処理を行う機能です。

本来は Pencil+ ラインの隠線を使用して同じような表現を行うこともできますが、マテリアル単位で例外として扱った方が設定しやすい場合があります。[ライン関連機能]にはこのような例外処理を行うアトリビュートがまとまっています。

最後に交差用のラインセット「IntersectionSet」を作成して交差用のマテリアルを追加します。交差したラインは常に描画したいので、ラインセットはリストの一番上に配置します。また、[交差]以外の検出設定を全て OFF にします。

交差用のラインセットを作成

これで交差を使用して好きな位置にラインを描画できるようになりました。

鼻筋や服のしわの検出設定を行ったレンダリング画像
ラインが途切れることなく描画される。
[全ての隠線を可視線として描画]は、メガネのレンズや車のガラスなど透明なオブジェクトの裏側にあるラインを描画したい場合に使用できます。

前面に透明なオブジェクトを配置したレンダリング画像
全ての隠線を可視線として描画 OFF

前面に透明なオブジェクトを配置したレンダリング画像
全ての隠線を可視線として描画 ON
[全ての隠線を可視線として描画]と似た設定に、[対象の隠線を可視線として描画]があります。
これは可視線と判定する対象を任意に選択きる機能です。この機能は髪の毛に隠れた眉毛やまつげのラインを描画したい場合などに使用できます。

眉毛とまつげのラインを可視線としてレンダリングした画像
髪のマテリアルに[対象の隠線を可視線として描画]を使用している。

対象の隠線を可視線として描画

透明なマテリアルを使用して、特定の箇所にラインを描画しないように設定できます。

例えば今回のキャラクターでは下唇の部分に透明なマテリアルを設定したメッシュを配置しています。このメッシュによって下唇のラインを描画しないように使用しました。

下唇のラインを描画した画像

下唇のラインを描画しないように設定した画像

ビューポート表示
緑色のメッシュがラインを遮っている。

4 ラインの色と太さを共有する

これまでの工程で複数のラインセットを作成しましたが、使用するラインの色や太さはある程度同じ設定を使うことが多いと思います。
後からラインの色や太さを変更したい場合に、ラインセットの数だけ設定し直すのは手間がかかります。そこで PencilBrushSettings ノードを共有します。

4-1 デフォルトのブラシ設定と個別のブラシ設定

[ブラシ設定]と[個別のブラシ設定]について解説します。

ラインセットにはデフォルトのブラシ設定と、個別のブラシ設定の 2 種類があります。「Pencil+ ラインの色と太さを設定する」では[ブラシ]領域を使用してラインの色と太さを変更しました。この領域はデフォルトの[ブラシ設定]です。

デフォルトのブラシ設定

エッジ階層にはラインの検出設定ごとに[個別のブラシ設定]があります。

個別のブラシ設定
[個別のブラシ設定]を使用すると[アウトライン]や[交差]など検出設定ごとにラインの色や太さを変更できます。ボタンの右側にあるチェックボックスを ON にすると機能が有効になり、PencilBrushSettings ノードが作成されます。アトリビュート右側にある入力接続ボタンをクリックすると PencilBrushSettings ノードのアトリビュートが表示されます。

個別のブラシ設定を編集
スムージング境界に個別の色を設定した。

デフォルトのブラシ設定も[個別のブラシ設定]も PencilBrushSettings ノードと接続されています。PencilBrushSettings ノードはさらに PencilBrushDetail ノードと接続されています。
この階層表示はノード エディターで各ノードを選択するかアトリビュートのタブで[ブラシ詳細設定]と[基本設定へ]相互に切り替える事ができます。

PencilBrushSettings ノードと PencilBrushDetail ノードの表示切り替え

それでは PencilBrushSettings ノードと PencilBrushDetail ノードを共有にする手順を解説します。

4-2 デフォルトのブラシ設定を他のラインセットと共有する

[ブラシ設定][ブラシ詳細設定]の共有は、ノード エディタを使用して各ノードの[メッセージ]チャンネルを接続しておこないます。ノードを接続すると、PencilBrushSettings ノードの設定が他のラインセットノードから参照されます。

4-2-1 ブラシ設定を共有する手順

  1. ノードエディターを開いて Pencil+ ラインノードの接続を表示します。
  2. PencilBrushSettings ノードの[メッセージ]を、共有したいラインセットの[Brush Settings]チャンネルに接続します。

PencilBrushSettings ノードを共有する手順

同様の手順で PencilBrushDetail ノードを共有できます。

PencilBrushDetail ノードを共有する手順

PencilBrushSettings ノードや PencilBrushSettings ノードの名称は変更すると管理がしやすくなります。

PencilBrushSettings ノードや PencilBrushSettings ノードの名前

これでキャラクターに基本的なラインを設定できました。

レンダリング画像

ラインのみレンダリングした画像

アニメのような均一なラインの設定という意味では、これで十分使える設定になっていると思います。次の項目ではもう少し凝った表現として、イラストのように強弱を持ったラインの設定について解説したいと思います。

今回は PencilBrushSettings ノードや PencilBrushSettings ノードを共有する方法を紹介しましたが、Attribute Spread Sheet を使うと複数のラインセットのアトリビュートをまとめて編集できます。

Attribute Spread Sheet

Attribute Spread Sheet を使用する場合でも、ブラシ設定をインスタンス化して管理することで、編集ミスを減らすことができます。

次の記事

次の記事では 漫画やイラストのようなラインの設定方法を解説します。

アニメ調 CG の作り方
第 9 回「漫画やイラストのようなライン表現」

Pencil+ for Maya チュートリアル