ブール演算: モディファイヤ

BooleanMod - superclass: modifier; super-superclass:MAXWrapper - 15:0 - classID: #(2076314029L, 29076573L); creatable: true

3ds Max 2024 の新機能: BooleanMod モディファイヤにより、[ブール演算] (Boolean)モディファイヤ機能が公開されます。

resetMaxFile #noprompt
s = sphere()

s2 = sphere pos:[15,15,0] radius:15
s3 = sphere pos:[-15, 0, 0] radius:15
s4 = sphere pos:[15, -15,0] radius:15

b = BooleanMod()
addModifier s b

b.appendOperand #single operandNode:s2 operationType:#subtraction
b.appendOperand #single operandNode:s3 operationType:#attach
b.appendOperand #single operandNode:s4 operationType:#union

プロパティ

<BooleanMod>.disableInteractiveUpdates     BooleanClass    default: false   --  boolean

オペランドの変換中にビューポートの更新を無効にするかどうかを指定します。

<BooleanMod>.displayShading     Integer    default: 2   --  integer

オペランドの表示方法を指定します(.DisplayType に応じて異なります)。値は次のとおりです。

<BooleanMod>.DisplayType     Integer    default: 2   --  integer

表示内容を指定します。値は次のとおりです。

<BooleanMod>.doDeterministicEdgeSort     BooleanClass    default: true   --  boolean

各評価でエッジの並べ替えを実行するかどうかを指定します。これは、3ds Max 2024.1 Update 以降では既定で true ですが、旧バージョンには存在しないか、false になっています。これにより、[ブール演算] (Boolean)モディファイヤを使用するジオメトリ上での頂点ペイントの問題が解決されます。このプロパティは MAXScript にのみ公開されており、UI には表示されないことに注意してください。

<BooleanMod>.doTinyFragmentCleanup     BooleanClass    default: true   --  boolean

残りの三角形、および閉じた三角形または四角形のペアをクリーンアップするかどうかを指定します。

このプロパティは MAXScript にのみ公開されており、UI には表示されないことに注意してください。

<BooleanMod>.hideBooleanOnCreate     BooleanClass    default: true   --  boolean

[ブール演算] (Boolean)モディファイヤの UI の[ブール演算を非表示](Hide Boolean)チェックボックスの状態を取得/設定します。これにより、ユーザがオブジェクトを作成(Create Objects)ボタンをクリックしたとき、または下記の CreateObjects() が呼び出されたときに、元のブール演算オブジェクトを非表示にするかどうかが指定されます。

<BooleanMod>.hideReference     BooleanClass    default: true   --  boolean

オペランドがオペランド リストに追加されたときに、オペランドを自動的に非表示にするかどうかを指定します。

<BooleanMod>.method     Integer    default: 0   --  integer

ブール演算の計算方法を取得/設定します。値は次のとおりです。

<BooleanMod>.operandItems     ArrayParameter    default: #()   --  paramBlock2 array; SubAnim

ブール演算のオペランドの配列を格納します。

<BooleanMod>.Operands     ArrayParameter    default: #(ReferenceTarget:ParamBlock2)   --  paramBlock2 array; SubAnim
<BooleanMod.Operands[1]>.SeamSize     Float    default: 0.0   --  animatable
<BooleanMod>.operationVersion     Integer    default: 5   --  integer

[ブール演算] (Boolean)モディファイヤの内部バージョンを取得します。

<BooleanMod>.pivotAlign     BooleanClass    default: false   --  boolean

オペランドを選択したときに、オペランドの基点を基本オブジェクトの基点に位置合わせするかどうかを指定します。この設定を有効にするには、.useLiveReference も true である必要があります。

<BooleanMod>.preserveNormalData     BooleanClass    default: false   --  boolean

オペランドの明示的な法線を保持するかどうかを指定します。

<BooleanMod>.retainNonPlanarFaces     BooleanClass    default: true   --  boolean

オペランドの平面でない面を保持するかどうかを指定します。

<BooleanMod>.selectedOpacity     Float    default: 0.15   --  float

選択したオペランドがシェーディングとして表示される場合、またはワイヤおよびシェーディングとして表示される場合に、選択したオペランドの不透明度を取得/設定します。

