読者です 読者をやめる 読者になる 読者になる

Ink'nPaintのライン表示実験

3dsMAX2010に標準装備されているマテリアルの種類で、セルアニメ調にレンダリングが出来る「Ink'nPaint」という物がありますが、ライン設定がいくつかあるのに、MAXでの説明が適当過ぎてよく分からなかったので、実験してみる事にしました。

実験用モデル
▲変な形だけど、こういうモデルを作りました。
オブジェクトとしては3つあり、「変な球体」「手前の箱」「奥の箱」と別れています。


マテリアルID分け
▲マテリアルは3つ使い、それぞれ分けています。
別オブジェクトでも、番号が同じなら使ってるマテリアルは一緒です。


スムージンググループ分け
▲スムージンググループは、平面で分けています。
設定時にグループ番号を付けるのですが、念のために手前は1・2・3番、奥は4・5・6番と左右対称セットで付けています。


「Ink'nPaint」内でのライン設定画面
▲「Ink'nPaint」内での、ライン設定画面です。
今回は、

  • アウトライン
  • オーバラップ
  • アンダーラップ
  • スムージンググループ
  • マテリアルID

をONにした時のラインの出方を見ていきたいと思います。


因みに、インクのチェックボックスをOFFにしたら、線は一切出ません。
インクの質は1~3まであります。


1→+で書く
2→*で書く(本当は+と×が合わさった奴だったと思います)
3→●で書く


数値が低いほど線が粗いけど、レンダリングが早くなる・・・とはいっても、見た目はほとんど変わらなかったです。


インク幅にチェックを入れないと、最小設定しか操作できませんが、何故か表示は同じ幅。
1だろうが10だろうが1000だろうが、同じ幅でした。
チェックしないと、デフォルト幅しか出ないのかなぁ・・・?


クランプは、光が当たると線が細くなる効果を無効にするらしいです。
100(%)とチェックボックスNoneは、他の設定をブレンドする時に使うようです。


マテリアル2番でのみ、ラインを表示してみた。

ラインなし
▲まずは、ライン無し状態。


テストA アウトライン
▲アウトラインのみ表示。
交差バイアスは、デフォルトの0にしました。
インク幅は、最小&最大共に3にしています。
手前と奥のオブジェクトは同じマテリアルを使っていますが、アウトラインはそれぞれ別扱いで線を引いてくれました。
白い丸との交差部分の線は、微妙ですね・・・。
真後ろに丸がある部分だけ、アウトラインを引いてくれているようです。
後、よく見ると、オブジェクトの外側に引くわけではなく、オブジェクト内での一番外側(結局は内側になるが・・・)に、引いてますね。


テストAオーバラップ
▲オーバラップのみ表示。


テストAアンダーラップ
▲アンダーラップのみ表示。
これは、自身のオブジェクトが重なった時に表示される線なので、別オブジェクト同士のBOXラインは出ない為、線は何も表示されません。


テストAスムージンググループ
▲スムージンググループのみ表示。
自身のグループ分けされたポリゴンの繋ぎ目同士だけに、線を引いてくれました。


テストAマテリアル1
▲マテリアルのみ表示。(「隣接面のみ」のチェックOFF)
別オブジェクトだろうが関係なく、同じマテリアルを使っていると1つとみなされるようです。
見える部分の輪郭に、線を引いてくれました。


テストAマテリアル2
▲マテリアルのみ表示。(「隣接面のみ」のチェックON)
同じオブジェクト内で、別マテリアルとの境界線のみに、線を引いてくれました。
別オブジェクトと重なってても、線は引かれません。


基本を表示したので、次に行きます。
今度は、自身が重なり表示している白い丸にのみ、線を引いてみます。


マテリアル1番でのみ、ラインを表示してみた。

テストBマテリアル1
▲マテリアルのみ表示。(「隣接面のみ」のチェックOFF)
別オブジェクト同士で同じマテリアルでも、纏めて一番外側に線が引かれたので、同じオブジェクトで前後に重なってても、外側にしか線が引かれませんよね。


テストBマテリアル2
▲マテリアルのみ表示。(「隣接面のみ」のチェックON)
自身内での別マテリアルは無いので、他オブジェクトのマテリアルと重なってても、線は表示されません。


