はじめに
MaxScript チートシート の章一覧
このチートシートについて
「あの操作、MaxScript でどう書くんだっけ?」を 最短でコードに変換する ための逆引き集(やりたいことから探して調べる本)です。 文法をゼロから学ぶ本ではなく、やりたいことから探して、貼って、すぐ動かす ことを目的にしています。
- 対象読者: 3ds Max で日々の作業を自動化したい人。MaxScript をある程度触ったことがあると読みやすいですが、各レシピは単体で完結します。
- 基準環境: 3ds Max 2022
本書の使い方
- 章の一覧から やりたいこと に近いカテゴリを開く
- 見出しから該当のレシピを探す
- コードブロックを MAXScript エディタに貼り付けて実行 し、結果を MAXScript リスナー で確かめる
すべてのコードは、特記がない限り そのままエディタに貼って実行すれば動く 形で書いています。ただし例の多くは、シーンに Box001 / Sphere001 / Teapot001 があり、Box001 を選択している状態を想定しています。名前が違うときは読み替えてください。
MAXScript エディタで実行する
- [スクリプト] → [新規スクリプト] でエディタを開きます。
- [言語] メニューで [MAXScript] が選ばれていることを確かめます(既定は MAXScript)。
- コードを貼り付け、[ツール] → [すべてを評価](
Ctrl + E)で全体を実行します。一部だけ実行したいときは、その行を選んで [ツール] → [行/選択範囲を評価](Shift + Enter)を使います。 - 保存するときは
.msファイルにします。


結果をリスナーで確かめる
実行結果は MAXScript リスナー(F11)に表示されます。リスナーは上下 2 つの欄に分かれていて、結果が出るのは 下の白い欄 です(上のピンク色の欄はマクロレコーダの記録)。
たとえばエディタで次を実行すると、
a = getNodeByName "Box001"
リスナーの下の欄に $Box:Box001 @ [40.000000,20.000000,0.000000] のように、評価した値が表示されます(座標はシーンによって変わります)。

リスナーの下の欄に直接入力して実行することもできます。欄の上にある [MAXScript] / [Python] で言語を選べます。1 行だけ試すときに便利です。
凡例
このチートシートでは、コードに加えて 用途(いつ使うか) と 落とし穴 を最小限だけ添えています。
コードブロックでは、行末の -- 以降にその行の意味を書いています。
-- コメントで「何をする行か」を示す
select objects -- シーン内の全ノードを選択する
| 記号 / 表現 | 意味 |
|---|---|
$ |
現在の選択。1 つ選択なら そのノード、複数なら 選択のセット、未選択なら undefined。スクリプトでは selection を使う方が安全です(未選択でもエラーになりません) |
$Box001 |
名前が Box001 のノードを指すパス名 |
objects |
シーン内の全ノードを表す組み込みコレクション |
undefined |
「値なし」を表す特別な値。見つからなかったときなどに返ります |
| ObjectSet | objects / selection / geometry などシーンのノードのまとまりを表す型。.count や for ... in で読め、as array で配列にできます |
#foo |
Name 値。文字列に似た識別子で、引数の指定などに使います |
| 「⚠️ 落とし穴」 | ハマりやすい挙動・注意点 |
収録している章
やりたいこと(タスク)から引ける軸で、次の 3 部に分けて収録しています。
第 1 部 シーン操作の逆引き
| 章 | 内容 |
|---|---|
| 選択・取得 | オブジェクトを選ぶ・集める・絞り込む |
| 変形・配置 | 移動 / 回転 / スケール / 位置合わせ / ピボット |
| 生成・複製 | プリミティブ作成 / instance / copy / reference |
| 階層・グループ | 親子リンク / グループ / レイヤ |
| 表示・名前・色・ユーザ定義 | 表示/非表示 / フリーズ / リネーム / ワイヤフレームカラー / ユーザ定義プロパティ |
| モディファイヤ | 追加 / 取得 / プロパティ変更 / 集約 |
| メッシュ・ポリゴン | 頂点 / 面 / 法線 / UV へのアクセス |
| マテリアル・マップ | 割り当て / マップ設定 / マテリアルエディタ操作 |
| アニメーション | キー / コントローラ / 時間操作 |
第 2 部 ファイル・レンダリング・UI
| 章 | 内容 |
|---|---|
| ファイル・パス | 読み書き / パス操作 / インポート・エクスポート |
| シーン・レンダリング | シーン設定 / レンダリング / 出力 |
| UI・ダイアログ | ユーザ入力 / プログレスバー / rollout |
| rollout コントロール | listbox / multilistbox / dropdownlist / spinner / pickbutton … |
第 3 部 文字列・配列と調べ方
| 章 | 内容 |
|---|---|
| 文字列・配列 | よく使う加工・整形の小技 |
| デバッグ・調査 | 未知の API の調べ方・実測 |
誤りや不明点を見つけたら
記述の誤りや、わかりにくい・動かないといった点に気づいたら、各章の末尾にあるコメント欄か お問い合わせフォーム からお知らせください。
コメント