注:

このオプションは、UI 内で公開されていません。

<BooleanMod>.toleranceFactor     Float    default: 3.0e-8f   --  animatable; worldUnits

内部で使用します。ブール演算の計算で内部的に使用されます。ブール演算オペランドのバウンディング ボックスの最長の寸法にこの値が乗算され、指定された演算に対するブール演算の交差の許容値が決定されます。通常、値が小さいほど結果の精度は上がりますが、0.0 に近い値を指定すると、数値の不正確さが原因でエラーが発生することがあります。既定値は 3.0e-8f、範囲は 0.0 ~ 1.0e-3f です。

<BooleanMod>.Transform     ArrayParameter    default: #()   --  maxObject array; SubAnim

ブール演算のオペランドに対する変換の配列を格納します。

<BooleanMod>.unselectedOpacity     Float    default: 0.05   --  float

選択されていないオペランドの不透明度を取得/設定します。

<BooleanMod>.useLiveReference     BooleanClass    default: false   --  boolean

オペランドのシーン ノードを保持して、これが選択されたときに「ライブ」参照として変換するかどうかを指定します。true の場合、オペランドはライブ参照として扱われます。オブジェクトは元のノードに残り、ノードの変換を使用してオペランドの位置と方向を決定します。ノードはシーン内に残りますが、非表示になります。false の場合、オペランド オブジェクトのジオメトリはブール演算に組み込まれ、ノードはシーンから削除され、オペランドは修正されたオブジェクトに対する相対的な位置と方向を取得します。両方のオプションでオペランドのジオメトリとモディファイヤ スタックを操作できますが、「ライブ」参照の計算量が多くなるため、オペランドのノードまたは修正されたオブジェクトのノードが変換された場合、再評価が必要になります。

<BooleanMod>.useOperandMaterial     BooleanClass    default: true   --  boolean

ブール演算の結果でオペランドのマテリアルを使用するかどうかを指定します。これは、オペランドが最初に選択されたときにのみ行われます。オペランドのマテリアルが評価されます。修正されたオブジェクトのマテリアルと異なるマテリアル(単一またはマルチ/サブオブジェクト)が含まれている場合、修正されたオブジェクトのマテリアルはオペランドのマテリアルを含むマルチ/サブオブジェクト マテリアルに更新され、オペランドのマテリアル ID は新しいマテリアルに対応するマテリアル ID を使用するように再マッピングされます。

<BooleanMod>.voxelSize     Float    default: 1.0   --  animatable; worldUnits

ブール演算メソッドが OpenVDB の場合、このプロパティはメッシュをボリュームにエンコードする場合の精度をコントロールします。ボクセル サイズが小さいほど、結果はシャープになります。サイズが大きいほど、丸みのあるフィーチャが生成されます。

警告:

ボクセル サイズが小さいほど、オブジェクトの格納に使用されるメモリが多くなります。ボクセル サイズを極端に小さくすると、コンピュータがメモリ不足になる可能性があります。

BooleanMod インタフェース:

インタフェース: BooleanModifier

メソッド:

<integer>GetNumOperands()

ブール演算内のオペランド数を返します。この数には、フォルダ内の基本オブジェクトとオペランドが含まれますが、フォルダは含まれません。

<boolean>GetRootOperandName <index>operandIndex <&string>nameout
       nameout is Out parameter

nameout 参照パラメータ内の operandIndex の位置にあるオペランドの名前を取得します。このメソッドでは、インデックスはルート レベルの項目にのみ適用され、フォルダ内の項目はインデックスから除外されます。

<boolean>SetRootOperandName <index>operandIndex <string>name

operandIndex の位置にあるオペランドの名前を、指定した name に設定します。このメソッドでは、インデックスはルート レベルの項目にのみ適用され、フォルダ内の項目はインデックスから除外されます。

<boolean>GetFlatOperandName <index>operandIndex <&string>nameout
       nameout is Out parameter

nameout 参照パラメータで返される、フラット インデックス operandIndex の位置にあるオペランドの名前を取得します。「フラット インデックス」は、フォルダ内の項目がトップレベルの一部とみなされるように平坦化されたオペランド リスト内のインデックスです。たとえば、インデックス位置 2 にあるフォルダ内の最初のオペランドは、フラット インデックスが 3 になります。

