記事一覧

MOP Booleans Kit for MODO 11 の使い方

MOP Booleans Kit for MODO 11


プロシージャルモデリングによるブール演算を簡単に行うプラグインとして、MOP Boolenas Kit for MODO 11(以降MOP Booleans)があります。$50の有料プラグインですが、手軽にブール演算が行えるので、個人的にはおすすめです。
なお、プロシージャルモデリングのメリットとして「後から簡単に修正可能」な点がありますが、それが必要無い場合(ダイレクトモデリングでOKな場合)は、MODO JAPAN GROUPでも紹介されているBools Kitという無料のプラグインがおすすめです。

MOP Booleansは、Ctrl+Shift+Xで表示されるパイメニューから操作が行えるのですが、MOP Booleansの仕組みを理解していないと、思い通りの結果にならずに混乱すると思います。
また、パイメニューにはMOP Booleansの一部の機能しか割り当てられていないので、ここではMOP Booleansの簡単な仕組みと、パイメニュー以外からの操作方法を記載しておきます。
MOP Booleans パイメニュー


余談ですが、私の環境ではMOP Booleansのパイメニューを使ったときに、以下のようなエラーメッセージが頻繁に出てきます。4Kディスプレイでスケールを150%表示にしている事が原因かもしれませんが、対象メッシュの上にマウスカースルを重ねた状態で操作しても、対象のメッシュが正しく認識されていないようです。(そういう理由もあり、私はMOP Booleansのパイメニューはあまり使用していません)
MOP Error message


MOP Booleansを使うにあたり、パースペクティブビューの表示を「Model Fusion」にしておくと、MOP Booleansの結果を確認しやすくなります。(またデフォルトの状態に戻したければ、Model Baseを選択すればOK)
MODO Setting


MOP Booleansの使い方


まずは、ベースとなるメッシュを作成します。
今回はボックスを作成しました。(アイテムツリーのMeshに作られています)
メッシュ作成


MOP Booleansの最初のステップは、Create MOP Booleansを実行することです。
ポリゴン選択モード(キーボードの3を押す)にして、ベースにするメッシュのポリゴンを1つ選択し、そのポリゴンの上にマウスカーソルを置いた状態でCtrl+Shift+Xキーを押します。
パイメニューが表示されるので、Create MOP Boolenasを選択します。
MOP Boolean作成


これで、アイテムツリーに「PP_MOP_BoolBuild」が追加され、MOP Booleansを使う準備が整いました。なお、選択したメッシュはアイテムツリーの「Mesh」から「PP_MOP_BoolBuild」配下に移動されています。(そのため、アイテムツリーのMeshの文字色がグレーになっている)
MOP BoolBuild


MOP Booleansを使うために一番重要なのが、このPP_MOP_BoolBuild配下の構造です。この構造さえ理解してしまえば、簡単にMOP Booleansを使いこなせるようになると思います。
ポイントとしては、以下のA~Eの5つの役割を理解すればOKです。

A: MOP_Build
プロシージャルモデリングによる最終的なブール演算の結果が作成されます。

B: MOP_Base
ブール演算のベースになるメッシュが格納される場所です。
最初にパイメニューのCreate MOP Boolenasで選択したメッシュは、このMOP_Baseに格納されています。(アイテムツリーでもMOP_Baseの文字色が黒字になっているのが分かると思います)

C: MOP_Sub、MOP_AltSub系
ブール演算の「差」で利用するメッシュを格納する場所です。Sub、AltSub、Alt2Sub、Alt3Subの4種類存在していますが、いずれも「差」演算で利用するメッシュを格納する場所です。4つの使い分けについては、後続で解説します。

D: MOP_Union、MOP_AltUn系
ブール演算の「和」で利用するメッシュを格納する場所です。こちらも、Cと同様に4つの枠が用意されています。

E: MOP_Intersect、MOP_AltInter系
こちらもCやDと同じ構造で、ブール演算の「積」で利用するメッシュを格納する場所です。
MOP Booleans 構成


あとは、C~Eに対して、ブール演算したいメッシュを追加すれば、A: MOP_Buildに演算結果が表示されるようになっています。
試しに、「差」演算を行うメッシュを格納する「MOP_Sub」に円柱を作成すると、MOP_BaseのメッシュがMOP_Subの円柱でくり抜かれているのが分かると思います。
ポイントとしては、ベースになるボックスは「MOOP_Base」に、差演算を行う円柱は「MOP_Sub」に作成しているという点です。
Sub


