ブール演算の問題の修正

ブール演算機能は、モデリング ツールボックスからアクセスできる強力な機能です。ただし、この機能の実行結果が予想どおりにならない場合があります。[ブール演算](Boolean)ボタンは、[作成](Create)パネルの[合成オブジェクト](Compound Objects)リストにあります。このボタンを使用して、オブジェクトの結合、除去、交差、切り取りを実行できます。以下に、問題とその解決方法を示します。

ヒント: ブール演算を行う前に、シーンを保存するか、[編集](Edit)メニュー [一時保存](Hold)を選択する必要があります。こうしておけば、予想どおりの結果が得られなかった場合、すばやく元の状態に戻すことができます。

問題と解決策

ブール演算オブジェクトが消える

ブール演算オブジェクトの折り目やリッジ

連続したブール演算の結果コンポーネントが消える

スプラインとブール演算操作

ブール演算操作のヒント

ブール演算オブジェクトが消える

一見交差しているように見えるが実際には交差していない 2 つのオブジェクトに対して、誤って[交差](Intersection)を実行した場合、オブジェクトが画面から完全に消えてしまうことがあります。どちらのオブジェクトも[オペランド](Operands)領域には表示されていますが、画面には表示されません。

  1. [元に戻す](Undo)ボタンをクリックして、選択を解除します。
  2. 右クリックして、ブール演算を終了します。
  3. 2 つのビューポート(たとえば[トップ](Top)と[レフト](Left))でオブジェクトをクリックして、交差していることを確認します。
  4. [ブール演算](Boolean)ボタンをクリックして操作をオンにし、追加されたオペランドをクリックします。
  5. 交差オブジェクトをクリックします。

ブール演算オブジェクトの折り目やリッジ

たとえば、ブール演算で、単純なボックスから複雑なフリーフォーム オブジェクトを除去した場合、面の数が非常に少ないオブジェクトと面の数がかなり多いオブジェクトの間に折り目やリッジが生じることがあります。

3ds Max は、除去する追加面が生じるように、ボックスのサーフェスを面分割します。しかし、残念なことに、生成される面は通常長細く、重なり合っていることがあります。このため、レンダリングしたときにシーン内に折り目やリッジが生じます。

ブール演算の前に、次の手順を試してください。

  1. 面の数が少ないオブジェクトを選択します。

    上記の例では、ボックスになります。

  2. 修正パネルで、除去の対象となるサーフェスの[長さセグメント](Length Segments)、[幅セグメント](Width Segments)、または[高さセグメント](Height Segments)の値を変更します。
  3. [合成オブジェクト](Compound Objects)の[ブール演算](Boolean)ボタンをクリックします。
  4. 必要な除去(減算)処理を行います。

面の多いサーフェスをサブディバイドすることにより、ブール演算で操作する面とエッジが増えます。その結果、折り目やリッジの原因となる長細い面の数を減らすことができます。

連続したブール演算の結果コンポーネントが消える

ブール演算は、2 つのオペランド A と B を操作するようにプログラムされています。オペランド A として選択したオブジェクトに多くのオブジェクトを結合する場合、または多くのオブジェクトを除去する場合は、オペランド B を選択した後で[ブール演算](Boolean)ボタンをクリックしてください。そうしないで単に[オペランド B を選択](Pick Operand B)ボタンをクリックし、次のオブジェクトを選択すると、前の操作が無効になり、前のオペランド B が消えてしまいます。

多数のオブジェクトを単一のオブジェクトに結合したり、単一のオブジェクトから削除したりするときは、ブール演算を開始する前にすべてのオブジェクトをアタッチすると効率がよくなります。

たとえば、ボルト穴のある金属板を構築するとします。これまでのところ、平らなボックス、オペランド A、10 個の円柱と、これを貫通するオペランド B があります。

ボルト穴のある金属板

  1. 円柱を 1 つ選択します。
  2. 右クリックし、編集可能ポリゴンに変換します。

    自動的に[修正](Modify)パネルが開きます。

  3. [ジオメトリを編集](Edit Geometry)ロールアウトで ([アタッチ リスト](Attach List))をクリックします。

    これは、[アタッチ](Attach)の横の小さいボタンです。

  4. [アタッチ リスト](Attach List)ダイアログ ボックスで、その他のすべての円柱を選択し、[アタッチ](Attach)ボタンをクリックします。

    すべての円柱が単一のオブジェクトになります。

  5. ボックスを選択し、[長さセグメント](Length Segs)、[幅セグメント](Width Segs)、[高さセグメント](Height Segs)の値が 1 より大きいことを確認します。

    ブール演算オブジェクトの折り目やリッジ」を参照してください。

  6. [作成](Create)パネルを開き、[標準プリミティブ](Standard Primitives)のドロップダウン メニューから[合成オブジェクト](Compound Objects)を選択します。
  7. [ブール演算](Boolean)ボタンをクリックし、[パラメータ](Parameters)ロールアウト [操作](Operations)領域で、[減算 (A - B)](Subtraction (A–B))がオンになっていることを確認します。
  8. [ブール演算を選択](Pick Boolean)ロールアウトで、[オペランド B を選択](Pick Operand B)ボタンをクリックし、[円柱](Cylinder)を選択します。

    円柱が除去され、ボックスに穴ができます。

