よくある質問と回答

次の質問と回答の項では、よく使用する MAXScript 領域に関する情報を検索できます。 また、一般的なプログラミング トピックへの直接リンクや、オンライン サポート フォーラムでユーザから出された問題点に対する解決策も提供されています。

MAXScript の構文と用語

このヘルプ ファイル内の関数定義はどのように理解したらよいですか。

MAXScript におけるマップされた演算とは何ですか。

変数のスコープとは何ですか。

If...Then および If...Do を使用するのはどのような場合ですか。

関数の後ろに () を使用するのはどのような場合ですか。

「undefined」値と「unsupplied」値の違いは何ですか。

'=' 演算子と '==' 演算子の違いは何ですか。

Array と BitArray の違いは何ですか。

現在のシーンのファイル名を取得する方法はありますか。

クラスとクラス インスタンスのすばらしい世界

一般的なその他のトピック

テクスチャ座標はどのように機能しますか。

3ds Max と MAXScript では変換はどのように計算されますか。

実際の操作に関する質問

ベクトルの操作

頂点の位置からベクトルを作成する方法はありますか。

2 つのベクトル間の角度を調べる方法はありますか。

3 つの頂点間の角度を調べる方法はありますか。

Z 軸を中心にベクトルを回転させる方法はありますか。

MAXScript 値の操作

ループ変数にアクセスしたときに、実行によって 'undefined' が返されるのはなぜですか。

多次元配列を作成する方法はありますか。

オブジェクトのボリュームを計算する方法はありますか。

文字列に数値だけが含まれているかどうかを調べる方法はありますか。

配列から、重複した配列を削除する方法はありますか。

空のエントリを含んだ文字列をフィルタ処理する方法

ファイルの操作

MAXScript のファイル操作で使用する既定値のパスを設定する方法はありますか。

オブジェクト プロパティへのアクセス

複数のオブジェクトのプロパティを一度に変更する方法はありますか。

ライトのシャドウ タイプを変更する方法はありますか。

オブジェクト名によってオブジェクトを取得する方法はありますか。

ビューポートに表示されるアルファ値にアクセスする方法はありますか。

テキスト シェイプ内のテキストを動的に変更する方法はありますか。

マテリアル ID によってマルチマテリアルをソートする方法はありますか。

スクリプト UI の操作

UI 要素にアクセスしてプロパティを変更する方法はありますか。

ロールアウトに値を表示する方法はありますか。

dropdownList や listBox 内の項目を更新する方法はありますか。

dropdownList の Selected ハンドラを関数として呼び出す方法はありますか。

マクロスクリプト ボタンを正しくチェック解除する方法はありますか。

シーン ノードの操作

2 点間に線を作成する方法はありますか。

同じオブジェクト内にモディファイヤおよびコントロールのインスタンスを作成する方法はありますか。

バインドによってスペース ワープを取得する方法はありますか。?

指定したパーセンテージでジオメトリ オブジェクトをランダムに削除する方法はありますか。

オブジェクトを順番に表示するボタンを作成する方法はありますか。

複数の .MAX ファイルをバッチ処理する方法はありますか。

外部ファイルのデータを使用してシーンやアニメーションを制御できますか。

編集可能メッシュの操作

面のローカル回転を取得する方法はありますか。

UV エレメントによってメッシュを分割する方法はありますか。

UVW モディファイヤのギズモの位置を、選択した面に合わせる方法はありますか。

インデックスによって編集可能メッシュの面を選択する方法はありますか。

法線が離れたところにある面を取得する方法はありますか。

編集可能ポリゴンの操作

EPoly エッジ選択から、未接続のエッジ選択を作成する方法はありますか。

エッジ中間の EPoly 頂点を削除する方法はありますか。

マテリアル ID 間のエッジを選択する方法はありますか。

アニメーションの操作

オブジェクトの回転をシーンの時間にリンクさせる方法はありますか。

3 Point ヘルパーに位置合わせした Plane を保存する方法はありますか。

高速で優れたスクリプトの作成

シーン オブジェクトに変更を加えるときに、[ビューポートの再描画](Viewport Redraws)を使用不可にする

可能な場合は元に戻すを使用不可にする

[修正] (Modify)パネルの速度が低下する可能性 - 可能な場合は[作成] (Create)パネルに変更する

「flagForeground」ノードのビューポート状態のメソッドを使用する

ライン全体を取得できる場合は単一ピクセルを取得しない

可能であれば計算の実行は 1 回だけにする

頻繁に使用する関数とオブジェクトをキャッシュする

データをより小さく切り分ける

可能な場合は配列ではなく bitArray を使用する

最終的なサイズがわかっている場合は、配列をあらかじめ初期化しておく

再帰関数を使用する

matchPattern は findString より高速である

return、break、exit、continue を使用しない

StringStream を使用して巨大文字列を構築する

可能な場合は文字列の代わりに名前の値を使用する

別の方法がある場合は実行関数を使用しない

インデックスを使用する for ループとコレクションを使用する for ループのパフォーマンス比較

for ... collect と for ... do のパフォーマンスの比較

パーティクル フロー Script オペレータの for ループを最適化して処理速度を上げる

Bsearch を使用してテーブル検索を高速化する

より適切な処理方法