テストBアウトライン_バイアス0
▲アウトラインのみ表示。(バイアス=0)
バイアスはデフォルトの0です。
「バイアス」とは、線を表示する時に「生じた不自然な部分を調整するために使用」するとMAXの説明には書かれていますが、線を表示するか否かを判定する為の、オブジェクト同士の距離等を指定しているように見えます。
数値が小さければ、重なり部分が近くても線を引いてくれるようですが、法線を元にしているのか、細かく分割されてる丸オブジェクトの方が、ゴミ表示がよく出ます。
今回は、重なってるオブジェトの奥側にあっても、線が出ましたね。
かすれてる部分もありますが・・・。
BOXの時は、手前側にしか出なかったのに、何でだろう・・・?
それぞれの違いと言えば、ポリゴン分割数位です。
やはり、頂点から出てる法線が関係してるのかしら・・・?


テストBアウトライン_バイアス1
▲アウトラインのみ表示。(バイアス=1)
今度は、バイアスを1にしてみました。
別オブジェクトと直接重なってる部分の線が、すべて消えました。
めり込んでると、線が出にくいみたいですね。


テストBオーバラップ
▲オーバラップのみ表示。(バイアス=1)
自身のオブジェクトが重なった時に出る線なので、やっと表示されました。
重なってる部分の手前のオブジェクトに、線が引かれています。
手前の突起物の重なりの根元はもっと奥なのですが、近すぎて表示してくれませんね。
これのバイアスを0にしたら、オブジェクトが真っ黒に塗りつぶされてしまいました。


テストBアンダーラップ
▲アンダーラップのみ表示。(バイアス=1)
こちらも、自身のオブジェクトが重なってる時に、出る線です。
重なってる部分の奥のオブジェクトに、線が引かれています。


それでは、アウトラインと組み合わせて表示してみます。


テストBアウトライン&オーバラップ
▲アウトライン&オーバラップを表示。(バイアス=1)
こちらの相性は、良いですね。
自然に見えます。


テストBアウトライン&アンダーラップ
▲アウトライン&アンダーラップを表示。(バイアス=1)
こちらの相性は、悪いですね・・・。
アンダーラップって、どういう所で使うのだろうか・・・?
ちなみに、オーバラップとアンダーラップ両方にチェックを入れると、線が太くなります。
そりゃそうだ。


問題は、「オブジェクトがめり込んだ時の境目の線を、どうやって綺麗に出すか?」・・・って事なんですが(実は、本題はこれだった)、この状態ならば、マテリアルも表示すれば解決します。


テストBアウトライン&オーバラップ&マテリアル
▲アウトライン&オーバラップ&マテリアルを表示。(バイアス=1)
綺麗に、下線も出ました。


マテリアルが別なら簡単に解決しますが、それでは同じマテリアル同士だった場合はどうなるか・・・?


テストCアウトライン&オーバラップ&マテリアル
▲同じマテリアルを使用して、アウトライン&オーバラップ&マテリアルを表示。(バイアス=1)
・・・こうなりますよね(´д`)
でもオブジェクトが別なので、同じ設定のマテリアルを2つ作って分ければ、この場合は解決するのですが、オブジェクトが同じ場合は、マテリアルを分けてしまうと、分けた部分の線も出てしまう為、上手く行きません。


この現象は指の根元とかで発生するので、オーバラップのバイアスを0に近い数値にして、少しでも隙間を出さないと線が出なくなります。
バイアス頼みとは、また何とも不便な・・・。
そして線がかすれやすくなり、ゴミが出やすくなる。
下手したら、1枚1枚手書きで補正しなければならないかもしれない・・・イヤスギーーーヽ(;´д`)ノ
他に方法が無いから、後は祈るしかないのか・・・?w


という訳で、実験終了です。
セル画用表示専用ソフトの「Pencil+」を使えば、この問題は簡単にクリアできるそうですが、10万前後するようです。www.psoft.co.jp


実験の為だけに、そんな金払ってられるかぁ~ヽ(`д´)ノ!!

広告を非表示にする

※ここにある物の著作権は、「うっちょん」または「マナ」にあります。 無断転載等は禁止しています。
© 2002 ucchon    © 2014 mana