<boolean>SetFlatOperandName <index>operandIndex <string>name

フラット インデックス operandIndex の位置にあるオペランドの名前を name に設定します。「フラット インデックス」は、フォルダ内の項目がトップレベルの一部とみなされるように平坦化されたオペランド リスト内のインデックスです。たとえば、インデックス位置 2 にあるフォルダ内の最初のオペランドは、フラット インデックスが 3 になります。

<boolean>GetFolderOperandName <index>operandIndex <index>subOperandIndex <&string>nameout
       nameout is Out parameter

operandIndex 内のオペランドまたはサブフォルダの名前を取得します。ここで、subOperandIndex はフォルダ内の項目の位置を表し、nameout 参照パラメータで名前を返します。

<boolean>SetFolderOperandName <index>operandIndex <index>subOperandIndex <string>name

フォルダ operandIndex 内のオペランドの名前を設定します。ここで、subOperandIndex はフォルダ内の項目の位置です。操作が成功した場合は true を返します。

<boolean>GetRootOperandType <index>operandIndex <&enum>type
       type enums: {#modified|#single|#folder}
       type is Out parameter

operandIndex の位置にあるオブジェクトのタイプを取得し、type 参照パラメータで返します。タイプは次のいずれかになります。

<boolean>GetNumFolderOperands <index>operandIndex <&integer>count
       count is Out parameter

operandIndex の位置にあるフォルダ内のオペランドの数を、count 参照パラメータで返します。

<boolean>GetOperationType <index>operandIndex <&enum>type
       type enums: {#union|#intersection|#subtraction|#merge|#attach|#insert|#split}
       type is Out parameter

operandIndex の位置にあるオペランドまたはフォルダの操作タイプを取得し、type 参照パラメータで返します。

<boolean>SetOperationType <index>operandIndex <enum>type
       type enums: {#union|#intersection|#subtraction|#merge|#attach|#insert|#split}

operandIndex の位置にあるオペランドまたはフォルダの操作タイプを、指定した type に設定します。

<boolean>GetOperationOption <index>operandIndex <&enum>option
       option enums: {#none|#imprint|#cookie}
       option is Out parameter

operandIndex の位置にあるオペランドの操作オプションを取得し、option 参照パラメータで返します。

<boolean>SetOperationOption <index>operandIndex <enum>option
       option enums: {#none|#imprint|#cookie}

operandIndex の位置にあるオペランドの操作オプションを option に設定します。

<boolean>GetDisable <index>operandIndex <&boolean>disable
       disable is Out parameter

operandIndex の位置にあるオペランドの無効なステータスを取得し、disable 参照パラメータで返します。

<boolean>SetDisable <index>operandIndex <boolean>disable

operandIndex の位置にあるオペランドの無効なステータスを disable 値に設定します。ここで、true は無効、false は有効です。操作が成功した場合は true、その他の場合は false を返します。

<boolean>RemoveOperand <index>operandIndex

operandIndex の位置にあるオペランドを削除します。操作が成功した場合は true、その他の場合は false を返します。

<boolean>AppendOperand <enum>operandtype operandNode:<node> operationType:<enum> operationOption:<enum>
       operandtype enums: {#modified|#single|#folder}
       operandNode default value: undefined
       operationType enums: {#union|#intersection|#subtraction|#merge|#attach|#insert|#split}
       operationType default value: #union
       operationOption enums: {#none|#imprint|#cookie}
       operationOption default value: #none

オペランドをブール演算に追加し、成功した場合は true、失敗した場合は false を返します。オペランドはオペランド リストの末尾に追加されます。

operandType は、オペランドが修正された基本オブジェクト、単一オペランド、または他のオペランドを含むフォルダのいずれであるかを指定します。

operandNode は、オペランドとして追加するシーン ノードを指定します。これは、operandType#folder の場合は必要ありません。

operationType は、実行するブール演算のタイプを指定します。

operationOption はブール演算の追加オプションを指定します。#cookie は、オペランドの面がブール演算メッシュに追加されず、メッシュ内に穴が切り取られることを意味します。#imprint は、新しいエッジがブール演算メッシュに追加され、オペランドが基本オブジェクトと交差することを意味します。

操作が成功した場合は true、その他の場合は false を返します。

<boolean>InsertOperand <enum>operandtype <index>where operandNode:<node> operationType:<enum> operationOption:<enum>
       operandtype enums: {#modified|#single|#folder}
       operandNode default value: undefined
       operationType enums: {#union|#intersection|#subtraction|#merge|#attach|#insert|#split}
       operationType default value: #union
       operationOption enums: {#none|#imprint|#cookie}
       operationOption default value: #none

ブール演算内の既存のオペランド間の、where で指定されたインデックスの位置にオペランドを挿入します。成功した場合は true、失敗した場合は false を返します。

operandType は、オペランドが修正された基本オブジェクト、単一オペランド、または他のオペランドを含むフォルダのいずれであるかを指定します。

operandNode は、オペランドとして追加するシーン ノードを指定します。これは、operandType#folder の場合は必要ありません。

operationType は、実行するブール演算のタイプを指定します。

operationOption はブール演算の追加オプションを指定します。#cookie は、オペランドの面がブール演算メッシュに追加されず、メッシュ内に穴が切り取られることを意味します。#imprint は、新しいエッジがブール演算メッシュに追加され、オペランドが基本オブジェクトと交差することを意味します。

操作が成功した場合は true、その他の場合は false を返します。

<boolean>RemoveFolderOperand <index>operandIndex <index>subOperandIndex

operandIndex の位置にあるフォルダ内の位置 subOperandIndex のオペランドを削除します。操作が成功した場合は true、その他の場合は false を返します。

<boolean>AppendFolderOperand <index>operandIndex <node>operandNode

オペランド operandNode をフォルダ内のオペランドのリスト(operandIndex の位置)に追加します。操作が成功した場合は true、その他の場合は false を返します。

<boolean>InsertFolderOperand <index>operandIndex <index>where <node>operandNode

オペランド operandNode を、フォルダ内の位置 whereoperandIndex の位置に挿入します。操作が成功した場合は true、その他の場合は false を返します。

<boolean>AlignPivot <index>operandIndex

フラット インデックス operandIndex の位置に「ライブ」オペランドが含まれているノードの基点を、基本オブジェクトの基点に位置合わせします。「キャプチャされた」オペランドには影響しません。操作が成功した場合は true、その他の場合は false を返します。

<boolean>ExtractAsObject <index>operandIndex

指定した operandIndex の位置にあるオペランドをオブジェクトとして抽出します。操作が成功した場合は true、その他の場合は false を返します。

<boolean>CutOperand()

現在選択されているオペランドを切り取ります。操作が成功した場合は true、その他の場合は false を返します。

<boolean>PasteOperand <index>operandIndex

クリップボードのオペランドを、operandIndex で指定された位置に貼り付けます。操作が成功した場合は true、その他の場合は false を返します。

<boolean>PasteToNewModifier()

クリップボードのオペランドを新しい[ブール演算] (Boolean)モディファイヤに貼り付けます。操作が成功した場合は true、その他の場合は false を返します。

<boolean>ExtractSeams <index>operandIndex

operandIndex の位置にあるオペランドのシームから新しいシェイプを作成します。操作が成功した場合は true、その他の場合は false を返します。

<boolean>CreateObjects <&node array>createdNodes
       createdNodes is In and Out parameter

ブール演算からオブジェクトを作成し、createdNodes 参照パラメータで返します。操作が成功した場合は true、その他の場合は false を返します。

関連インタフェース

BooleanModifierInterface: インタフェース

このインタフェースは、[ブール演算] (Boolean)モディファイヤを使用してシーンの下位互換性を提供します。

プロパティ:

    .SaveFinalResult : boolean : Read|Write

3ds Max 2024.1 Update 以降では、[ブール演算] (Boolean)モディファイヤにキャッシング メカニズムが使用されるため、これらのバージョンで作成されたシーンは 3ds Max 2024 で開くことができません。保存する前にこのプロパティを false に設定すると、キャッシュがオフになり、シーンが 3ds Max 2024 と互換性を保つようになります。