ブール演算は 1 回実行するだけです。何度も実行する必要はありません。ブール演算は、非常に効果的で、エラーが起こる可能性も低い方法です。この方法は、既に 3D ジオメトリを使用していて、壁にドアや窓の開口部を作りたい場合にたいへん便利です。

スプラインとブール演算操作

[作成](Create)パネル [シェイプ](Shapes)メニューで作成したスプラインに対してブール演算を実行する作業は、あまり簡単ではありません。2D スプライン シェイプでは、3D ジオメトリで使用したブール演算は使用できません。シェイプ(編集可能スプラインに変換済み)では、[修正](Modify)パネル[ジオメトリ](Geometry)ロールアウトからブール演算機能が提供されます。このブール演算は、3D ジオメトリの 2 つの部分に対して実行したブール演算とは異なり、単一のスプラインに対してのみ実行できます。

したがって、スプライン シェイプに対してブール演算を実行する前に、2 つのうち 1 つの処理を完了しておく必要があります。

  • 最初にシェイプを作成するとき、[作成](Create)パネル [シェイプ](Shape) [オブジェクト タイプ](Object Type)ロールアウトで、[新規シェイプの開始](Start New Shape)にチェックマークが付いていないことを確認します。チェックマークが付いていなければ、複数のスプラインから成る単一のシェイプとして取り扱われる、いくつかの重なり合ったシェイプを作成できます。

    [新規シェイプの開始](Start New Shape)にチェックマークが付いていない状態(既定値ではチェックマークが付いている)

  • [新規シェイプの開始](Start New Shape)にチェックマークを付けた場合は、すべてのスプライン シェイプをアタッチして、複数のスプラインから成る単一のシェイプを作成する必要があります。

一般的な例として、3 つの重なり合った長方形があり、中央の長方形から外側の 2 つの長方形を除去するケースについて考えてみましょう。[新規シェイプの開始](Start New Shape)のチェックマークを消し忘れてしまったとします。

  1. まず、中央の四角形を選択します。
  2. オブジェクトを右クリックして、クアッド メニューから[変換](Convert) [編集可能スプラインに変換](Convert To Editable Spline)を選択します。

    自動的に[修正](Modify)パネルが開きます。

  3. [ジオメトリ](Geometry)ロールアウトで、[アタッチ](Attach)ボタンをクリックし、外側の 2 つの四角形を選択します。

    3 つのサブオブジェクト スプラインから成る単一のシェイプができました。

  4. [アタッチ](Attach)をオフにし、[選択](Selection)ロールアウトに移動します。
  5. ([スプライン](Spline))サブオブジェクト モードをオンにし、 中央の四角形を選択します。
  6. [ジオメトリ](Geometry)ロールアウトを下へスクロールし、[ブール演算](Boolean)ボタンをクリックします。さらに、[ブール演算](Boolean)の右の ([差](Subtraction))をクリックします。
  7. 外側の 2 つの四角形を選択します。

    外側の 2 つの四角形を除去した最終的なシェイプ

ブール演算操作のヒント

初めて使用するブール演算が正しく機能するように、一般的なヒントを次に示します。

  • モディファイヤを追加し、スタックを集約します。

    オペランドのセットから適切な結果が得られない場合は、モディファイヤを追加し、スタックを集約して、編集可能メッシュまたは編集可能ポリゴンを作成します。モディファイヤの適用を省略して、オブジェクトを集約し、編集可能メッシュや編集可能ポリゴンを作成することもできます。具体的には、シーンに対して、[編集](Edit) [一時保存](Hold)または[ファイル](File) [名前を付けて保存](Save As)を実行します。スタック内の既存のモディファイヤのパラメータは調整できません。

  • より多くの面を持つオブジェクトを作成します。

    通常よりも多くの面を持つオブジェクトを作成するのが普通です。たとえば、もう一方のオブジェクトがより複雑な場合は、ボックスの[高さセグメント](Height Segments)、[幅セグメント](Width Segments)、[長さセグメント](Length Segments)の値を大きくします。両方のオペランドの面の数を同じにします。面の数が多ければ、ブール演算によって作成されるエッジがより滑らかになります。ブール演算によって期待どおりの結果が得られたら、[最適化](Optimize)モディファイヤを適用して、オブジェクトの面の数を減らします。

  • [STL チェック](STL-Check)モディファイヤを適用します。

    オペランドとして使用するオブジェクトの有効性を確認する 1 つの方法として、[STL チェック](STL-Check)モディファイヤを適用する方法があります。このモディファイヤは、主に、STL ファイルに書き出すオブジェクトが完成していて、サーフェスが閉じていることを確認するために使用されます。ブール演算は、同じ基準に合致したオブジェクトで使用すると最も効果的なので、オペランドで STL チェックを使用します。オブジェクトに STL チェックを適用したら、[確認](Check)にチェックマークを付けます。エラーが検出された場合、[ステータス](Status)領域にエラーが表示されます。