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

2009/11/14

Mayaのレイアウトを変更するには、左側にあるレイアウトボタンを押してやればいいが、
デフォルトの数が、6個に設定されていてちょっと物足りなく感じる。

ボタンの数を増やすには、
C:\Program Files\Autodesk\Maya2009\scripts\startup
フォルダにある、toolbox.melの内容をちょっとだけ改良してやればいい。

global int $kNumberOfQuickLayoutButtons = 6;



になっている部分を、

global int $kNumberOfQuickLayoutButtons = 10;



という風に適当に値を変更する。

そうすれば、Mayaを立ち上げたときにレイアウトパネルのストックが10個になる。
ss091114_000184.jpg


※注意
実行の際はバックアップをとって行ってください。
起動しなくなる可能性があります。

2009/11/07

iida G9 Final

それではiidaG9の最終的なの絵作りをしていきます。

今回はVRayProxyを使って、大量のオブジェクトをシーンに配置してみようと思います。
VRayProxyを使うと大量のポリゴンがシーンに存在していても、メモリ不足の問題もなく出力できます。32bit環境だとうれしい機能です。


では、オブジェクトを配置するまえに、ダミーをまず配置します。
ss091107_000180.jpg
ランダムに回転とか加えて、重ならないように配置。
以前に紹介した方法でオブジェクトにダイナミクスを仕込みます。

ss091107_000179.jpg
落下。

20091107_1.jpg
ちょうど良いポイントでアングルハント。
ダミーのままレンダリングして被写界深度等もFIXさせます。

ダミーにVRayProxyをParentConstrainし、同じ位置に設定します。
VRayProxyはインスタンスコピーしすべてのダミーにコンストレインします。

ここまで設定したら、ダミーは非表示にしてレンダリング。

20091107_2.jpg
完成!
クリックで拡大表示です。


おまけ
20091107_3.jpg