ペイント エフェクトのトラブルシューティング
 
 
 

この章では、ペイント エフェクトの使用中に発生する可能性のある問題と、その解決方法について説明します。

ストロークが描画されず、エラー メッセージが表示される

ブラシの処理が非常に重く、1 つのブラシ ストロークでセグメントまたはポリゴン フェースの数が 1,000,000 個を超える場合、メッセージが表示され、ブラシ ストロークは描画されません。これは、表示がロックされたり、ストロークの滑らかさが損なわれたりするのを防止します。

この問題を解決するには、ブラシを単純なものに変更します。あるいは、メモリが問題ではない場合は、非表示の maxDrawSegments アトリビュートの値を大きくしてください(デフォルト値は 1000000 です)。

maxDrawSegments をもっと大きい値(5000000 など)に変更するには、次の MEL コマンドを実行します。

setAttr strokeShape1.maxDrawSegments 5000000

ここで、strokeShape1 はストロークか、pfxHair または pfxToon ノードの名前です。

無制限の設定にするには、次のように記述します。

setAttr strokeShape1.maxDrawSegments 0
ヒント:ストロークの表示精度(Display Quality)を低くすると、ストローク表示が簡略化されこの警告メッセージを避けることができますが、ストロークのシェイプも変わる場合があります。メッシュとして描画(Draw As Mesh)をオフにすると、単純なワイヤフレーム内ではあるものの、より多くのストロークを表示できます。

三角形の数を減らすには、チューブのセクション(Tube Sections)の値を低くします(ペイント エフェクト > メッシュ精度アトリビュート(Paint Effects > Mesh Quality Attributes))。

ペイントしたストロークが暗く見える

次のいずれかを実行します。

シーン内でチューブが小さく見える

ブラシのグローバル スケール(Global Scale)アトリビュートの値を大きくするか、シーン スケール(Scene Scale)アトリビュートの値を大きくします。

レンダリングされたストロークが複数のサークルから形成されている

スタンプの数があまり多くならないように、ブラシのスタンプ密度(Stamp Density)アトリビュートの値を少しずつ大きくします。

カーブした部分のチューブにぎざぎざが生じたり分裂して見えたりする

チューブ > 作成(Tubes > Creation)を選択して、チューブのセグメント数を増やします。

レンダリングしたイメージの外観が即座に更新されない

ストロークの表示精度(Display Quality)を上げます。また、シーン ペインティング ビューであることを確認してください。

キャンバスのカラーを変更してもキャンバスが黒一色にクリアされる

アルファ プレーンが表示されている可能性があります。ディスプレイ > すべてのチャンネル(Display > All Channels) を選択して、もう一度クリアしてください。

サーフェスの結合されたエッジからブラシ ストロークが漏れているように見える

単一のサーフェス上の結合されたエッジ(たとえば、2 分割した半分のサーフェス同士を結合したときに生成されたセンター ラインなど)をペイントすると、結合部分からストロークが漏れて裏側に飛ぶように見える場合があります。

サーフェスが UV 方向に継ぎ目がないか確認してください。

ブラシのグローバル スケールの値が無視されるように思われる

ペイント エフェクト グローバル(Paint Effects Globals)ウィンドウの設定を確認します。次回のプリセット ブラシに適用されるグローバル スケールには、ペイントを行っている場所(キャンバスまたはシーン)に応じて、キャンバス スケール(Canvas Scale)またはシーン スケールの値が掛けられます。

ブラシを共有したいが不要なブラシまで共有される

ペイント エフェクト > 1 つのブラシを共有(Paint Effects > Share One Brush)を選択すると、最後にクリック(選択)されたストロークのブラシが共有されます(最後に選択されたストロークは一次選択オブジェクトとも呼ばれ、デフォルトでは緑色で強調表示されます)。

ストロークのテクスチャ カラーがテクスチャに設定したカラーと一致しない

