[編集可能メッシュ修正](Editable_Mesh Modify)パネル コマンド モードおよび操作

スクリプトで[編集可能メッシュ](Editable Mesh)、[メッシュ編集モディファイヤ](Edit Mesh Modify)パネル モードや操作を呼び出すために、一連のメソッドが用意されています。これらのメソッドは、meshOps グローバル構造体内にあります。3ds Max の[修正] (Modify)パネルにあるボタンを押して操作することができます。これらのメソッドを使用するには、ノードを選択して[修正] (Modify)パネルを開かなければなりません。最初の引数 <editable_mesh_node_or_modifier> は、モディファイヤ スタック レベルが基本オブジェクトである編集可能メッシュ ノード、あるいはモディファイヤ スタック レベルがメッシュの編集にあるメッシュ編集モディファイヤのいずれかに解釈されます。以下のメソッドは、現在のサブオブジェクト レベルがメソッドの呼び出しに適切なレベルである場合に有効です。

注:

このページでは、[Modify]パネルのコマンドモードと操作のコントロールに関連する meshOps 構造について説明します。頂点エッジ、およびのデータを直接操作するメソッドについては、meshOp 構造体および Editable_Mesh : GeometryClass と TriMesh : Value のトピックを参照してください。

メッシュのスクリプトに変更を加えた場合は、メソッドを呼び出す前にメッシュで update() メソッドを呼び出す必要があります。これらのメソッドを呼び出した直後は、3ds Max によってメッシュが更新されるため、update() メソッドを呼び出す必要はありません。

以下のメソッドでは、[編集可能メッシュの修正](Editable Mesh Modify)パネルでユーザによるボタン操作を実行し、それを現在選択されているサブオブジェクトに基づいて処理します。これらのメソッドは、[ジオメトリを編集](Edit Geometry)ロールアウト内の対応するボタンをハイライトして操作を開始し、その時点で対話形式の操作は完了します。メソッドは、操作の開始からユーザの操作完了までの間に返されるため、使用するスクリプトが操作の妨げにならないように注意する必要があります。これらのメソッドを呼び出すことは、[修正] (Modify)パネルの関連するボタンをクリックすることと同じです。ユーザのアクションまたは MAXScript コマンドにより操作がすでに実行されている場合にメソッドを呼び出すと、操作が中止され、ボタンのハイライトが消えます。

meshOps.startAttach <editable_mesh_node_or_modifier>

アタッチ]コマンド モードになります。頂点、面、ポリゴン、要素のサブオブジェクト レベル、およびサブオブジェクト モードでないときに有効です。

meshOps.startBevel <editable_mesh_node_or_modifier>

[ベベル] (Bevel)コマンド モードになります。エッジ、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.startChamfer <editable_mesh_node_or_modifier>

[面取り] (Chamfer)コマンド モードに入ります。これは、頂点およびエッジ サブオブジェクト レベルで有効です。

meshOps.startCreate <editable_mesh_node_or_modifier>

[作成] (Create)コマンド モードになります。頂点、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.startCut <editable_mesh_node_or_modifier>

[カット] (Cut)コマンド モードになります。エッジ、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.startDivide <editable_mesh_node_or_modifier>

選択されているエッジを 2 つのエッジに分け、選択されている面を 3 つの面に分けます。

meshOps.startExtrude <editable_mesh_node_or_modifier>

[押し出し] (Extrude)コマンド モードになります。面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.startFlipNormalMode <editable_mesh_node_or_modifier>

[法線を反転](Flip Normal)コマンド モードになります。面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.startSlicePlane <editable_mesh_node_or_modifier>

[スライス平面](Slice Plane)コマンド モードに入ります。これは、すべてのサブオブジェクト レベルで、サブオブジェクト モード以外のときに有効です。

meshOps.startTurn <editable_mesh_node_or_modifier>

[エッジ回転] (Turn)コマンド モードに入ります。これは、エッジ サブオブジェクト レベルで有効です。

meshOps.startWeldTarget <editable_mesh_node_or_modifier>

[ターゲットの連結](Weld Target)コマンド モードに入ります。これは、頂点サブオブジェクト レベルで有効です。

以下のメソッドは、現在選択されているサブオブジェクトに対して、[編集可能メッシュの修正](Editable Mesh Modify)パネル内でいずれかの「即時」ボタン操作を呼び出します。

meshOps.autoEdge <editable_mesh_node_or_modifier>

選択されているサブオブジェクトのエッジの可視性を自動的に設定します。エッジ サブオブジェクト レベルで有効です。

meshOps.break <editable_mesh_node_or_modifier>

選択されているサブオブジェクトにアタッチする面に対して、それぞれ 1 つの新しい頂点を作成します。頂点サブオブジェクト レベルで有効です。

meshOps.collapse <editable_mesh_node_or_modifier>

選択されているサブオブジェクトのエッジの可視性を自動的に設定します。

meshOps.createShapeFromEdges <editable_mesh_node_or_modifier>

[シェイプを作成](Create Shape)ダイアログ ボックスを表示し、オブジェクト名、シェイプ タイプ、および非表示エッジを無視するかどうかを指定できます。エッジ サブオブジェクト レベルで有効です。

meshOps.delete <editable_mesh_node_or_modifier>

選択されているサブオブジェクトを削除します。頂点、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.detach <editable_mesh_node_or_modifier>

[デタッチ] (Detach)ダイアログ ボックスを表示し、オブジェクト名を指定したり、要素としてデタッチしたり、選択されているサブオブジェクトのクローンを作成するかどうかを指定します。頂点、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.explode <editable_mesh_node_or_modifier>

[オブジェクトに分解](Explode to Objects)ダイアログ ボックスを表示し、オブジェクト名を指定します。エッジの角度に基づいて、選択されている面を複数の要素やオブジェクトに分解します。頂点、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.flipNormal <editable_mesh_node_or_modifier>

