2012年4月29日日曜日

MAXScript ObjectSet値

MAXScriptリファレンスの「コレクション>コレクションのタイプ>ObjectSet値」を参照

objects
geometery
lights
cameras
helpers
shapes
systems
spacewaarps
selection

と書いてある。オブジェクトの種類のようなもので、これを使ってMAXScriptからシーン内の色んなオブジェクトの種類に簡単にアクセス出来る。(なぜかgeometryだけ複数形じゃない・・・)

<使用例>
select objects --シーン内全てのオブジェクトを選択
lights.on = on --シーン内全てのライトをオン(offでオフ。true,falseでも可)


※スクリプトからオブジェクトにアクセスする際、オブジェクトの表示/非表示は無視されている事に注意して下さい。対応させたい場合は、僕は途中にif文をつかってステータスを判定させています。

if $.visibility == true then みたいな感じで。
 
-----
<シーン内の「レンダー可視 」のオブジェクトを選択するスクリプト >
obj = #()
for o in objects do
(
    if o.renderable == true then append obj o
)
select obj
-----
「for o in objects」のobjectsをselectionに変えると、選択しているオブジェクトの中からレンダリング可視のものを選択するという感じになる。レンダリング不可視のオブジェクトを選択したいときは

if o.renderable == false then append obj o

とします。

0 件のコメント:

コメントを投稿