ブラシのカラーにテクスチャをマッピングしてストロークをペイントすると、実際にペイントされるテクスチャ カラーが事前に指定したテクスチャ カラーと一致しない場合があります。

ブラシのカラーにテクスチャをマップすると、テクスチャのカラー値(テクスチャ カラー 1(Tex Color1)テクスチャ カラー 2(Tex Color2))にブラシのカラー値(カラー 1(Color1))が掛けられます。実際にペイントされるテクスチャ カラーを事前に指定したテクスチャ カラーと一致させるには、ブラシのカラー値(カラー1)を白(値 1)に設定する必要があります。

Wacom のスタイラスとタブレットが圧力に反応しない

Linux 環境でペイント エフェクト ストロークをペイントするときに、Wacom のスタイラスとタブレットが圧力に反応しない場合があります。

その場合は、任意のアーティザン(Artisan)ツール(選択範囲ペイント ツール(Paint Selection Tool)など)を選択し、ツール設定(Tool Setting)エディタを開いて スタイラス圧力(Stylus Pressure)セクションを展開します。スタイラス圧力オプションがグレー表示される場合は、Wacom タブレットが Maya 環境内で認識されていません (「tablet」という汎用名で Wacom タブレットがインストールされている可能性があります)。

Linux でこの問題を解決するには、Wacom の Web サイト(www.wacom.com)で Linux に関する製品サポート情報をお読みください。

新しいタブレットをインストールしたがペイント エフェクトで認識されない

新たにインストールしたタブレットがペイント エフェクト環境で圧力に反応しない場合は、

ブラシをリセットします(ペイント エフェクト > テンプレート ブラシのリセット(Paint Effects > Reset Template Brush))。

ペイントしたストロークにプリセット ブラシの値が適用されていないように見える

プリセット ブラシを選択してストロークをペイントしたときに、そのプリセット ブラシで設定した値がストロークに適用されていないように見える場合があります。

その場合は、プリセット ブラシのブレンド(Brush Preset Blend)ウィンドウが開いている可能性があります。このウィンドウが開いていると、ブレンドの設定に基づき、選択したプリセット ブラシのシェーディングとシェイプの値がテンプレート ブラシの値とブレンドされます。

このような状況を避けるには、事前にプリセット ブラシのブレンドのオン/オフを切り替えるためのホットキーを定義しておきます(BrushPresetBlendBrushPresetBlendShapeBrushPresetReplaceShading の各アクションにキーを割り当てます)。

ブレンドを行うときは、プリセット ブラシのブレンド(Brush Preset blend) ウィンドウ内でシェーディングとシェイプのブレンド割合を設定した後、ウィンドウを閉じます。次に最初のブラシ(テンプレート ブラシ)を選択し、ブレンディング用のホットキーを押した後、ブレンドするプリセット ブラシを選択します。ホットキーを押している間は、プリセット ブラシを選択するたびに、そのプリセット ブラシの値がテンプレート ブラシの値とブレンドされます。ブレンドを止めるには、ホットキーを放します。

チューブの成長とテクスチャのフローが同期していないように見える

チューブの成長とテクスチャのフローを同時にアニメートする(たとえば、テクスチャが適用された木の成長をアニメートする)ときに、テクスチャがチューブの成長よりも速く流れるように見える場合があります。

これを修正するには、ストロークを選択し、ペイント エフェクト ブラシ設定(Paint Effects Brush Settings)ウィンドウのフロー アニメーション(Flow Animation)セクションでテクスチャ フロー(Texture Flow)をオンにします。

フロー アニメーションの開始時間(秒)(Start time (seconds))を設定したがチューブが表示されない

開始時間と終了時間(End Time)は秒単位で計測されます。したがって、開始時間を 60 に設定した場合、時間の計測単位は 24 fps(ウィンドウ > 設定/プリファレンス > プリファレンス(Window > Settings/Preferences > Preferences)と選択してから設定をクリック)で、アニメーションは 1440 フレームまで開始されません。

