チュートリアル > 非四角形ポリゴンの選択 |
MAXScript によって、編集可能な Poly オブジェクトのデータにアクセスし、ポリゴン、頂点、エッジの関係を公開することができるようになります。ポリゴンのモデリングを使用する際、通常はすべてのポリゴンを四角形にしておきます。以下のスクリプトで、4 つのエッジより少ない、または多いすべてのポリゴンを選択します。
macroScript は SelectNonQuadPolys と呼ばれます。スクリプトを使用する場合は、[カスタマイズ...](Customize...)を使用してスクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。
isEnabled ハンドラは true または false を返し、ボタンやメニュー項目が有効な状態かどうかを判別します。 true の場合、ボタンは利用可能です。 false の場合は、淡色表示されます。return 式では、シーン内でただ 1 つのオブジェクトが選択されているかどうか、およびその基本オブジェクトのクラスが編集可能な Poly かどうかがチェックされます。スクリプトは、両方の条件を満たしたオブジェクトに対してのみ機能します。
on Execute ハンドらは、ボタンを押す、メニューから選択する、ショートカットを押すなどして macroScript が実行されるたびに実行されます。ハンドラには、スクリプトの「本体」が含まれています。
Macroscript_Body_Event_Handlers
選択されたポリゴンを格納するためのユーザ変数が必要です。その変数を空の BitArray Array_Values に初期化します。
このスクリプトは、基本オブジェクトに対してのみ機能します。つまり、選択されたオブジェクトの基本オブジェクトの頂点にモディファイヤがある可能性がありますが、ポリゴンのモデリングは通常基本レベルで行われるので、そのようなモディファイヤは考慮されません。isEnabled ハンドラ内でただ 1 つのオブジェクトが選択されていることが既に確認されているため、複数のオブジェクトが含まれている可能性を考慮せずに、$ を使用して選択されたオブジェクトにアクセスすることができます。
オブジェクト内を巡回するために、オブジェクト内の面の数が必要です。
基本オブジェクト内のすべてのポリゴンを巡回します。 f には、チェックされる現在のポリゴンのインデックスが含まれます。
頂点の数が 4 でない場合は、そのポリゴンを選択して、現在の面に対応する bitArray 内のビットを true に設定する必要があります。
すべてのポリゴンをチェックした後は、収集されたすべてのポリゴンを選択するだけです。
選択の結果をユーザに示すために、最初にコマンド パネルを修正モードに切り換えます。
次に、スタック ビュー内の現在のオブジェクトをチェック済みの基本オブジェクトに設定します。
最後に、[ポリゴン サブオブジェクト](Polygon Sub-Object)レベルに切り換えて、選択されたポリゴンを表示します。
スクリプトを使用する場合は、[カスタマイズ...](Customize...)を使用してスクリプトを[HowTo]カテゴリからツールバー、メニュー、またはクアッド メニューにドラッグするか、キーボード ショートカットを割り当てることができます。編集可能な Poly 基本オブジェクトのある単独のオブジェクトを選択すると、スクリプトが有効になります。実行すると、非四角形のポリゴンが選択されます。