インク ラインの作成

 
 
 

輪郭検出(別称: インキング)は、グローバル レベルおよびローカル レベルで制御できます。グローバル インキングは、トゥーン インク レンズ シェーダにより制御されます。このトゥーン インク レンズ シェーダは、トゥーン エフェクトのレンダリングに使用するすべてのカメラに適用する必要があります。レンズ シェーダが適用されていないと、インク ラインはレンダリングできません。

ローカル インキングはトゥーン ホスト シェーダにより制御されます。トゥーン ホスト シェーダは別個に使用することも、あるいはトゥーン ペイント/ホスト マテリアル シェーダの一部として使用することもできます。トゥーン ホスト シェーダはインク属性をすべて制御するわけではありませんが、トゥーン インク レンズ シェーダで作成されるインク ラインをレンダリングする場合には便利です。

グローバル インク ラインまたはローカル インク ラインの適用

グローバルインクラインの適用: トゥーンインクレンズシェーダ

インクをレンダリングしたい場合は、トゥーン エフェクトのレンダリングに使用するすべてのカメラにトゥーン インク レンズ シェーダを適用する必要があります。これにより、シーン オブジェクトにトゥーン シェーダが適用されているかどうかには関係なく、すべてのシーン オブジェクトにわたって輪郭がレンダリングされることになります。

