ブール演算オブジェクトは、ブール演算を一度または複数回実行して 2 つ以上のオブジェクトを結合したものです。ProBoolean には、複数オブジェクトを一度に結合する機能など幅広い機能があり、各機能は異なるブール演算を使用します。
また ProBoolean は、ブール演算結果を四角形の面に自動的に細分化できます。これにより、メッシュスムーズおよびターボスムーズを使用したエッジのスムージングに適した結果が得られます。
ProBoolean および ProCutter は、テクスチャ座標、頂点カラー、マテリアル(オプション)、マップ(オプション)をオペランドから最終的な結果に渡します。生成された面にオペランド マテリアルを適用することも、元のマテリアルを保持することもできます。オリジナルのオペランドのいずれかにマテリアル マップまたは頂点カラーがある場合は、オペランドから生成された面はそのグラフィック アトリビュートを保持します。ただし、テクスチャ座標または頂点カラーがある場合は、共面を削除することができないため、結果のメッシュ品質は低下します。ProBoolean 演算の実行後にテクスチャを適用することをお勧めします。
ProBoolean は、マテリアル適用時の 2 つのオプションを提供します。このオプションは[パラメータ](Parameters)ロールアウトの[マテリアルを適用](Apply Material)グループで使用できます(上図参照)。既定値の方法は[オペランド マテリアルを適用](Apply Operand Material)で、生成される面にオペランド マテリアルが適用されます。一方、[元のマテリアルを保持](Retain Original Material)を選択すると、生成される面にはブール演算で最初に選択されたオブジェクトのマテリアルが強制的に適用されます。
以下の図に、2 つのオプションの違いを表します。赤いボックスと青い球がある状態からブール演算を始めます(左図)。ボックスをベース オブジェクトとして使用し、球を除去するオペランドとして使用します。既定値の[オペランド マテリアルを適用](Apply Operand Material)オプションを使用すると、中央の図のような結果になります。[オリジナル マテリアルを保持](Retain Original Material)を選択すると、右側の図のような結果になります。
左: 元のオペランド
中央: [オペランド マテリアルを適用](Apply Operand Material)がアクティブの状態
右: [元のマテリアルを保持](Retain Original Material)がアクティブの状態
ProBoolean は、[和](Union)、[交差](Intersection)、[差](Subtraction)、[合成](Merge)、[アタッチ](Attach)、[挿入](Insert)をサポートします。和、交差、差の 3 つの操作はそれぞれ、標準のブール演算合成オブジェクトの対応する操作と同様の効果になります。合成操作は、元のポリゴンを取り除くことなく 2 つのメッシュを交差して結合します。これは、メッシュの一部を選択して取り除く必要がある場合に便利です。
アタッチ操作は、複数のオブジェクトをそれぞれのトポロジに影響を及ばさずに、1 つのオブジェクトに合成する操作です。各オブジェクトは、基本的に合成したオブジェクト内でも個別の要素として保たれます。挿入操作は、オペランド B からオペランド A のバウンディング シェイプを除去し、切り取った箇所をオペランド A に置き換える操作です。
また、ブール演算では、[形跡](Imprint)と[クッキー](Cookie)の 2 種類の操作がサポートされます。[形跡](Imprint)オプションは、エッジを削除または追加することなく、オペランドと元のメッシュの間に交差エッジを挿入します(刻み付けます)。[形跡](Imprint)はベース オブジェクト(選択された元のオブジェクト)の面を分割し、メッシュに新しいエッジを追加します。クッキーは指定したブール演算を実行しますが、オペランドの面を元のメッシュに追加しません。このタイプは、メッシュに穴を開ける場合や、別のオブジェクトの内部のメッシュの一部を取得する場合に使用します。
[修正](Modify)パネルから ProBoolean オブジェクトまたは ProCutter オブジェクトにアクセスすると、既存のセットにオペランドを追加することができます。また、オペランドを削除したり変換(移動、回転、スケールなど)することもできます。
ProBoolean と ProCutter にはデシメーション機能が組み込まれています。一般に、ブール演算と統合するとデシメーションの品質は向上します。この理由は、ブール演算オブジェクトにはどのエッジが交差エッジであるかということに関するメタ情報が含まれているためです。デシメーション機能はこの情報を認識して、交差エッジを適切に維持するために使用します。
文字 オブジェクトにブール演算を実行する場合には、文字が相互に交差しないこと、またそれぞれの文字が閉じていることを確認してください。また、自己交差するロフト オブジェクトや NURBS オブジェクトを作成してしまうという間違いも起こりやすいものです。ロフト オブジェクトでは、終点とロフト カーブが曲がっているポイントをチェックします。
ProBoolean 合成オブジェクトを作成するには:
[修正](Modify)パネルがアクティブになると、[選択を開始](Start Picking)ボタンをクリックして追加するオブジェクトを選択することで、選択中の ProBoolean オブジェクトにオブジェクトを追加できます。
例: サブオブジェクト操作を含む既存のブール演算を変更するには:
ProBoolean では、さまざまなブール演算を同時に組み合わせることができることに加え、ブール演算オブジェクトを設定しながらまたは設定後にオペランドの組み合わせ方法を変更することもでき、非常に柔軟に操作が行えます。
上: フロント ビューポート
下: パース ビューポート
結果は球とボックスの交差、つまり、両方のオブジェクトが占有する共通ボリュームを表す単一オブジェクトとなります。この例では、球とボックスの重なった部分です。この時点ではいずれのオブジェクトにもマテリアルはありませんが、結果にはボックスの作成時に 3ds Max がランダムに割り当てた既定値の色が使用されます。
[選択開始](Start Picking)がアクティブ(カラー スキームに応じて青または黄色)になっていることに注目してください。これは、ブール演算オブジェクトに組み込むオブジェクトを引き続き選択することができ、操作を進めていく過程で操作を変更することもできることを意味しています。
結果は、球と大きいボックスの交差と小さなボックスの和(追加)となります。ここでも、結果には元のオブジェクトのカラーが割り当てられます。
前のブール演算結果から、円柱の交差ボリュームが除去されます。
ブール演算オブジェクトの作成に使用したオペランドと操作のすべての履歴が、[パラメータ](Parameters)ロールアウトの最下部の階層ビュー リストに表示されます。Box01 のブール演算は[和](Union)で開始され、Sphere01 が[交差](Intersection)で組み込まれ、Box02 が[和](Union)で組み込まれ、最後に Cylinder01 が[差](Subtraction)で組み込まれました。
このリストと[サブオブジェクト操作](Sub-object Operations)領域にある他のコントロールを使用して結果を変更できます。
操作を変更した結果、円柱が減算オブジェクトではなく加算オブジェクトとしてブール演算オブジェクトに表示されます。また、リスト内の円柱のエントリは[和 - Cylinder01](Union - Cylinder01)に変更され、円柱のブール演算が[和](Union)に変更されたことを示しています。
また、操作の順序を変更することがができます。この操作は結果に影響を与えます。
[操作の順序を変更](Reorder Ops)の横にある編集可能フィールドに、リスト内でのこの項目の位置(1)が表示されます。
[交差 - Sphere01](Inter - Sphere01)項目がリストの最後に移動します。
ブール演算オブジェクトが大幅に変わります。リスト内の変更後の順番は、どのように現在のシェイプが作成されたかを表します。2 つのボックスと円柱は[和](Union)によって結合され、それぞれのボリュームを加算しています。その結果に対して、球が[交差](Intersection)でその結果に組み入まれ、4 つのオブジェクトすべてで共有されるボリュームのみが残ります。
変更された ProBooleanオブジェクトを選択すると、モディファイヤ スタックには 1 つの展開可能な項目[ProBoolean]が表示されます。
この項目を展開する([+]アイコンをクリックする)と、1 つの従属ブランチ[オペランド](Operands)が表示されます。
ProBoolean オブジェクト内のオペランドをオブジェクト全体に影響を与えずに変換するには、[オペランド](Operands)ブランチをクリックしてハイライト表示します。
これで、ビューポート内で標準的な選択方式を使用するか、[パラメータ](Parameters)ロールアウトの下部にある階層ビュー リストにある名前をハイライト表示することで、1 つまたは複数のオペランドを選択できます。
1 つのオペランドだけが選択されている場合は、(名前ではなく)オブジェクト タイプが別のスタック エントリとして[ProBoolean]エントリの下に表示されます。この項目をクリックすると、[修正パネル](Modify panel)のオペランドのパラメータに直接アクセスできます。
[パラメータ](Parameters)ロールアウト [表示](Display)が[結果](Result)に設定されている場合、オペランドを選択すると、ビューポートにオペランドの座標軸または変換ギズモが表示されますが、既定値ではオペランド自体は表示されません。
オペランドを表示するには、[パラメータ](Parameters)ロールアウト [表示](Display)を[オペランド](Operands)に設定します。
オペランドの表示/非表示に関係なく、3ds Max のその他すべてのオブジェクトと同様に、オペランドはオペランドのサブオブジェクト レベルで変換およびアニメートすることができます。
減算されるオペランドの位置をアニメートして ProBoolean オブジェクトを変更
ベース オブジェクト(階層ビュー リストの最初のオブジェクト)を変換またはアニメートすることもできます。
ラジオ ボタンを選択して、選択する次のオペランドをブール演算オブジェクトへ転送する方法を指定します。
これらの設定で、ブール演算オペランド同士が物理的にどのように相互に影響するかを決定します。
左: 元のオブジェクト(ボックス)とオペランド(小さいボックス)
中央: [和](Union)操作。小さいボックスの一部が除去されています。
右: [合成](Merge)操作。交差部分に新しいエッジが表示されています。
[アタッチ](Attach)(左)と[和](Union)(右)で結合されたボックスと球のプリミティブ
実際は、[挿入](Insert)は 1 番目のオペランドを液体のボリュームとして扱うため、挿入されたオペランドに穴または何らかの「液体が入る」形のものがあれば、「液体」はそのボリュームに流れ込むことになります。下の図は、この作用の例を示しており、左がシェーディングされたジオメトリで、右が対応するワイヤフレームです。
液体に挿入されたボウル。ボウルに穴が開いていたり傾いていれば、液体はその空洞の中に流れ込みます。
左: 元のオブジェクト(ボックス)とオペランド(テキスト)
中央: 標準の[差](Subtraction)操作
右: [形跡](Imprint)をオンにした状態での[差](Subtraction)操作
1. 元のオブジェクト(ボックス)とオペランド(球)
2. 標準の[差](Subtraction)操作
3. [クッキー](Cookie)をオンにした状態での[差](Subtraction)操作
4. 標準の[交差](Intersection)操作
5. [クッキー](Cookie)をオンにした状態での[交差](Intersection)操作
次の表示モードのいずれかを選択します。
また、[結果](Result)を選択すると、モディファイヤ スタックの[ProBoolean]レベルもアクティブになります。
また、[オペランド](Operands)を選択すると、モディファイヤ スタックの[オペランド](Operands)レベルもアクティブになります。
また、多くのオペランドを選択する場合は、このモードを選択して結果を毎回再計算しないようにします。完了後に[表示](Display)の設定を[結果](Result)に戻します。
次のマテリアル適用モードのいずれかを選択します。
この領域は、階層ビュー リスト内でハイライトされたオペランドを操作します(以下を参照)。
[パラメータ](Parameters)ロールアウトの最下部に表示される階層ビューには、選択したメッシュを定義する全ブール演算のリストが表示されます。新しいブール演算を実行するたびに、3ds Maxはリストに新しい項目を追加します。
オペランドを階層ビュー リスト内でクリックすると、ハイライト表示され、これが修正対象になります。リスト内の複数の連続した項目をハイライト表示するには、最初の項目をクリックし、Shift を押したまま最後の項目をクリックします。複数の連続していない項目をハイライト表示するには、Ctrl を押したまま項目をクリックします。リスト項目のハイライト表示を解除するには、Alt を押したままハイライト表示された項目をクリックします。
モディファイヤ スタックの[ProBoolean]レベルでは、ハイライト表示されている項目に対するサブオブジェクト操作のみを実行できます。[オペランド](Operands)サブオブジェクト レベルでは、ハイライト表示されているオペランドの変換と、サブオブジェクト操作が実行できます。詳細は、「モディファイヤ スタック」を参照してください。
この領域のオプションは、変更を加えた後にブール演算オブジェクトに対して更新を実行するタイミングを決定します。以下のいずれかを選択します。
1. [デシメーション %](Decimation %)を 0.0 に設定
2. [デシメーション %](Decimation %)を 30.0 に設定
3. [デシメーション %](Decimation %)を 60.0 に設定
4. [デシメーション %](Decimation %)を 80.0 に設定
この領域のオプションを使用すると、ブール演算オブジェクトの四角形面分割が有効になります。これは、オブジェクトをサブディビジョン サーフェスの編集とメッシュのスムージングに適した状態にします。また、オブジェクトを編集可能ポリゴン形式への変換に適したものにします。
このオプションの詳細については、「四角形メッシュおよびスムージング」のトピックを参照してください。
このオプションは、平面上のポリゴンの処理方法を決定します。以下のいずれかを選択します。