選択されている面の法線を反転します。面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.gridAlign <editable_mesh_node_or_modifier>

選択されているサブオブジェクトを作図平面に位置合わせします。頂点、エッジ、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.hide <editable_mesh_node_or_modifier>

選択されているサブオブジェクトを非表示にします。頂点、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.invisibleEdge <editable_mesh_node_or_modifier>

選択されているエッジを非表示に設定します。頂点サブオブジェクト レベルで有効です。

meshOps.makePlanar <editable_mesh_node_or_modifier>

選択されているすべてのサブオブジェクトを強制的に共有面にします。頂点、エッジ、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.removeIsolatedVerts <editable_mesh_node_or_modifier>

現在の選択に関係なく、オブジェクトで分離したすべての頂点を削除します。

meshOps.selectOpenEdges <editable_mesh_node_or_modifier>

1 つの面しかないエッジをすべて選択します。エッジ サブオブジェクト レベルで有効です。

meshOps.slice <editable_mesh_node_or_modifier>

スライス平面に基づいて、エッジと面をサブディバイドします。slice を有効にするには、先に meshOps.startSlicePlane() を呼び出して「スライス平面」コマンド モードに入る必要があります。これは、すべてのサブオブジェクト レベルで、サブオブジェクト モード以外のときに有効です。

meshOps.tessellate <editable_mesh_node_or_modifier>

選択されているサブオブジェクトを面分割します。面、ポリゴン、および要素のサブオブジェクト レベルで有効です。

meshOps.unhideAll <editable_mesh_node_or_modifier>

現在のサブオブジェクト レベルで非表示のサブオブジェクトを表示します。頂点、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.unifyNormal <editable_mesh_node_or_modifier>

選択されている面の法線を統一します。面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.viewAlign <editable_mesh_node_or_modifier>

選択されているサブオブジェクトをアクティブ ビューポートの 0,0,0 平面に配置します。頂点、エッジ、面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.visibleEdge <editable_mesh_node_or_modifier>

選択されているエッジを表示します。エッジ サブオブジェクト レベルで有効です。

meshOps.weld <editable_mesh_node_or_modifier>

選択した頂点を結合します。これは、頂点サブオブジェクト レベルで有効です。

meshOps メソッドは、開いている[修正] (Modify)パネルと、パネル内で開いている編集可能メッシュ基本オブジェクトまたはメッシュ編集モディファイヤのいずれか適切なオブジェクトに依存します。この条件に合致しない場合、meshOps メソッドはいずれの操作も実行しません。max modify modesetCommandPanelTaskMode mode:#modify などの MAXScript 関数を使用して[修正] (Modify)パネルを開き、select <obj> を使用してオブジェクトを選択し、subObjectLevel = <n> を使用して サブオブジェクト レベルを設定し、modPanel.setCurrentObject <obj_or_modifier> を使用して、新しい関数が動作するための正しいコンテキストを確立する必要があります。たとえば、次のように使用されます。

meshOps.clearAllSG <editable_mesh_node_or_modifier>

選択したアイテムのすべてのスムージング グループの割り当てを解除します。面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.selectBySG <editable_mesh_node_or_modifier>

[スムーズ グループによる選択](Select By Smooth Groups)ダイアログを開きます。面、ポリゴン、要素のサブオブジェクト レベルで有効です。

meshOps.selectByColor <editable_mesh_node_or_modifier>

[頂点の選択](Select Vertices By)パネルで指定されている色で頂点を選択します。これは、頂点サブオブジェクト レベルで有効です。

meshOps.showNormal <editable_mesh_node_or_modifier>

[選択] (Selection)パネルの[法線を表示](Show Normals)チェックボックスを切り替えます。頂点、面、ポリゴン、要素のサブオブジェクト レベルに対して有効です。

meshOps.autoSmooth <editable_mesh_node_or_modifier>

メッシュ上の選択したアイテムに自動スムーズを適用します。[スムージング グループ](Smoothing Groups)の[自動スムーズ](Auto Smooth)をクリックするのと同等です。面、ポリゴン、要素のサブオブジェクト レベルに対して有効です。

meshOps.selectByID <editable_mesh_node_or_modifier>

マテリアル ID によってサブオブジェクトを選択します。これは[サーフェス プロパティ](Surface Properties)で[ID を選択](Select ID)を選択するのと同じです。選択がある場合、現在の選択のマテリアル ID が使用され、それ以外の場合は既定値のマテリアル ID である 1 が選択されます。面、ポリゴン、要素のサブオブジェクト レベルに対して有効です。

meshOps.attachList <editable_mesh_node_or_modifier>

選択したシーン ノードのリストに対してアタッチ操作を実行するには、[アタッチ リスト](Attach List)ダイアログを開きます。オブジェクト レベルでのみ有効です。

    s=sphere() -- create a sphere
    ConvertToMesh s -- convert to an Editable Mesh
    s.selectedfaces=#{1..112} -- select half the faces
    max modify mode -- open the Modify panel
    select s -- select the sphere
    modPanel.setCurrentObject s -- set modifier stack to the base object
    -- (not really needed in this example)
    subObjectLevel = 4 -- set Sub-Object level to polygon
    meshOps.startExtrude s -- start the face extrude command mode,
    -- highlighting its button in the Edit
    -- Geometry rollout, at which point the
    -- user interactively performs the extrude.

次に別の例を示します。

    meshOps.Hide (modPanel.getCurrentObject())

この関数は、[修正] (Modify)パネルで開いている現在選択中のオブジェクトが、メッシュ編集モディファイヤまたは編集可能メッシュ基本オブジェクトの場合、[非表示] (Hide)ボタン操作を呼び出します。