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

変形・配置

  • 3ds Max
  • MaxScript
  • チートシート
MaxScript チートシート の章一覧

オブジェクトを動かす操作です。プロパティを直接書き換える方法と、変形関数(move / rotate / scale)で相対的に動かす方法 の2系統があります。

位置・回転・スケールを読む / 書く

$.position        -- 位置 [x,y,z](point3)。$.pos と同じ
$.pos.x = 10      -- X だけ変更
$.rotation        -- 回転(quat)
$.scale           -- スケール [x,y,z]
$.transform       -- ワールド変換行列(matrix3)。位置+回転+スケールをまとめて持つ
  • $.pos = [0,0,0] のように丸ごと代入もできます。
  • ⚠️ $.pos.x = 10 のような 成分だけの代入 は、ノードのワールド位置に対して効きます。親子関係があるときの挙動は後述の座標系に注意。

相対的に動かす(move / rotate / scale)

move $ [10,0,0]                  -- 現在位置から +X に10
rotate $ (eulerAngles 0 0 45)    -- Z軸まわりに45度回す
scale $ [2,2,2]                  -- 2倍に拡大
rotate $ (angleAxis 90 [0,0,1])  -- 軸と角度で回す
  • move / rotate / scale現在の状態に対する相対変形 です。絶対指定したいときはプロパティ代入を使います。

座標系を指定する(in coordsys)

in coordsys world move $ [10,0,0]      -- ワールド基準
in coordsys local rotate $ (eulerAngles 0 0 90)  -- 自分のローカル軸基準
in coordsys $Other move $ [0,0,5]      -- 別オブジェクトの座標系基準
in coordsys grid move $ [1,0,0]        -- アクティブグリッド基準
  • 既定はワールド基準。ローカル軸で動かしたいときは in coordsys local を付けるのが定石です。

別オブジェクトに合わせる(整列)

$A.pos = $B.pos               -- 位置だけ合わせる
$A.rotation = $B.rotation     -- 向きだけ合わせる
$A.transform = $B.transform   -- 位置・向き・スケールを丸ごと一致させる(完全に重ねる)
  • 「ピボットごと完全に重ねたい」なら transform の代入が最短です。

バウンディングボックスと接地

$.min      -- バウンディングボックスの最小コーナー
$.max      -- 最大コーナー
$.center   -- バウンディングボックス中心

$.pos.z -= $.min.z   -- 一番下を Z=0(地面)に合わせる
  • min / max / centerワールド空間 の値です。サイズは $.max - $.min で求まります。

ピボット(基準点)を操作する

$.pivot = [0,0,0]      -- ピボットをワールド原点へ
$.pivot = $.center     -- ピボットをバウンディングボックス中心へ
$.objectoffsetpos      -- ピボットに対するメッシュのオフセット
  • $.pivot を変えても メッシュは動きません(基準点だけが移動)。UI の「ピボットのみ影響」と同じ挙動です。

よく使う形

-- 選択を等間隔に並べる
i = 0
for o in selection do (o.pos = [i*30, 0, 0]; i += 1)

-- すべて原点に集める
for o in selection do o.pos = [0,0,0]

落とし穴まとめ

  • move/rotate/scale は相対、プロパティ代入は絶対。混同しない。
  • ローカル軸で動かすなら in coordsys local を明示する。
  • $.pivot の変更はメッシュを動かさない(基準点のみ)。
  • min/max/center はワールド空間。ローカルサイズが欲しいときは別途計算する。

関連

← MaxScript チートシート へ