チューブを最初に表示するフレーム番号が分かっている場合は、そのフレーム番号を時間(Time)単位(1 秒あたりのフレーム数)で割ると、開始時間(秒)(Start time (seconds))ボックスに入力する値が決まります。たとえば、時間(Time)単位が NTSC(30 fps)であるときに、フレーム 60 でチューブを最初に表示する場合は、開始時間(秒)(Start time (seconds))を 2 秒(60÷30)に設定します。

フィールド内でエクスプレッションを作成すると、このような計算を実行することができます。等号(=)の後に計算式を入力してください。上記の例では、次のように入力します。

=60.0/30 

時間の値は浮動小数点数(小数点付きの 10 進数)で入力することに注意してください。

ジオメトリとストロークが重なるときにジオメトリの周囲にエイリアシングが発生する

詳細については、ペイント エフェクトのストロークがシーンにある他のオブジェクトに対して間違った順序でレンダーされる(173を参照してください。

サーフェスに適用したテクスチャを変更したがサーフェスが更新されない

キャンバスで、自動保存(Auto Save)がオンになっているのを確認します。また、Windows を使用している場合は、シェーダのアトリビュート エディタ内でハードウェア テクスチャリング(Hardware Texturing)テクスチャ解像度(Texture resolution)デフォルト(Default)以外の値に設定する必要があります。

シーン ペインティング ビュー内のアルファ プレーンが白く表示される

シーン ペインティング ビュー内ではアルファのプレーンが真っ白に表示されます。シーン ペインティング ビュー内でアルファを表示するには、レンダー > カレント フレームのレンダー(Render > Render Current Frame)を選択してシーンをレンダーした後、レンダー ビュー(Render View)ウィンドウ内でディスプレイ > アルファ チャンネル(Display > Alpha Channel)を選択します。

サーフェスにペイントしたいがストロークがビュー プレーンにペイントされる

デプスでペイント(Paint at Depth)をオフにします(ペイント エフェクト > ペイント エフェクト ツール(Paint Effects > Paint Effects Tool))。

ストロークのレンダーに非常に時間がかかる

コーン畑など、同じブラシで作成したストロークが多数あるシーンでは、レンダーに非常に時間がかかります。

セグメント(Segments)リーフのセグメント(Leaf Segments)花びらセグメント(Petal Segments)を減らしてブラシを簡素化してみてください。

また、チューブの代わりにブラシのテクスチャを使用してディテールを作るのもお勧めです。たとえば、コーン畑をペイントする場合、1 つのチューブにぴったりとフィットする 1 本のコーンの茎の高くて細いイメージをレンダーして、チューブが 1 本あるブラシのテクスチャとして使用します (このテクニックの例として、pineTextured ブラシを見てください)。このメソッドはクローズアップ ショット以外の場合に、茎を表現するのに使えます。チューブのくねり具合(wiggle)をランダムに表現して、茎の外観にバリエーションを出します。また、テクスチャやブラシの組み合わせを変えても効果的です。

ペイント エフェクトのストロークがシーンにある他のオブジェクトに対して間違った順序でレンダーされる

ペイント エフェクトは、スキャンライン レンダラによって生成されたデプス バッファを使用してオクルージョンを決定します。レンダリングされたエフェクトで、複数のサーフェスが単一のピクセル内にあるところ(透明、アンチエイリアシングされたエッジ、モーション ブラー、ライト フォグおよびボリューム密度のような)では、これにより 1 つのピクセルに、1 つのデプス値および 1 つの色があるようにペイント結果を合成しようとして問題が起こります。

カメラのデプス タイプ(Depth Type)オプション(アトリビュート エディタ(Attribute Editor)出力設定(Output Settings)セクション)を使用して、レンダラが 1 つのピクセル内にある複数のデプス値を 1 つのデプス値に減らして可視にするかを決定する方法に影響を与えることができます。

最も遠い可視デプス(Furthest Visible Depth)では、これらの要素の後ろにあるペイント エフェクト ストロークは、最前面にあるかのように突き抜けます。

最も近い可視デプス(Closest Visible Depth)では、ピクセル内のカメラに最も近いサーフェスが取られます。したがって、透明なサーフェスやモーション ブラーによる筋があると、後ろのペイント エフェクト ストロークがすべて不明瞭になります。しきい値(Threshold)の値により、デプス バッファにサーフェスが表示されなくなるところの透明度が決まります。

透明度、透明度マップ

レンダー カメラの出力設定(Output Settings)で、デプス タイプ(Depth Type)アトリビュートを最も近い可視デプス(Closest Visible Depth)に設定し、しきい値(Threshold)を調整します。

アンチエイリアス エッジ

  • レンダー カメラの出力設定で、デプスをオンにし、デプス タイプ最も遠い可視デプス(Furthest Visible Depth)に設定します。
  • オブジェクトのアンチエイリアシングをオフにし、大きなサイズでオブジェクトとペイント エフェクト ストロークをレンダーしてから、サードパーティのソフトウェア製品を使用して、レンダーのサイズを小さくし、リサンプルします。

透明度、透明度マップ、およびアンチエイリアス エッジ

  • ペイント エフェクト ストロークを単独でレンダーし、合成します。
  • ペイント エフェクト ストロークをポリゴンに変換します。

階段状のメッシュ ブラシ

ペイント エフェクト オーバーサンプル(Oversample)をオンにしないと、メッシュ ブラシのエッジが階段状(エイリアス)になります(レンダー設定(Render Settings)ウィンドウの Maya ソフトウェア(Maya Software)タブにあるペイント エフェクト レンダリング オプション( Paint Effects Rendering Options)セクション)。

ストロークが完成していないように見える(たとえば、木の描画が完成しない)

シーン ビュー内で Maya が描画するセグメントまたはポリゴン フェースの最大数はデフォルトで 1000000 個です。この値は、maxDrawSegments という名前の非表示アトリビュートによって制御されます。maxDrawSegments では、最大幅に達すると、ストロークが描画を停止します。ストロークはシェイプを変更せず、未完成の状態を維持します。(ただし、バッチ レンダーは完了します)。ストロークの maxDrawSegments を 0 に設定すると、ストロークは無制限になります。すなわち、ストロークが完成するかメモリ不足になるまで Maya は描画を続けます。

この値を設定すると、非常に処理が重いブラシによりインタラクティブな表示がロックされてしまう現象を防止できます。この制限を超えると、次の警告メッセージが表示されます。

<strokeName> was only partially drawn.For more information see “maxDrawSegments” in the Maya Help.

完全なストロークを表示する必要があり、十分なメモリがある場合は、ストロークの maxDrawSegments アトリビュートに対し setAttr を実行します。例:

setAttr strokeShape1.maxDrawSegments 10000000

無制限の設定にするには、次のように記述します。

setAttr strokeShape1.maxDrawSegments 0

ここで、strokeShape1 はストロークか、pfxHair または pfxToon ノードの名前です。

この setAttr を実行するのは、デフォルトの 1000000 個より多くのポリゴンを単一のストロークでインタラクティブに表示する場合だけです。

ヒント:ストロークの表示精度(Display Quality)を低くすると、ストローク表示が簡略化されこの警告メッセージを避けることができますが、ストロークのシェイプも変わる場合があります。メッシュとして描画(Draw As Mesh)をオフにすると、単純なワイヤフレーム内ではあるものの、より多くのストロークを表示できます。

三角形の数を減らすには、チューブのセクション(Tube Sections)の値を低くします (ペイント エフェクト > メッシュ精度アトリビュート(Paint Effects > Mesh Quality Attributes))。