シーン・レンダリング
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にしないと反映されない。
関連
- 出力パスの組み立て・存在確認: 「ファイル・パス」章
- レンダラ固有プロパティの調べ方: 「デバッグ・調査」章