次のメソッドでは、ビューポート内の位置に基づいて 1 つ以上のオブジェクトを選択できます。これらのメソッドで使用されているすべての座標はウィンドウ フォーマットで、起点は左上に置かれます。gw.getWinSizeX()
および gw.getWinSizeY()
メソッドを使用すると、ビューポートのサイズをピクセル単位で決定できます。選択するオブジェクトは、3ds Max メイン ツールバーで指定された[選択フィルタ](Selection Filter)に基づいてフィルタされます。
boxPickNode <box2> [ crossing:<boolean> ] [ applyUIScaling:<true> ]
指定された矩形領域内のノードの配列を返します。<box2>
値は、アクティブなビューポート内のコーナーをピクセル値で指定します。crossing:
パラメータ値が true
の場合、領域内の一部分だけでオブジェクトを選択します。false
の場合は、領域内全体でオブジェクトを選択する必要があります。crossing:
の既定値は true
です。
applyUIScaling
パラメータは、高 DPI ディスプレイに UI スケールを適用するかどうかを示します。
例:
boxPickNode (box2 [0,0] [1000,1000])
circlePickNode <box2> [ crossing:<boolean>] [ applyUIScaling:<true> ]
指定された円形領域内のノードの配列を返します。<box2>
値は、アクティブなビューポート内の円の中心と円上のポイントをピクセル値で指定します。crossing:
パラメータ値が true
の場合、領域内の一部分だけでオブジェクトを選択します。false
の場合は、領域内全体でオブジェクトを選択する必要があります。crossing:
の既定値は true
です。box2 パラメータ値の \[left, bottom\]
および \[right, top\]
コンポーネントは、それぞれ中心の位置と半径の位置に対応します。box2 パラメータ値は、次のスクリプトに示す特別な方法で設定します。
applyUIScaling
パラメータは、高 DPI ディスプレイに UI スケールを適用するかどうかを示します。
例:
vpCenter = (point2 (gw.getWinSizeX()) (gw.getWinSizeY()))/2 vpQuarter = point2 (vpCenter.x/2) vpCenter.y circleRegion = box2 0 0 0 0 -- initialize circleRegion to a box2 value circleRegion.left = vpCenter.x -- the center of the circle circleRegion.bottom = vpCenter.y circleRegion.right = vpCenter.x/2 -- a point on the circle circleRegion.top = vpCenter.y for obj in (circlePickNode circleRegion crossing:false) do print obj.name
これは円形領域内全体のすべてのノード名を出力します。ここで円の中心はビューポートの中心であり、円上のポイントはエッジからビューポートの中心までの距離の 1/4 の場所に配置されます。
fencePickNode <point2_array> [ crossing:<boolean>] [ applyUIScaling:<true> ]
指定された範囲内のノードの配列を返します。範囲は point2 の値の配列によって定義されます。crossing:
の既定値は true
です。
applyUIScaling
パラメータは、高 DPI ディスプレイに UI スケールを適用するかどうかを示します。