ブール演算オブジェクトは、複数のオブジェクトにブール演算を実行して、1 つのメッシュに合成します。
ヒント: また、代わりのワークフローや他のオプションを含んでいる
ProBoolean を、合成オブジェクトの作成に使用できます。ただし大半の目的に対しては、新しい倍精度ブール演算アルゴリズムが合成オブジェクトを正確にアセンブリを行う最も強力で直感的な方法になります。
インタフェース
[ブール演算パラメータ](Boolean Parameters)ロールアウト
オペランドおよび演算アイコンの例
- [オペランドを追加](Add Operand)ボタン
- クリックすると、ビューポートまたはシーン エクスプローラから合成オブジェクトにオペランドを追加できます。
- [オペランド](Operands)リスト
- 合成オブジェクトのオペランドが表示されます。色つきのアイコンは、[オペランド パラメータ](Operand Parameters)ロールアウトに表示されている現在のブール演算を示します。各オペランドの表示/非表示は、目のアイコンをクリックして切り替えることができます。
オペランドを右クリックして、[オペランドを削除](Remove Operand)、[新規ブール演算を作成](Create New Boolean)、[名前変更](Rename)、[使用不能にする](Disable)、[ソロ](Solo)のコマンドにアクセスできます。[新規ブール演算を作成](Create New Boolean)を使用すると、合成オブジェクト内にサブブール演算を作成できます。
- [オペランドを削除](Remove Operand)
- 合成オブジェクトから選択されたオペランドを削除します。
- [ブール演算エクスプローラを開く](Open Boolean Explorer)
- [ブール演算エクスプローラ](Boolean Explorer)ウィンドウを開きます。詳細については、「ブール演算エクスプローラ」を参照してください。
[オペランド パラメータ](Operand Parameters)ロールアウト
- 和
- 両方のオブジェクトのボリュームを統合します。ジオメトリの交差する部分または重なり合う部分は破棄されます。ビューポートに表示される場合、和が適用されるオペランドは輪郭が緑で表示されます。
和演算
- [交差](Intersect)
- 両方の元のオブジェクトに共通する、重なり合ったボリュームを交差します。残りのジオメトリは破棄されます。ビューポートに表示される場合、交差が適用されるオペランドは輪郭が黄色で表示されます。
交差演算
- 除算
- ベース(選択された元の)オブジェクトから交差部分のボリュームを取り除きます。この演算は差ともいいます。ビューポートに表示される場合、減算が適用されるオペランドは輪郭が青で表示されます。
減算演算
- 合成
- 元のポリゴンを取り除くことなく 2 つのメッシュを交差して結合します。オブジェクトが交差している部分には新しいエッジが作成されます。これは、メッシュの一部を選択して取り除く必要がある場合に便利です。ビューポートに表示される場合、合成が適用されるオペランドは輪郭が紫で表示されます。
- アタッチ
- 複数のオブジェクトをそれぞれのトポロジに影響を及ばさずに、1 つのオブジェクトに合成します。各オブジェクトは基本的に、合成したオブジェクト内でも個別の要素として保たれます。ビューポートに表示される場合、アタッチが適用されるオペランドは輪郭がオレンジで表示されます。
- 挿入
- オペランド B (新たに追加されたオペランド)のバウンディング シェイプをオペランド A (現在の結果)から差し引いて、演算 B のシェイプのうち演算の影響を受けないものを残します。ビューポートに表示される場合、挿入が適用されるオペランドは輪郭が赤で表示されます。
実際は、[挿入](Insert)は 1 番目のオペランドを液体のボリュームとして扱うため、挿入されたオペランドに穴または何らかの「液体が入る」形のものがあれば、「液体」はそのボリュームに流れ込むことになります。
- 形跡
- このオプションを有効にすると、エッジを削除または追加することなく、オペランドと元のメッシュの間に交差エッジが挿入されます(刻み付けられます)。[形跡](Imprint)はベース(選択された元)オブジェクトの面を分割し、メッシュに新しいエッジを追加します。
[形跡](Imprint)が有効な場合の和演算
- クッキー
- [クッキー カッター](Cookie Cutter)を有効にすると、指定したブール演算が実行されますが、オペランドの面は元のメッシュに追加されません。選択したオペランドの面はブール演算結果には追加されません。このオプションは、メッシュに穴を開ける場合や、別のオブジェクトの内部のメッシュの一部にアクセスする場合に使用します。
注: ブール演算オブジェクトにクッキー カッター演算を実行すると、メッシュは閉じた多様体、つまり「密閉」ではなくなります。以降の演算は、内部と外部の区別のない、開いた多様体のルールに従います。
[クッキー](Cookie)が有効な場合の和演算
[マテリアル](Material)領域
- [オペランド マテリアルを適用](Apply Operand Material)
- 追加されたオペランドのマテリアルを合成オブジェクト全体に適用します。
- [元のマテリアルを保持](Retain Original Material)
- 既存のマテリアルが適用された合成オブジェクトを保持します。
[表示](Display)領域
- 結果
- ブール演算の最終結果を表示します。
- オペランド
- ブール演算が実行されていないオペランドを表示します。オペランドの輪郭は、現在実行されているブール演算を示すカラーで表示されます。
- 選択されたオペランド
- 選択したオペランドを表示します。オペランドの輪郭は、現在実行されているブール演算を示すカラーで表示されます。
- [シェーディングで表示](Display as Shaded)
- 有効な場合は、ビューポートにシェーディングされたオペランドが表示されます。このオプションを有効にすると、色分け表示がオフになります。
手順
ブール演算合成オブジェクトを作成するには:
- ビューポート内で目的のソース オブジェクトを作成し、合成します。
- ベース オブジェクトを選択します。
- [ブール演算](Boolean)をクリックします。[ブール演算パラメータ](Boolean Parameters)ロールアウトにあるオペランド リストに、オペランドの名前が表示されます。
- [ブール演算パラメータ](Boolean Parameters)ロールアウトの[オペランドを追加](Add Operand)ボタンをクリックして、ビューポートまたはシーン エクスプローラから別のオブジェクトを選択し、合成オブジェクトに追加します。
- [パラメータ](Parameters)ロールアウトで、実行するブール演算([和](Union)、[交差](Intersection)、[減算](Subtraction)、[合成](Merge)、[アタッチ](Attach)、または[挿入](Insert))を選択し、必要に応じて[形跡](Imprint)または[Cookie](Cookie)オプションを有効にします。
オペランドのオブジェクトは、ブール演算オブジェクトのサブオブジェクトとして残ります。パラメータを変更し変換ツールを使用するには、サブオブジェクトをダブルクリックします。ブール演算のオペランド サブオブジェクトの作成パラメータを修正すると、いつでもオペランドのジオメトリを調整してブール演算の結果を変更したりアニメートしたりできます。
複数のオブジェクトを含む単一合成オブジェクトを作成、修正するには:
この例ではボックスを作成し、穴を 2 つ切り取ります(1 つは球で、もう 1 つは円柱で切り取ります)。後で球または円柱を変更できるように、次の手順を使用して合成オブジェクトをアセンブリします。
- 前の項の手順に従って、ブール演算合成オブジェクトを作成します。元のオブジェクト(ボックス)がブール演算に変換され、ベース オブジェクトとして指定されます。
- ブール演算オブジェクトの選択を解除します。球を作成し、まだ位置が決まっていない場合は配置します。
- ブール演算オブジェクトを選択します。 をクリックして[修正](Modify)パネルを表示するか、[合成オブジェクト](Compound Objects)で[ブール演算](Boolean)を再クリックします。
- [オペランドを追加](Add Operand)をクリックし、ビューポートまたはシーン エクスプローラで球をクリックします。
- ブール演算オブジェクトの選択を解除します。円柱を作成し、まだ位置が決まっていない場合は配置します。
- ブール演算オブジェクトを選択します。 をクリックして[修正](Modify)パネルを表示するか、[合成オブジェクト](Compound Objects)で[ブール演算](Boolean)を再クリックします。
- [オペランドを追加](Add Operand)をクリックし、ビューポートまたはシーン エクスプローラで円柱をクリックします。
- 球オブジェクトのパラメータを修正する場合は、オペランド リストから球オブジェクトを選択します。
- これで、ブール演算の名前が付いたエントリがスタック表示に 2 つできました。下側のエントリを選択します。球オブジェクトがオペランド リストに表示されます。
- オペランド リストから[球](Sphere)を選択します。球オブジェクトのパラメータを使用するには、モディファイヤ スタック表示で球オブジェクトの名前をダブルクリックします。ブール演算合成オブジェクトでは、パラメータを変更したり、変換ツールを使用したり、どのオペランドでもアニメートすることができます。
ブール演算とマテリアル
ブール演算オブジェクトを作成するたびに、マテリアルがオリジナルのメッシュから継承されます。
次にオペランドを追加すると、オペランドの元のマテリアルを使用するか、ブール演算合成オブジェクトのマテリアルを維持するかを選択できます。[元のマテリアルを保持](Retain Original Material)を選択すると、マテリアルの ID が一致します。[オペランド マテリアルを適用](Apply Operand Material)を選択した場合は、追加したオペランドのマテリアル ID は元のブール演算メッシュとは異なります。
マテリアル ID の割り当ては、オペランドを追加したときのみに発生します。ブール演算メッシュでオペランドを追加すると、マテリアル ID は変更できません。ただしオペランドを追加したら、マテリアル エディタに移動してブール演算オブジェクトからマテリアルを取得できます。なお、これはマルチサブオブジェクト マテリアルになります。元のメッシュでマテリアルを変更すると、ブール演算メッシュ マテリアルにも影響します。
ブール演算を使用するためのベスト プラクティス
特定のジオメトリでは、ブール演算アルゴリズムで予期しない結果が生じることがあります。このような可能性を制限には、以下に説明する方法をお試しください。
サーフェス トポロジ
ブール演算では、オペランドのサーフェス トポロジが完全である必要があります。つまり、面が欠けていたり、重なっていたり、頂点が連結されていないことがあったりしてはなりません。サーフェスは連続し閉じている必要があります。
ブール演算アルゴリズムは、この要件を満たさないオペランドの修正を試みます。ただし望ましい結果が得られるとは限らず、サーフェスを手動で修正する方が適している場合もあります。
ジオメトリの穴を確認するには、[STL-チェック]モディファイヤまたは[計測]ユーティリティを使用します。穴を埋めるには、[キャップ ホール](Cap Holes)モディファイヤを使用します。
面の法線
反転した法線は予期せぬ結果の原因になるので、サーフェスの面法線は一貫している必要があります。隣接サーフェスを反転するときにサーフェスが 1 方向を向いている場合も、問題となることがあります(CAD プログラムから読み込まれたジオメトリに共通する事項)。ブール演算アルゴリズムはこれらの面の修正を試みますが、手動で修正する方が適している場合もあります。
法線問題を調べるには、ビューポートでシェーディングをオンにし、裏返しされたように見えるオブジェクトに注意を払います(そうしないと、不正確になります)。[編集可能メッシュ](Editable Mesh)(面) [サーフェス プロパティ](Surface Properties)ロールアウト [法線](Normals)領域の[表示](Show)をオンにすることもできます。法線を修正するには、ここで行うか、[法線モディファイヤ](Normal modifier)を使用します。
平面
メッシュは、すべての面が平面になるように、つまり面で使用される各頂点が同じ平面上にあるように構築する必要があります。面が平らでない(ポテトチップのような)形状に歪むと、ブール演算エラーの原因になります。ブール演算アルゴリズムでは、演算の適用時にこれらの面を平らな部分に分割しようとしますが、モデリングの際にこのような構造を回避することを強くお勧めします。そうでない場合、望ましくない結果が生じる原因になります。
重複する要素
ブール演算は、メッシュの内側と外側を明確に区別して実行されるため、重複するメッシュでは、不適切な結果を生じる可能性があります。たとえば、ブール演算機能をオンにせずに、2 つの重なっているオブジェクトで[集約](Collapse)ユーティリティを使用した場合、ブール演算のオペランドとしては不適切なオブジェクトが作成されます。このことは、自己重複する[ティーポット](Teapot)プリミティブ(すべてのパーツがオン)でも問題になります。
このようなオブジェクトをブール演算のオペランドとして使用する必要がある場合、各コンポーネントに分解してから、ブール演算を使用して組み合わせることによって、単一の重複のないメッシュとして再構築することができます。
反転メッシュの操作
ブール演算では、「反転メッシュ」(法線を反転することで裏返しにされたメッシュ)に対し理想的な結果がいつでも得られるとは限りません。問題は、反転されたメッシュの内側の領域は「外側」として正しく表示される一方で、外側の領域も同様に表示される点です。この問題に対処するには、メッシュを反転せずに、非常に大きなボックスまたは他のプリミティブをメッシュの中心に(ただし、接しないように)作成し、ブール演算でメッシュの減算を行います。結果を編集可能メッシュに変換して、ボックスの面を削除します。こうすると、ブール演算と互換性のある、正しく反転されたメッシュが生成されます。
位置合わせの問題
ブール演算オペランド 2 つが実際には交差せずにぴったり並んでいると、ブール演算操作で不適切な結果が生じる場合があります。このエラーはまれにしか発生しませんが、発生した場合はオペランドを少し重複させて修正できます。
オペランド間の相対的な複雑さの維持
ブール演算は、2 つのオペランドの複雑さが同程度である場合に、最適な結果が得られます。たとえば、セグメントのないボックスからテキスト(多数の面と頂点からなる複雑なオブジェクト)を減算すると、多数の細長い面が形成され、レンダリング エラーが発生する可能性が高くなります。ボックス セグメントの数を増やすと、結果が改善されます。オペランド間で、複雑さを同程度に保つようにしてみてください。
共有面および共有エッジ
以前のバージョンのブール演算アルゴリズムでは、オブジェクトが重なっている必要がありました。オブジェクト 2 つが重ならずに、単にエッジとエッジ、または面と面が接触しているだけであれば、ブール演算は失敗します。
ブール演算アルゴリズムでは、重ならないオブジェクトも可能になりました。共有面、共有エッジ、および共有頂点は問題ではなくなりました。他のオブジェクトに完全に内包され、エッジがまったく交差しないオブジェクトでも、ブール演算合成オブジェクトを作成することができます。
複数のオブジェクトを使用してブール演算合成オブジェクトを作成するには、「[集約](Collapse)ユーティリティ」も参照してください。