スクリプトエディタかMAXScriptリスナーでnewscript()入力して実行。
実行するたびに旧エディタウインドウが増える。
※旧エディタは機能も古いまま
スクリプトエディタかMAXScriptリスナーでnewscript()入力して実行。
実行するたびに旧エディタウインドウが増える。
※旧エディタは機能も古いまま
ステータスパネルはインターフェースの下の部分。
スクリプトで表示・非表示を制御できる。
statusPanel.visible = false –ステータスパネルを非表示にする。
statusPanel.visible = true –ステータスパネルを表示する。
スクリプトを使い、
スライダーマニュピュレーターに、カメラの焦点距離を表示させる。
プレビューに焦点距離を載せたいときなどに便利。
●焦点距離の取得について
カメラの焦点距離は、スクリプトから直接取得する事が出来ない。
まず画角を取得し、焦点距離に変換する必要がある。
ツールバーへドラック&ドロップするだけで、スクリプトを簡単にボタン化する事が出来る。
hide selectionという文をボタン化すれば、
選択したオブジェクトを非表示にするボタンが出来る。
for i in selection do i.material = undefined
↑この文をボタン化すれば、選択したオブジェクトのマテリアルを無くすボタンが出来る。
●公式MAXScriptリファレンスから引用
外部コマンドおよびプログラムの実行
●説明
ShellLaunch “起動したいアプリケーションのパス” “起動したアプリケーションで開きたいファイルのパス”
●例
メディアプレイヤークラシックでmaxのプレビューを再生する。
ShellLaunch “C:\Program Files\MPC HomeCinema (x64)\mpc-hc64.exe” “C:\Users\ユーザー名\Documents\3dsMax\previews\_scene.avi”
エクスプローラーでプレビューフォルダを開く。
ShellLaunch “C:\Windows\explorer.exe” “C:\Users\ユーザー名\Documents\3dsMax\previews”
このスクリプトをツールバーにボタン化すれば便利。
MAXスクリプト distance関数について。
変数★ = distance オブジェクト◆ オブジェクト▲
こうする事で、変数★の中には、オブジェクト◆と、オブジェクト▲の間の距離が入る。
(多分、オブジェクトの基点間の距離になる。)
例:Box01とBox02というオブジェクトを用意して、↓のスクリプトを実行する。
↑を実行すると、MAXScriptリスナーに、Box01、Box02間の距離が表示される。
そして、ツール → 距離を測定を使い、Box01とBox02間の距離を測る。
このとき、スクリプトでdistance関数を使って測った距離と、
距離を測定ツールを使って測った距離に違いが出る場合がある。
選択した複数のエリアライトのサンプリング数を一括変更する。
▼方法
サンプル数を変更したいエリアライトを選択する。(複数選択可能)
以下のスクリプトを実行する。
sentaku = $ for i in sentaku do( i.mr_NumAreaSamples = 128 )
↑のスクリプトを実行すると、選択したエリアライトのサンプル数が128になる。
128の部分を64にすれば、サンプル数は64になる。
▼処理の流れ
変数sentakuに、選択したエリアライトを入れる。
変数sentakuは、エリアライトを複数選択している場合、変数は配列扱いになる。
forループでは、変数sentakuの中にある要素の数だけ処理を繰り返す。
(つまり、変数sentakuに入れたエリアライトの数だけ処理を繰り返す。)
変数iに、変数sentakuの要素(エリアライト)が順番に入り、サンプル数を変更する処理が実行される。
▼ユーザーインターフェイスを付け、ドロップダウンリストからサンプル数を選択出来るようにする。
10個あるboxオブジェクトを配列に入れる。
hairetu = $ as array --選択したオブジェクトを配列として変数hairetuに入れる。
配列の中身を見ると、順番がバラバラ。
$Box:Box06 @ [50.000000,0.000000,0.000000] $Box:Box02 @ [10.000000,0.000000,0.000000] $Box:Box03 @ [20.000000,0.000000,0.000000] $Box:Box04 @ [30.000000,0.000000,0.000000] $Box:Box05 @ [40.000000,0.000000,0.000000] $Box:Box10 @ [90.000000,0.000000,0.000000] $Box:Box07 @ [60.000000,0.000000,0.000000] $Box:Box08 @ [70.000000,0.000000,0.000000] $Box:Box09 @ [80.000000,0.000000,0.000000] $Box:Box01 @ [0.000000,0.000000,0.000000]
このバラバラな配列の順番を、各オブジェクトのX位置を元にして並び替える。(ソートする)