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

シーン・レンダリング

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

シーン全体の設定とレンダリング実行です。解像度・範囲・出力先を設定して render() を呼ぶのが基本の流れです。

レンダリング設定(共通)

renderWidth  = 1920          -- 出力幅
renderHeight = 1080          -- 出力高さ
renderPixelAspect = 1.0      -- ピクセルアスペクト
rendTimeType = 1             -- 1=単一フレーム 2=アクティブ範囲 3=範囲指定 4=フレーム指定
rendStart = 0f               -- 範囲指定時の開始
rendEnd   = 100f             -- 範囲指定時の終了

レンダリングを実行する

render()                                     -- 現在設定でレンダリング
render outputfile:"c:/out/frame.png" vfb:false   -- ファイル出力・VFB非表示
render camera:$Camera001 outputwidth:1920 outputheight:1080
render fromframe:0 toframe:100 outputfile:"c:/out/frame.png"   -- 連番出力
  • ⚠️ render() の引数は その回だけの上書き。恒久的に変えたいなら renderWidth 等のグローバルを設定します。
  • 連番出力時のファイル名は frame0000.png のように 自動で番号が付与 されます。

出力先(レンダリング設定ダイアログ相当)

rendOutputFilename = "c:/out/frame.png"   -- 出力ファイルパス
rendSaveFile = true                        -- ファイル保存を有効化

レンダラを切り替える

renderers.current                          -- 現在のプロダクションレンダラ
renderers.current = Default_Scanline_Renderer()
classof renderers.current                  -- レンダラのクラスを確認

環境(背景・環境マップ)

backgroundColor = color 0 0 0              -- 背景色
environmentMap = bitmapTexture filename:"c:/hdr/sky.exr"
useEnvironmentMap = true                   -- 環境マップを有効化
ambientColor = color 30 30 30             -- アンビエント

単位・シーン情報

units.SystemType = #centimeters            -- システム単位
units.DisplayType = #metric
getFilenamePath maxFilePath                -- 現在のシーンのフォルダ
maxFileName                                -- シーンファイル名
sceneMaterials.count                       -- シーン内マテリアル数

よく使う形(ビューポートのプレビュー保存)

-- アクティブビューポートを画像として保存
img = gw.getViewportDib()
img.filename = "c:/out/viewport.png"
save img

落とし穴まとめ

  • render() の引数は一時的な上書き。恒久設定はグローバル変数で。
  • 連番出力はファイル名に番号が自動付与される。
  • レンダラごとに固有プロパティが異なる。showProperties renderers.current で確認する。
  • 環境マップは useEnvironmentMap = true にしないと反映されない。

関連

← MaxScript チートシート へ