さらに「差」演算を行おうとして、「MOP_Sub」にボックスを追加すると以下のように表示が崩れる場合があります。これは、「演算に使用するオブジェクトが重なっている場合」に発生します。
ここでは、差演算で利用する「円柱と、新しく追加したボックス」の一部が重なっているので、その部分の表示がおかしくなっています。
Sub重複


このような、演算に使用するオブジェクトが重なる場合に、Alt系を利用します。(重ならない場合は、同じMOP_Subなどを使えばOK)

新しく追加したボックスを「MOP_AltSub」に移動すれば正しく表示されるようになります。なお、このMOP_AltSubは、MOP Booleansのパイメニューの「Alternate Subtract」で利用される場所です。(Alt2~、Alt3~はパイメニューには表示されていません)
※メッシュを格納する場所は普通のMeshフォルダと同じなので、ポリゴン選択モードなどで対象のメッシュを選択して、Ctrl+X、Ctrl+Vなどで簡単に移動させることができます。

後は、Altでもオブジェクトが重なる場合には、Alt2、Alt2でも重なる場合にはAlt3を利用するという形になります。
AltSub


MOP_Drivers配下は、普通のメッシュが格納されているだけなので、移動・回転・拡大縮小、ベベル操作など、通常のメッシュに対する操作がそのまま利用できます。
メッシュを編集すると、その結果は最終的なプロシージャルモデリングのブール演算結(MOP_Build)に反映されます。
下は、MOP_AltSubのボックスに対してベベル操作を行ったところです。
後から編集


差演算と同様に、MOP_Union系には「和」演算で利用するメッシュを追加できます。
和演算よりも、差演算の方が後で行われるため、「和演算の結果に対して、差演算」が行われるようになります。
Union


同様に、MOP_INtersect系には「積」演算で利用するメッシュを追加します。
Intersect


全ての演算結果は、MOP_Buildに表示されるので、MOP_Buildのオブジェクトを選択すると、演算後の形として選択されます。
MOP Build


なお、MOP_Buildに表示されている結果は「プロシージャルモデリングの演算結果」のため、直接ダイレクトモデリングのオペレーション(ベベル操作など)は行う事ができません。
MOP_Buildの結果に対して編集を加えたい場合は、プロシージャルモデリングとして操作を追加するか、演算結果を普通のメッシュに変換(フリーズ)して編集を行う必要があります。
プロシージャルモデリング


MOP Booleansの演算結果をメッシュに変換する方法


プロシージャルモデリングはMODO上でしか利用できないので、MOP Booleansの結果を他のソフトに連携する場合などは、通常のメッシュに変換する必要があります。
演算結果(MOP_Build)をメッシュに変換する方法はいくつかあるのですが、Ctrl+C、Ctrl+Vによるコピー&ペーストを使うと簡単です。

  1. 演算結果のMOP_Buildを選択
  2. ビューポート上で対象オブジェクトを選択し、コピー(Ctrl+C)
  3. 格納先のMeshフォルダを選択して貼り付け(Ctrl+V)
メッシュのFreeze


これで、MOP Booleansの演算結果を通常のメッシュに変換できました。
メッシュに変換した後は、通常の(ダイレクトモデリング用の)操作も行えますし、objファイルなどに書き出すことも可能です。
Freeze後の編集


参考情報


MOP Booleansのデフォルトでは、ブール演算に使用する各メッシュは非表示になっていますが、「MOP_Driversの目のアイコン」をクリックして表示・非表示を切り替えることもできます。
※MOP Booleans パイメニューの「Toggle Visibility」でも同じ事ができます。
MOPオブジェクトの表示



ブール演算結果とマテリアル


ブール演算後に、演算結果のマテリアルがどのように適用されるかを載せておきます。
ここでは分かりやすいように、円柱とボックスによる演算を行っています。
BOOL演算ベース


差演算を行った場合、削られた場所に「削ったオブジェクトのマテリアル」が適用されます。
BOOL演算Sub
和演算の場合は、重なっている場合とほとんど変わりません。
BOOL演算Union

積演算の場合は以下のようになります。
なお、プロシージャルモデリング結果のポリゴンに対して直接マテリアルを設定することはできないため、マテリアル設定はブール演算対象の(MOP_Drivers配下の)各メッシュや、各メッシュのポリゴンに対して行う事になります。
BOOL演算Intersect

関連記事

スポンサーリンク

  

コメント

コメントの投稿

非公開コメント