リファレンス / 3ds Max / MaxScript チートシート

はじめに

  • 3dsMax
  • MaxScript
  • チートシート
MaxScript チートシート の章一覧

このチートシートについて

「あの操作、MaxScript でどう書くんだっけ?」を 最短でコードに変換する ための逆引き集(やりたいことから探して調べる本)です。 文法をゼロから学ぶ本ではなく、やりたいことから探して、貼って、すぐ動かす ことを目的にしています。

  • 対象読者: 3ds Max で日々の作業を自動化したい人。MaxScript をある程度触ったことがあると読みやすいですが、各レシピは単体で完結します。
  • 基準環境: 3ds Max 2022

本書の使い方

  1. 章の一覧から やりたいこと に近いカテゴリを開く
  2. 見出しから該当のレシピを探す
  3. コードブロックを MAXScript エディタに貼り付けて実行 し、結果を MAXScript リスナー で確かめる

すべてのコードは、特記がない限り そのままエディタに貼って実行すれば動く 形で書いています。ただし例の多くは、シーンに Box001 / Sphere001 / Teapot001 があり、Box001 を選択している状態を想定しています。名前が違うときは読み替えてください。

MAXScript エディタで実行する

  1. [スクリプト] → [新規スクリプト] でエディタを開きます。
  2. [言語] メニューで [MAXScript] が選ばれていることを確かめます(既定は MAXScript)。
  3. コードを貼り付け、[ツール] → [すべてを評価](Ctrl + E)で全体を実行します。一部だけ実行したいときは、その行を選んで [ツール] → [行/選択範囲を評価](Shift + Enter)を使います。
  4. 保存するときは .ms ファイルにします。

MAXScript エディタの「言語」メニュー。MAXScript が選ばれている

「ツール」メニューの「すべてを評価」と「行/選択範囲を評価」

結果をリスナーで確かめる

実行結果は 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 の調べ方・実測

誤りや不明点を見つけたら

記述の誤りや、わかりにくい・動かないといった点に気づいたら、各章の末尾にあるコメント欄か お問い合わせフォーム からお知らせください。

← MaxScript チートシート へ