2009/11/25

ここ数日Mayaのブーリアンを使ったモデリングをする機会が多く、どうやったら失敗するか、成功させるにはどうしたらいいか、を考えていました。
以前から、Mayaのブーリアンはほとんど成功しない、というイメージがあったのでほとんど使っていませんでしたが、コツをつかめば、成功する場合、失敗する場合がなんとなく解ってきた気がします。
そして、マスターするとかなり使える!


まずは失敗した場合のモデルの状況について。

��.なにかしらのモデルが残っている場合


これはおそらく、法線の向き、もしくは演算方法が間違っている場合がある。
この状況の場合はほとんど成功しているので、法線の向きをチェックし、演算方法を確かめてみてください。

2.モデルが消失する場合

まぁ、失敗するとほとんどがこうなると思います。

では、どうして失敗するのか、一つ一つチェックしていきましょう。
法線の向きはあっているか、頂点、エッジ、面が重なっていないか、隙間がないか、ゆがんだポリゴンがあるか・・・等々

要するに、まず、ブーリアンを行う前にクリナップ、ヒストリーの削除を行うのが手っ取り早いと思います。

この手順を行っても失敗する場合は、おそらく、どちらか片方のポリゴンがひとつの囲われたポリゴンでなく、抜こうとしているポリゴンが境界エッジからはみ出している場合があると思います。

どういうことか画像で説明すると、
ss091121_000186.jpg
この場合、片方(平面)が開いたポリゴンで、もう片方が閉じたポリゴン。
境界エッジの内側にいるので、
ss091121_000187.jpg
きれいに抜くことができます。

これを、境界エッジの少し外側、
ss091121_000188.jpg
つまり、少しだけはみ出した状態でブーリアンを行います。

ss091121_000189.jpg
見事に失敗です。

これは逆も言えますし、両方が開いたポリゴンであっても起こります。
なので、単純にこの状況を改善してやれば、成功します。


解決策としては、開いたポリゴンを、無理やり閉じたポリゴンにしてやる、
もしくは、境界エッジに重ならないようにエッジを広げてあげれば成功します。
そのあとで望みの形に編集します。
ss091121_000190.jpg
まず、エッジを広げて境界エッジに収まるようにする。

ss091121_000191.jpg
その状態でブーリアン。
ss091121_000192.jpg
あとは伸ばした不要なポリゴンを削除すれば完成。


この方法で、ほぼ回避ができるかと思います。
それでも、どうしても成功しない場合は、
Mayaを再起動してみてください。直ったりします。
この辺はMayaのバグなのか、作業が進行するとよく起こる現象です。意外とこれが一番近道だったりしますが、ご愛嬌ということで。


それと、ひとつ便利なMEL。重なっている部分にエッジを追加してくれます。原理はブーリアンと同じ。
http://www.creativecrash.com/maya/downloads/scripts-plugins/modeling/poly-tools/c/jhpolystencil

2 件のコメント:

  1. SECRET: 0
    PASS: 35f504164d5a963d6a820e71614a4009
    こんにちは。twitterのsona99です。
    booleanに関しては、以前のtransferAttributeの記事がとても参考になりました。
    booleanの第一条件は「適用するオブジェクトが多様性を満たす」ことだそうで、
    そのために穴や、法線を意識する必要があるみたいです。
    私は、それでもどうしてもbooleanできない場合は、適用するフェースだけをExtractしてからかけたりしています。

    返信削除
  2. SECRET: 0
    PASS: 74be16979710d4c4e7c6647856088456
    そうですね。ブーリアンを使うと法線がよく壊れるのでtransferAttribute使うとやりやすいです。
    Extractすると気持ち演算が早くなる気がしますね。

    返信削除