(
-- 特定のタイプのオブジェクトを配列内に収集します。 たとえば、
-- ここでは、すべてのジオメトリ オブジェクトを収集します。 ただし、
-- MAXScript 以前の経緯により、 Geometry スーパークラスのターゲット オブジェクトは除かれます。
candidatesArray = for o in Geometry where classof o != TargetObject collect o
-- 指定したパーセンテージでオブジェクトをランダムに削除する場合は、
-- オブジェクトを実際に削除する前に
-- 削除するオブジェクトを選択しておくことをお勧めします。
-- 第 2 の配列を作成して、
-- 削除する実際のオブジェクトで埋めることもできます。
deathRowArray = #() -- 空配列を初期化します。
thePercentage = 50.0 -- パーセンテージを定義します。
-- 削除するオブジェクトの数を計算します。
numberToDelete = (thePercentage / 100.0 * candidatesArray.count) as integer
-- deathRow 配列が目的の数のオブジェクト数で一杯になるまで
-- ループします。
while deathRowArray.count < numberToDelete do
(
newIndex = random 1 candidatesArray.count --新しいランダム インデックスを生成します。
--使用されていない場合、deathrow 配列に追加されます。
if findItem deathRowArray candidatesArray[newIndex] == 0 do
append deathRowArray candidatesArray[newIndex]
)
delete deathRowArray --最後に、収集されたオブジェクトを削除します。
)
|