グローバル インクを適用するには

  1. シーンをレンダリングするカメラを 1 つ以上選択し、そのプロパティエディタを表示します([修正](Modify)[シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。[追加](Add)ボタンをクリックするとブラウザが開きます。

  3. シェーダ ライブラリで、[Lens]フォルダから[Toon_Ink_Lens]レンズ シェーダを選択して[OK]をクリックすると、選択したカメラにシェーダがアタッチされます。

  4. シェーダ スタックから[Toon_Ink_Lens]シェーダを選択して[インスペクト](Inspect)ボタンをクリックし、レンズ シェーダのプロパティ エディタを開きます。

  5. インク プロパティを調整します。

ローカルインクラインの適用

特定のオブジェクトのインク プロパティを変更する場合は、その特定のオブジェクトにトゥーン ホスト シェーダを適用する必要があります。これにより、トゥーン インク レンズ シェーダで作成されたグローバル インキングを変更せずに、その特定のオブジェクトのインク ライン特性を変更できるようになります。

トゥーン ホストは、単独で使用することも、あるいはトゥーン ペイント/ホスト マテリアル シェーダの一部として使用することもできます。

注:トゥーン ホスト シェーダは、トゥーン インク レンズ シェーダでは置き換えられません。最初にインクをレンダリングするためには、さらにレンズ シェーダをレンダ パス カメラに適用することも必要です。

オブジェクトのローカル インク プロパティを有効にするには

  1. ローカル インキングを変更したいオブジェクトを選択します。

  2. [Render]ツールバーからまたは[取得](Get) [マテリアル](Material) [Toon Paint and Host]または[シンプル トゥーン ホスト](Simple Toon Host)を選択します。

  3. プロパティエディタが、閉じている場合は、オブジェクトが選択されている状態で、[Render]ツールバーから[修正](Modify) [シェーダ](Shader)を選択します。シェーダのプロパティ エディタが開きます。

  4. [インク]タブに移動し、[オーバーライド](Override)オプションを有効にします。

  5. ローカル インク パラメータを([カラー](Color)[スプレッド](Spread)などで)調整します。

特定オブジェクトに関するインクのレンダリング

トゥーン ホスト シェーダを特定のオブジェクトに適用し、トゥーン ホスト シェーダをインク レンダリングに必要不可欠なものにすることで、その特定のオブジェクトにしかトゥーン インク レンズ シェーダのインク レンダリングが実行されないように制限できます。

特定のオブジェクトに対してインクをレンダリングするには

  1. トゥーン ホスト シェーダまたはトゥーン ペイント/ホスト シェーダのどちらか一方が、インク処理の対象となるオブジェクトに適用されていることを確認します。

  2. トゥーン インク レンズ シェーダの適用対象となるカメラを選択し、Render Tree を開きます([7]キーを押します)。

  3. [Toon_Ink_Lens]シェーダをダブルクリックし、そのプロパティ エディタを開きます。

  4. [アドバンス]タブに移動し、[ホストが必要](Require Host)オプションを有効にします。

インク ライン幅の制御

基本的なインク ライン幅は、[スプレッド]パラメータで制御されます。[スプレッド]値が大きいほど、インク ラインが濃くなります。

注:インク ラインは濃くなるにつれて、エッジ部分がぼやける傾向にあります。エッジ部分をある程度までシャープにするには、該当のシーンのインク ライン サンプリング値およびアンチエイリアシング値を調整します。詳細については、「サンプリングを制御する」を参照してください。

A

スプレッド=1

B

スプレッド=5

C

スプレッド=10

グローバル インク スプレッドを設定するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [基本の外観]タブで、[スプレッド](Spread)値を調整します。

ローカル インク ライン幅の調整

トゥーン ホスト シェーダ(またはトゥーン ペイント/ホスト)が適用されている個々のオブジェクトに対して、インク スプレッドを調整することができます。これにより、トゥーン インク レンズ シェーダで定義されるスプレッド値を置き換えずにスケーリングできます。たとえば、値 2 を指定すると現在のスプレッド値が 2 倍になり、値 0.5 を指定すると 2 分の 1 になります。

特定のオブジェクトに関するインク スプレッドを調整するには

注:以下の手順は、オブジェクトにトゥーン ペイント/ホスト シェーダが適用されていることを前提にしたものです。また、トゥーン ホスト シェーダに同一のコントロールが存在しています。
  1. トゥーン シェーダが適用されているオブジェクトのうち、インク ライン幅を調整したいものを選択します。

  2. [Render]ツールバーから[修正](Modify) [シェーダ](Shader)を選択し、オブジェクトのトゥーンマテリアルシェーダを編集します。[Toon_Paint_and_Host]プロパティ エディタが開きます。

  3. [インク]タブで、[スプレッド](Spread)値を調整します。

インク ライン カラーの制御

基本的なインク ライン カラーは、インクの基本的な外観の一部としてトゥーン インク レンズ シェーダで制御されます。

グローバル インク ライン カラーを設定するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [基本の外観]タブで、スライダを使って[カラー](Color)値を調整します。

ローカル インク ライン カラーの設定

トゥーン ホスト シェーダが適用されているオブジェクトすべてに対して、インク カラーを調整できます。

ここで、トゥーン インク レンズ シェーダで制御される同一のインク ライン カラーが、オブジェクトすべてに付けられます。

各オブジェクトにトゥーン ペイント/ホスト シェーダが適用されています。インク カラーの指定変更が有効化されていて、インク カラーがトゥーン インク レンズ シェーダで制御されるグリッド以外のオブジェクトにはそれぞれ、独自のインク カラーが割り当てられています。

ローカルインクラインカラーを設定するには

注:以下の手順は、オブジェクトにトゥーン ペイント/ホスト シェーダが適用されていることを前提にしたものです。また、トゥーン ホスト シェーダに同一のコントロールが存在しています。
  1. トゥーン シェーダが適用されているオブジェクトのうち、インク ライン カラーを指定変更したいものを選択します。

  2. [Render]ツールバーから[修正](Modify) [シェーダ](Shader)を選択し、オブジェクトのトゥーンマテリアルシェーダを編集します。[Toon_Paint_and_Host]プロパティ エディタが開きます。

  3. [インク]タブで、[オーバーライド](Override)オプションを有効にします。

  4. スライダを使用して、インク ライン カラーを指定変更の設定を行います。

テーパリングインクライン

テーパリングすることによって、特定の基準に基づいてインク ラインのスプレッドがさまざまに変動します。使用可能なテーパリングには、次の 3 種類があります。

  • [異方性](Anisotropy)を使用した場合、指定された角度でスプレッドが変動します。これは一般的に、チゼルチップ ペンのシミュレートに使用されます。

  • [方向](Direction)を使用して、スプレッドを変動させた場合、オブジェクトが所定の方向に向いたところでインク ラインが最も太くなり、所定の方向とは逆向きになったところでインク ラインが最も細くなります。

    たとえば、デフォルト方向のスプレッドを使用した場合、オブジェクトがカメラの正面に向いたところでインク ラインが最も太くなり、カメラとは逆向きになったところでインク ラインが最も細くなります。

  • [距離](Distance)を使用した場合、カメラからのオブジェクトの距離に基づいてスプレッドが変動します。これは一般的に、深度フェーディングの作成に使用されます。

A

テーパリングなしスプレッド=5

B

異方性テーパリング、度合い=3、角度=155

C

方向テーパリング、度合い=1、ベクトル=Camera

D

距離テーパリング、度合い=1

インク ラインをテーパリングするには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [テーパ]タブで、必要に応じて[異方性]セクションの[度合い](Anisotropy)をゼロ以外の値に設定して[異方性](Amount)テーパリングを有効にします。エフェクトの強度は、[度合い](Amount)値で制御されます。

    • スプレッドが変動する角度を指定する[角度](Angle)値を設定します。値が 0 の場合は時計の文字盤の 12: 00、90 の場合は 3: 00、...というように対応しています。

  4. 必要に応じて[方向]セクションの[度合い](Direction)をゼロ以外の値に設定して、[方向](Amount)テーパリングを有効にします。エフェクトの強度は、[度合い](Amount)値で制御されます。方向ベースのテーパをチューニングするには、次の値を調整します。

    • [ベクトル](Vector): 方向ベースのテーパの計算に使用されるオブジェクトのサーフェイスを基準に入射ベクトルを指定します。

    • [空間](Space): 入射ベクトルの指定に使用される座標空間(ワールド|カメラ|オブジェクト)を定義します。

    • [方向]>[最小/最大](Direction Min/Max): エフェクトの適用対象となる方向の範囲を指定します。

      値 0 はサーフェイスが入射ベクトルに面している(つまり、サーフェイスの法線が入射ベクトルと平行)ことを意味します。

      値 90 は入射ベクトルがサーフェイスをかすめて通る(つまり、サーフェイスの法線が入射ベクトルと直角)ことを意味します。

    • [スプレッド]>[最小/最大](Spread Min/Max): サーフェイ最小ス方向のマップ先となるスプレッド値の範囲を定義します。たとえば、[スプレッド]の[最小]が 2 の場合、指定された[方向]の[最小]で、スプレッドが 2 倍ずつ増分されます。

    • [プロファイル](Profile) [オペレーション](Operation)エフェクトに非線形の強調を施します。これで、たとえば、スプレッドの変動がスムーズにイーズインしたり、突然切断されたりします。

    • [パワー](Power)プロファイル操作により作成される強調の度合いを制御します。

  5. 必要に応じて[距離]セクションの[度合い](Distance)をゼロ以外の値に設定して、[距離](Amount)テーパリングを有効にします。エフェクトの強度は、[度合い](Amount)値で制御されます。距離ベースのテーパをチューニングするには、次の値を調整します。

    • 反射や透明度エフェクトにより発生する 2 次光線の場合は、カメラからの距離が光線のパス全体の累積距離として計算されます。つまり、カメラ位置が始点になり、光線とサーフェイスの現在の交点が終点となります。

    • [距離]>[近傍/遠点](Distance Min/Max): テーパ エフェクトの適用対象となる距離の範囲を指定します。

    • [スプレッド]>[最小/最大](Spread): 距離のマップ先となるスプレッド値の範囲を指定します。たとえば、[スプレッド]の[最小]が 2 の場合、指定された[近点距離]で、スプレッドが 2 倍ずつ増分されます。

    • [プロファイル](Profile) [オペレーション](Operation): スプレッドの変動がスムーズにイーズインするか突然に切断されるように、エフェクトに非線形の強調を施します。たとえば、次の値を指定します。

    • [パワー](Power): プロファイル操作により作成される強調の度合いを制御します。

インクラインスプレッドの変化

手描きの等高線の幅は、人にもよりますが、ある程度変動しがちです。手描き特有の不規則性をシミュレートするには、インク スプレッドにランダムな変動を生じさせる[多様性]オプションを使用します。

A

変動なし、周波数=50,50,50、スプレッド=5

B

変動=0.5、周波数=50,50,50、スプレッド=5

C

変動=1、周波数=50,50,50、スプレッド=5

インク ライン スプレッドを変動させるには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [多様性]タブで、[度合い](Amount)をゼロ以外の値に設定してバリエーションを有効にします。バリエーションの強度は、[度合い](Amount)値で制御されます。

  4. 必要に応じてパラメータを調整します。

    • [周波数(X, Y, Z)](Frequency (X, Y, Z)): ランダムなバリエーションの空間周波数を定義します。値が高いほど、作成されるインク輪郭のノイズが増大します。逆に、値が小さいほど、作成される輪郭の変動がスムーズになります。

    • [アニメーション](Animation): インク スプレッドのバリエーションのアニメーションを制御します。

      0 を設定すると、アニメーションが無効になり、ある期間にわたってバリエーションがフリーズします。

      小さい値を設定すると、ある期間にわたってインク ラインが横這いになります。

      かなり高い値を設定すると、インク ラインが「ガタガタ」になります。

    • [基準](Basis): ランダムなバリエーションの基準を指定します。オプションごとにそれぞれ異なるエフェクトが作成されます。

    • [空間](Space): バリエーションの基準の指定に使用される座標空間(ワールド|カメラ|オブジェクト)を指定します。

      カメラ座標を指定すると、カメラに対して相対的なバリエーションが計算されます。カメラ座標系は、手描きのテクニックをシミュレートする場合に適しています。

      ワールド座標を選択すると、エフェクトがそのグローバル方向には関係なくサーフェイスの方向にロックされます。

      オブジェクトの座標を選択すると、エフェクトがサーフェイスと一緒に回転します。

    • [多様性](Variation): エフェクトの適用対象となる入力の範囲を指定します。

    • [スプレッド](Spread): サーフェイス方向のマップ先となるスプレッド値の範囲を指定します。

    • [プロファイル](Profile) [オペレーション](Operation): スプレッドの変動がスムーズにイーズインするか突然に切断されるように、エフェクトに非線形の強調を施します。たとえば、次の値を指定します。

    • [パワー](Power): プロファイル操作により作成される強調の度合いを制御します。

インクライン圧力の制御

[圧力]オプションは、輪郭の描画中にブラシやペンなどにかかる圧力をシミュレートします。インク ラインのカラーおよびアルファ値は、スプレッド値に比例して変更されます。

[圧力]オプションは、細くなるほど退色するインク ラインを作成する場合に使用されるのが一般的ですが、値をいろいろ試すことで各種のエフェクトを作成できます。

A

オリジナルのイメージ、圧力なし

B

輝度・スプレッドの最小/最大: 0.25、1、輝度の最小/最大: 1、0.75

C

彩度・スプレッドの最小/最大: 0.25、1、彩度の最小/最大: 0.5、2

D

アルファ・スプレッドの最小/最大: 0.25、1、アルファの最小/最大: 0.5、1

E

[圧力]オプションはすべて、先行する 3 つのイメージの中に使用される同じ値と組み合わせられています。

インク ライン圧力を作成するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [圧力]タブで、1 つ以上の圧力エフェクトを有効にして、次のパラメータを調整します。

    • [スプレッド]>[最小/最大](Spread Min/Max): エフェクトが作用するスプレッド値の範囲。どのタイプの圧力も、それぞれ個別の最小/最大値に対応する固有の最小/最大値を持ちます。

    • [輝度]>[最小/最大](Brightness Min/Max): 距離のマップ先となる輝度の範囲。[輝度]の[最小]を 0.5 に指定すると、[スプレッド]の[最小]に指定した元の輝度の半分の明るさを持つインクになります。

    • [彩度]>[最小/最大](Saturation Min/Max): 距離のマップ先となる彩度の範囲。[彩度]の[最小]が 0.5 の場合は、指定された[スプレッド]の[最小]で、インクの彩度が元の 2 分の 1 に退色します。

    • [アルファ]>[最小/最大](Alpha Min/Max): 距離のマップ先となるアルファの範囲。[アルファ]の[最小]が 0.5 の場合は、指定された[スプレッド]の[最小]で、インクのアルファ値が元の 2 分の 1 になります。

テクスチャリングインクライン

インク ラインのカラーに多少の複雑さを加えたい場合は、テクスチャを使用してインク カラーを操作できます。このインク カラー操作はトゥーン インク レンズ シェーダを介してグローバルに行うか、あるいはトゥーン ペイント/ホスト シェーダまたはトゥーン ホスト シェーダを適用したオブジェクトでローカルに行うことができます。

ローカル インク ラインのテクスチャリング

個々のオブジェクトのインク ラインをテクスチャリングするには、テクスチャを使用してそのインク ライン カラーを操作する必要があります。

オブジェクトのインク ラインはすべてトゥーン インク レンズ シェーダによって制御されています。

キューブのトゥーン ペイント/ホスト シェーダでインク カラーの指定変更を有効化する一方、レインボー グラデーションを使用してカラー パラメータの指定変更を操作します。エフェクトを強調するには、キューブのローカル インク スプレッドも増分します。

テクスチャを使用してローカル インク ラインを彩色するには

注:以下の手順は、オブジェクトにトゥーン ペイント/ホスト シェーダが適用されていることを前提にしたものです。また、トゥーン ホスト シェーダに同一のコントロールが存在しています。
  1. トゥーン シェーダが適用されているオブジェクトのなかから、インク ラインをテクスチャリングしたいものを選択します。

  2. [Render]ツールバーから[修正](Modify) [シェーダ](Shader)を選択し、オブジェクトのトゥーンマテリアルシェーダを編集します。[Toon_Paint_and_Host]プロパティ エディタが開きます。

  3. [インク]タブで、[オーバーライド](Override)オプションを有効にします。

  4. オブジェクトがまだ選択されている状態で、Render Treeを開き([7]キーを押し)、[ノード](Nodes) [テクスチャ](Texture)メニューからテクスチャを選択します。

  5. [Host]シェーダの[host_override_color]入力にテクスチャを接続します。

  6. テクスチャのノードをダブルクリックして、そのプロパティ エディタを開き、テクスチャを調整します。必ずオブジェクトに適切な投影タイプを選択してください。

    テクスチャ プロジェクションのタイプの詳細については、「テクスチャ プロジェクションのタイプ」(「テクスチャリング」)を参照してください。

テクスチャリンググローバルインクライン

グローバル インク ラインをテクスチャリングするのは、単一のオブジェクトのインク ラインをテクスチャリングするよりも複雑です。これは、テクスチャ シェーダではカメラ用のテクスチャ座標は生成されないためです。代わりに、一連のシェーダを使用してカメラ用のテクスチャ座標を生成することで、テクスチャをどのように適用するかを制御できるようになります。

最も良い方法は、[Texture_space_generator]シェーダを使用して、[Image_lookup]シェーダまたは[Texture_generator]シェーダのどちらかを使用して接続されるテクスチャの座標を作成することです。テクスチャの出力を[Toon_ink_Lens]シェーダの[Color]入力に接続すると、作成した座標を使用して、インク ライン内のテクスチャがレンダリングされます。

この操作を行うには、カメラの Render Tree を開き、そこでシェーダの[Color]入力に接続するのが最も簡単な方法です。この方法でインク ラインをテクスチャリングする 2 つの例を次に示します。

例 1: グローバル インク ライン カラーの制御

グローバル インク ライン カラーをテクスチャで処理すると、すべてのオブジェクトのインク ラインがテクスチャでカラーリングされます。ただし、トゥーン ホスト シェーダにより定義されるローカル カラーがインク ラインに含まれる場合は例外となります。

ノード

機能

A

Material ノード: カメラに影響を与える任意のシェーダに対し、プレースホルダとして機能します。

B

Toon Ink Lens: すべてのシーン オブジェクトに対してインク ラインの属性を定義します。この例では、インクのみのレンダリングが指定されます。

C

Color Math Basic: 2 つのカラー入力の基本的な数学計算が実行されます。この場合は、1 番目の入力(テクスチャ)が 2 番目の入力を掛けます(RGBA 値: 1.0, 1.0, 1.0, 1.0)。

D

Image Lookup: テクスチャイメージを取得し、その UV 座標を定義します。

UV 座標は、[Texture_space_generator]シェーダおよび[Texture_edit]シェーダにより定義されます。

E

Image Clip: インク ラインに表示されるテクスチャのイメージ クリップです。

F

Texture Edit: このツールシェーダは、シェーダのプロパティ エディタのパラメータに基づいてベクトル座標の割り当てを変更します。

G

Texture_space_generator: このツール シェーダは、カメラのテクスチャ投影方法を定義します。

UV 投影方法を定義し、[空間変換]モードを[スクリーン]に設定して上述のエフェクトを可能にします。テクスチャ スペースは定義しないでください。

例 2: グローバル インク ラインの拡散の制御

最後の例では、テクスチャを使ってグローバル インク ラインに着色する方法を例示します。同じテクニックを使って、グローバル インク ラインの拡散を変更できます。

[Toon_ink_Lens]シェーダの[スプレッド]パラメータを使用できるよう、テクスチャをスカラ値に変換して使用すると、インク ラインの太さに面白味のあるバリエーションが生まれます。

インク ラインの拡散をグローバルに変更しても、個々のオブジェクトのインク ライン カラーには影響しません。このイメージでは、各オブジェクトのトゥーン ホスト シェーダによりインク ライン カラーが制御され、トゥーン インク レンズ シェーダによりインク ラインの拡散がグローバルに制御されています。

ノード

機能

A

Material ノード: カメラに影響を与える任意のシェーダに対し、プレースホルダとして機能します。

B

Toon Ink Lens: すべてのシーン オブジェクトに対してインク ラインの属性を定義します。この例では、インクのみのレンダリングが指定されます。

C

Color2Scalar シェーダ:[Color_Math_Basic]シェーダのカラーを、[Toon_ink_Lens]シェーダの[スプレッド]パラメータの処理に必要なスカラ値に出力します。

D

Color Math Basic: 2 つのカラー入力の基本的な数学計算が実行されます。この場合は、1 番目の入力(テクスチャ)が 2 番目の入力を掛けます(RGBA 値: 1.0, 1.0, 1.0, 1.0)。

E

Image Lookup: テクスチャイメージを取得し、その UV 座標を定義します。

UV 座標は、[Texture_space_generator]シェーダおよび[Texture_edit]シェーダにより定義されます。

F

Image Clip: インク ラインに表示されるテクスチャのイメージ クリップです。

G

Texture Edit: このツールシェーダは、シェーダのプロパティ エディタのパラメータに基づいてベクトル座標の割り当てを変更します。

H

Texture_space_generator: このツール シェーダは、カメラのテクスチャ投影方法を定義します。

UV 投影方法を定義し、[空間変換]モードを[スクリーン]に設定して上述のエフェクトを可能にします。テクスチャ スペースは定義しないでください。

インクライン検知の制御

輪郭の検出場所は、シーン エレメント間(たとえば、異なるオブジェクト間や、オブジェクトとその背景にある環境の間)の境界を基準にし、さらにトゥーン ホスト シェーダ プロパティ(ペイント、シャドウおよび透明度)に基づいて指定できます。

輪郭検出オプションを設定するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. トゥーン インク レンズ シェーダのプロパティ エディタの[サンプリング]タブで、次の[境界](Boundaries)オプションを 1 つ以上選択します。

    • [環境](Environment): オブジェクトサーフェイス間の境界およびシーン環境で、インクラインを描きます。

    • [オブジェクト](Object): オブジェクトサーフェイスが交差またはオーバーラップする場所で、インクラインを描きます。

    • [マテリアル](Material): 異なるマテリアル間の境界に、インクラインを描きます。

    • [ペイント](Paint): トゥーンシェーダが適用されているオブジェクト上のペイント領域の境界を線引きするインクラインを描きます。

    • [シャドウ](Shadow): シャドウが投影されるあらゆる場所の、シャドウ付きサーフェイスとシャドウなしのサーフェイス間に、インクラインを描きます。

    • [透明度](Transparency): 透明なオブジェクトと不透明なオブジェクト間の境界に、インクラインを描きます。

    ヒント:

    トランスペアレンシ ベースの輪郭検出では、穴の周囲にインク ラインを描けるため、トランスペアレンシ マップを使用してオブジェクトのサーフェイス内の「穴」をシミュレートする場合には特に役に立ちます。

    オブジェクトのトゥーン ペイント/ホスト(またはトゥーン ホスト)シェーダ プロパティの[透明度]タブの[検知しきい値]の設定を使用することで、透明度/不透明のしきい値を調整できます。

  4. シーン オブジェクトのワイヤフレームをレンダリングする場合は、[ファセット](Facet)オプションを設定します。この操作の詳細については、次のセクションの「ファセット検出を使用したワイヤフレームのレンダリング」を参照してください。

ファセット検出を使用したワイヤフレームのレンダリング

トゥーン インク レンズ シェーダのファセット検出の設定を使用すると、シーン オブジェクトの一部またはすべてのワイヤフレームを容易にレンダリングすることができます。ファセット検出が有効な場合は、輪郭がオブジェクトのファセットの境界で検出され、テッセレーション オブジェクト サーフェイス内にある隣接、交差、またはオーバーラップするすべての三角形の間でレンダリングされます。

トゥーン用語で言う「ファセット検出」は、オブジェクトのワイヤフレームをインク ラインとしてレンダリングすることにより、そのサイズ、カラーおよび全体的な外観を適当と思われるように調整できることを意味します。もちろん、トゥーン マテリアル シェーダをオブジェクトに適用しローカル インク特性を調整することにより、オブジェクトのワイヤフレームをさらに調整することができます。ワイヤフレームを透明にして、ワイヤフレームの背面を露光させるといったこともできます。

以下に示すイメージは、上記のシーンのワイヤフレームを単純にインクのみでレンダリングしたものです。インク ライン幅は 2 に設定されていて、基本インク カラーは黒色に設定されています。ただし、球体にはそれぞれ異なるインク カラーが付けられています。背景色は白色に設定されています。

A

基本的なファセットレンダリングでは、隣接、交差、またはオーバーラップするすべての三角形の間で輪郭が検出され、レンダリングされます。

B

[同一平面のマージ]オプションをアクティブ化すると、同一平面上の三角形の間にあるファセット境界が無視され、ワイヤフレームの陰線が削除されます。

C

レンダリングされたオブジェクトを透明にすると、背面のワイヤフレームがレンダリングされます。

ワイヤフレームをレンダリングするには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. インク ラインのみがレンダリングされていることを確認するには、[基本の外観]ページに移動して、[インクのみ](Ink Only)オプションを有効にします。

    インク ラインのカラーと太さを変更する場合は、[カラー](Color)値および[スプレッド](Spread)値をそれぞれ調整します。

  4. 続いて、[サンプリング]タブに移動し、[ファセット](Facet)検出を有効にします。[同一平面のマージ](Merge Coplanar)オプションを選択して、同一平面上の三角形の間にある境界(上の図を参照)を非表示にします。

ワイヤフレーム レンダ内にオブジェクトの背面を含めるには

  1. 上記の手順に従って、ワイヤフレームをレンダリングします。[Toon Ink Lens]プロパティ エディタをロックして、開いたままにしておきます(ロック アイコンをクリックします)。

  2. オブジェクトにトゥーン マテリアルが適用されていない場合は、ここで([取得](Get) [マテリアル](Material) [トゥーン](Toon)を選択して)適用します。[Toon_Paint_and_Host]プロパティ エディタが開きます。

  3. [Toon_Paint_and_Host]プロパティ エディタで、[透明度]タブをクリックし、トランスペアレンシを有効にします。

    完全に透明にするには、トランスペアレンシ カラーの値をすべて 1 に設定します。

  4. [Toon Ink Lens]プロパティ エディタの[サンプリング]タブで、[トレース深度](Trace Depth)値を増分します。

    [トレース深度]は、計算対象となる輪郭検出レベルの数を判定するものです。たとえば、透明なオブジェクトの前面および背面のインク ラインをレンダリングするには、[トレース深度]値が 2(輪郭検出レベル 2)でなければなりません。

    その透明なオブジェクトの背後にあるオブジェクトの前面インク ラインをレンダリングするには、レベルを増分する必要があります。[トレース深度]を増分すると、レンダリング時間が大幅に増大する点に注意してください。

継ぎ目を使用したインク ラインの配置

トゥーン ホスト シェーダの[継ぎ目]オプションを使用すると、通常ならばレンダリングされるインク ラインを非表示にするか(ブレンド)、またはインク ラインを通常ならば存在しない場所に作成(非ブレンド)できます。

ブレンド グループを使用する

インク ラインをブレンドすると、インク ラインを通常ならば表示される領域に表示されないようにできます。通常、たとえば、あるオブジェクトが別のオブジェクトに部分的に重なっている領域、または 2 つのオブジェクトが交差する領域には通常、両方のオブジェクトの境界のインク ラインが含まれます。ブレンドすることによって、これらの領域からインク ラインを削除できます。

インク ラインを非表示にするには、2 つの重なり合うオブジェクトの 1 つがもう一方のブレンド オブジェクト リストの一部になっていて、しかも指定された明滅距離内に存在している必要があります。あるいは、両方のオブジェクトに同じブレンド グループ ID を共有させるという方法もあります。

注:[ブレンド]オプションはローカルなインキング オプションです。そのため、ブレンドを実行するには、関与するすべてのオブジェクトにトゥーン ペイント/ホスト シェーダまたはトゥーン ホスト シェーダがアタッチされていなければなりません。

このインクのみのレンダリングには、3 つの重なり合うオブジェクト(グリッドは数えない)が含まれます。球体および円錐がキューブと部分的に重なり合うことにより、インク ラインが作成されます。

キューブのブレンド グループに球体および円錐部分を作成すると、キューブが重なる場所に通常ならば作成されるインク ラインがレンダリングされないようにできます。

オブジェクトのインク ラインを混合させるには

注:次の手順は、オブジェクトにトゥーン ペイント/ホスト マテリアル シェーダが適用されていることを前提にしたものです。また、トゥーン ホスト シェーダ内には同じ[継ぎ目]コントロールが存在しています。
  1. トゥーン シェーダが適用されているオブジェクトのなかから、重なるオブジェクト/重ねられたオブジェクトとインク ラインをブレンドしたいものを選択します。

  2. [Render]ツールバーから[修正](Modify) [シェーダ](Shader)を選択し、オブジェクトのトゥーンマテリアルシェーダを編集します。[Toon_Paint_and_Host]プロパティ エディタが開きます。

  3. 次のいずれかの操作を実行します。

    • [継ぎ目]タブで、[オブジェクト](Add)リストの隣にある[追加](Object)ボタンをクリックします。ポップアップ エクスプローラで、選択されているオブジェクトのインク ラインとブレンドするインク ラインを持ったオブジェクト(複数可)を選択します。Explorer の外部のどこかをクリックして Explorer を閉じ、選択範囲を受け入れます。

    • [グループ](Group)値をゼロ以外の値に設定します。この値は、オブジェクトのブレンド グループ ID となります。該当するオブジェクトが同じブレンド[グループID](Group ID)を持った別のオブジェクトと重なり合うすべての場所で、インクラインが表示されなくなります。選択したオブジェクトのインク ラインでブレンドしたい場合は、そのオブジェクトでこの操作を繰り返します。

  4. [閉塞距離](Occlusion Distance)値を設定します。これは、Softimage 単位で計測される距離の値です。インク ラインを非表示にするためには、重なるオブジェクト/重ねられたオブジェクトのサーフェイス サンプルは、この距離よりも近くになければなりません。

非ブレンド グループを使用する

インク ラインの非ブレンドは、ブレンドと正反対です。インク ラインの非ブレンドでは、インク ラインが通常ならば存在しない場所に作成されます。すべてのトゥーン ホストオブジェクトは、テクスチャリングによりオブジェクト上にインク ラインを作成するための非ブレンド グループ パラメータを持ちます。これらのインク ラインにはそれぞれテクスチャが使用されます。

このインクのみのレンダでは、以下に示す Render Tree を使用して、[host_unblend_group]パラメータをプロシージャル ベイン テクスチャでテクスチャリングしてあります。スカラ計算基本シェーダの値を調整することにより、テクスチャのどの部分がインク ラインを生成するかを判別できます。

その他のインクのみのレンダ この例では、以下に示す Render Tree を使用して、[host_unblend_group]パラメータが 2D no_icon.pic テクスチャ イメージでテクスチャリングしてあります。ここでも、[Scalar_Math_Basic]シェーダの値を調整することにより、テクスチャのどの部分がインク ラインを生成するかを判別できます。

サンプリングを制御する

レンダリングされたインク ラインの品質は、サンプリングによってかなりの程度まで制御されます。サンプリング値には、輪郭の位置を指定するために発せられる光線の最大数を指定します。サンプリング値が大きいほど、輪郭の品質が高まります。

デフォルトのサンプリング値は 5 です。このデフォルト値は、細い輪郭をレンダリングするには十分です(スプレッド値は 5 未満または 6 です)。ただし、輪郭を太くする(スプレッド値が 7 以上)につれて、エッジ部分がぼやけてくるため、サンプリング値を増分する必要が生じます。

これらのイメージはすべて、次のシーンのアンチエイリアス設定でレンダリングされたものです。サンプリングの最小/最大レベル=0/2、しきい値(RGBA)=0.1, 0.1, 0.1, 0.1

A

スプレッド: 2、サンプル: 5(Spread: 2 and Samples: 5)

細いインク ラインには、サンプリング値 5 が(場合によっては 4 以下も)適切です。

B

スプレッド: 10、サンプル: 5(Spread: 10 and Samples: 5)

ただし、インク ラインを太くしていくとエッジ部分がぼやけていきます。

C

スプレッド: 10、サンプル: 8(Spread: 10 and Samples: 8)

トゥーン インク レンズ シェーダで[サンプル値]を増分すると、ぼやけたエッジが滑らかになります。

インク ライン サンプリングを設定するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. プロパティ エディタの[サンプリング]タブで、[サンプル](Samples)値を調整します。

    重要:一般的なシーンでは、[サンプル]値を1ずつ増分すると、レンダリングが 1 の 1/4 乗だけ減速するため、可能な限り小さい値を使用する必要があります。

シーンのアンチエイリアシングによるトゥーン サンプリングの均衡化

トゥーン インク レンズ シェーダのサンプリング設定とレンダ パスのアンチエイリアシング設定は両方とも、インク ラインの品質を左右する要因となるため、両方の設定のバランスをとることは、レンダリングを最適化するうえで重要です。

たとえば、インク ラインをデフォルト スプレッド値 2 でレンダリングする場合、ドラフト品質のレンダリングに適した値は以下のとおりです。

  • レンダ パスのアンチエイリアス設定値:

    • [サンプリング]の[最小/最大レベル]: -1,1

    • [しきい値(RGBA)]: 0.2, 0.2, 0.2, 0.2

  • トゥーン インク レンズ シェーダの[サンプル]値: 5

ハイクオリティのレンダリングに適した値は以下のとおりです。

  • レンダ パスのアンチエイリアス設定値:

    • [サンプリング]の[最小/最大レベル]: 0,2

    • [しきい値(RGBA)]: 0.1, 0.1, 0.1, 0.1

  • トゥーン インク レンズ シェーダの[サンプル]値: 5

インク ラインを太くするときは、トゥーン インク レンズ シェーダの[サンプル]値を増分する必要があります。ただし、アンチエイリアシング設定は増分しないでください。

代わりに、アンチエイリアシング設定を使用すれば、インク ラインをレンダリングするかどうかに関係なく望みのレンダリング品質を得ることができます。さらに、トゥーン インク レンズの[サンプリング]を調整して、インク ラインの品質を高めることができます。

アンチエイリアシングの設定の詳細については、「エイリアシングの制御」(「レンダリング」)を参照してください。

背景カラーの設定

トゥーン レンダリングを施したシーンを作成するときには、単色を背景にシーン オブジェクトをプレビューしたい場合があります。このようなプレビューは、インク ラインの調整で特に役に立ちます。

背景色を設定するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [背景]タブで、背景を有効にして、[カラー](Color)値を設定します。

    ヒント:Render Tree を使用すれば、背景色をテクスチャリングできます。そうすることで、特に静止画像または画像シーケンスに対してシーンをレンダリングできます。

レンズ歪みを作成する

トゥーン シェーダが適用されたシーンをレンダリングする際、そのシーンに[魚眼]と[バルジ]という 2 種類のレンズ歪みを含めることができます。

  • 魚眼歪みは、現実世界の魚眼カメラのレンズに特有の半球状の歪みで 180 度の視野をレンダリングできる半球(魚眼)のレンズをシミュレートします。

    A

    魚眼歪みなし

    B

    魚眼歪みの量=0.5

    C

    魚眼歪みの量=1.0

  • バルジ歪みは、視線の方向を変えることでレンズを「膨らませる」ことができます。レンズを、魚眼レンズのように凸型にバルジ アウトしたり、凹型にバルジ インすることができます。このエフェクトは、レンズのサーフェイス上で変化する場合があります。

魚眼歪みを作成するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティエディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [レンズ エフェクト]タブで、使用する歪みのタイプ([魚眼]または[バルジ])を有効にします。

  4. いずれかのエフェクトの[度合い](Amount)値を調整します。これで、歪みの量を制御します。値 0 ではエフェクトが無効になり、値 1 ではフル エフェクトになります。

  5. 歪みのタイプに応じて、以下のいずれかの操作を実行します。

    • 魚眼歪みの場合は、[スケール](Scale)設定を調整します。これで、歪んだイメージの[X][Y]の比率が調整されます。[ユニフォーム]オプションを有効にすると、強制的に X と Y を同じ値にすることができます。

    • バルジ歪みの場合は、[大きさ](Magnitude)を調整します。[X][Y]の設定は、横方向と縦方向のバルジをそれぞれ制御します。

    ヒント:テクスチャを使用してバルジ エフェクトの[大きさ](Magnitude)を操作すると、複雑なパターンの歪みを簡単に作成できます。グローバル インク ライン パラメータのテクスチャリングの詳細については、「 テクスチャリンググローバルインクライン」を参照してください。