beta21,5 変更点

・EdgeTracerに独立ブラシ設定を追加。
061107_001.jpg
これによってサーフェイス毎にブラシ設定を変更することができます。
ブラシ色やサイズなどそれぞれにチェックボックスがあり、そのチェックがついているパラメータのみ有効になって後はToonTracerのレイヤー設定がそのまま使われます。
また、ToonTracerのレイヤー設定には独立ブラシ無効チェックボックスが追加されており、レイヤー毎に独立ブラシの有無を設定できます。

ただし、この機能を使用する(独立ブラシパラメータの有効チェックがオンになっているサーフェイスが1つでもある)と、消費メモリが結構増えます。
ワーストケースで1.5倍くらいになるんですが、後述するバッファ分割設定で大抵の場合は軽減できます。

・ToonTracerのエッジレイヤー設定に深度チェック復活
紆余曲折喧々諤々の末に深度チェックが三度目の復活です。
殆どの場合は自動設定のままで問題ないと思いますが念のため。

んで、そもそも深度チェックってなんやねんって話ですが、例えば前述の独立ブラシを使用したとき、2つのサーフェイスの境界部分に線が発生したらどちらのサーフェイスに設定されたブラシを使えばいいのか?
というのを解決するためのもので、要は境界となる2つのピクセルの深度を比較し、手前にあるピクセルを優先するというチェックです。

深度チェックで選択できる値は4つ。
「自動判定」では独立ブラシと各ブラシパラメータのテクスチャの有無をチェックし、1つでもあったら深度チェックを行います。

「常にオフ」では深度チェックを一切行いません。
この設定のメリットは線のガタつき、ぶれが起きにくいこと。
これはポリゴンが交差している部分や非常に小さいポリゴンによる凹凸がある部分で深度チェックをオンにすると見られる現象で、線がガタガタになったり、細い線がぶれたりします。
デメリットは独立ブラシなどで意図した結果にならないことがあります。
これは深度チェックがオフの時は画面の左上から右下に向かってピクセルを走査して判定するためです。

「常にオン」では深度チェックを常に行います。
この設定のメリットは独立ブラシ等のパラメータが正しく取得できるのと線のズレが起きないこと。
線のズレというのはチェックオフの時は左上から右下に向かってチェックするので、特に斜めの線で最大1ピクセルの線のズレが発生します。
デメリットはオフで説明した線のガタつきが発生すること。
ただ、これは後述する制限距離の設定である程度軽減することができます。

「属性のみ使用」は、オンとオフの中間で、線を描画する位置はオフと同じで、独立ブラシ等のパラメータを取得するピクセルは深度チェックしたものを使用します。
メリットは独立ブラシ等のパラメータが正しく取得できるのと線のガタつき、ブレがでにくいこと。
デメリットは線のズレが出ることです。
061107_002.jpg

結局どの設定がいいかはシーンの状態やToonTracer設定によって変わってくるので、色々試すしかないです。
個人的には「属性のみ使用」をよく使います。
線のブレは線を太くすれば判りにくいので、2倍の太さのブラシで2倍の解像度でレンダリングして縮小とかして対処します。

・法線の折り目設定に距離制限追加
境界判定に使用される2つのポリゴンのボーン、ディスプレース、モーフ変形前の形状での距離をチェックして、閾値より離れている場合のみ判定を行います。
0mmで設定OFFになります。
あんまり使い道はないかも。

・新エッジ種別追加
新たに追加されたノードエッジは、ノードを使用して線を出すかのフラグを立てることができます。
ノードの入力値Flagは整数で、0以下で線が出ず、1以上で線が出るようになります。
unRealBufferノードと組み合わせれば他のエッジ種は全て再現できるくらい自由度は高いです。
試してないけどレイトレ系のノードを使用した輪郭検出とかもできるかも。

実用性は無さげだけどSobelフィルタを再現してエッジ検出してみたり。
061107_003.jpg
061107_004.jpg
シーンファイル
ATIのNPRサンプルを真似て周囲8ピクセルの法線と中央の内積を取った値をSobelフィルタに入れてます。

・オプションにパフォーマンス設定タブ追加
ToonTracerのオプションがごちゃごちゃしてきたのでタブ分けて色々追加しました。
レンダリング設定にはVIPERやTGA出力等の設定が入っており、特に変更はありません。
パフォーマンス設定にはレンダリング結果には影響の無い消費メモリ、処理速度に関係する設定が入ってます。
「カスタムバッファ1~4」は旧バージョンにもあったカスタムバッファのピクセルサイズです。

「バッファ分割」設定はunReal内部で作成されるエッジ検出のための情報、エッジ描画バッファの設定を行います。
Autoではレンダリング解像度に応じて自動設定されます。
レンダリング解像度が低い場合は特にこれで問題ないと思います。
レンダリング解像度が2048*2048を超えるくらいの大きさではCustomで手動で設定することで消費メモリが軽減できる場合があります。

このバージョンではデバッグ用のメモリブロック表示チェックが残してあるので、これをONにすることで実際にどのようにメモリが確保されているかを見ることができます。(緑になってるブロックがメモリを消費している部分)
061107_007.jpg

・オプションにボリューム前処理追加
ToonTracerの処理をボリューメトリックプラグインの前に行うことができます。
061107_005.jpg
前と後との違いは、前だとHyperVoxelで作成した煙等との重ねあわせが綺麗にできます。
後だと逆にボリューメトリックの手前にエッジが描かれます。
シーンに応じて使い分けてください。

・LayoutGenericプラグイン「ShaderManager」追加
061107_006.jpg
EdgeTracer、CelPainter等のunRealシェーダープラグインを複数サーフェイスに一括追加、コピーができます。
上部のタブから追加、除去、コピーを選択し、その処理を行いたいプラグインをポップアップから選択します。
また、コピーの場合はコピー元となるサーフェイスも選択します。
コピー元選択ポップアップには、コピーしたいプラグインが設定されているサーフェイスしか表示されません。
最後にリストから処理の対象となるサーフェイスを選択して「実行」ボタンを押せば完了です。
リストにはシーン内の全オブジェクトのサーフェイスが表示され、ポップアップで選択しているプラグインがセットされているサーフェイスには頭に○がつきます。
また、処理不可能なサーフェイス、例えばEdgeTracerの追加モードで既にそのプラグインがセットされているサーフェイスなどは薄く表示されて選択できません。
コピーの場合はプラグインがセットされていないサーフェイスでも自動的にセットしてからコピーされます。

ただ、現在のバージョンではプラグイン除去は動作しません。
これはLWのバグと思しき現象で、プラグイン除去はされるものの、正しい終了手続きが内部で行われないためそのままレイアウトの操作を続行するとデータが壊れる可能性があるためです。
現象についてはサポートに確認する予定で、本当にバグなら9.2とかで修正されると思いますが8.5でも同じ現象が出ており、こっちが直る確率はテクザーがPS3でリメイクされることくらい低いので諦めが肝心です。

コピーについてもLW標準ではできない事を変態的な方法で無理やりやってるので実行前にバックアップは取っといたほうがいいです。


タイトルとURLをコピーしました