modoのGLキャプチャ コマンドについて書いてみます。
3Dビューポートを記録するGLプレビューは、アニメーション作成には欠かせない機能です。重いシーンではアニメーションをリアルタイムに再生することができないため、GLプレビューを使用して動きやタイミングを確認します。
modoにはビューポートを記録する「GLプレビュー」と「プレイブラスト」機能が搭載されてます。
GLプレビュー
アクティブな3Dビューポートを記録する機能です。記録サイズはビューポートの表示領域をそのまま記録します。「GLプレビュー」は動画形式でビューポートを記録し、記録した動画を自動的に再生します。プレビューはTempフォルダに保存されます。
C:\Users\ ユーザー名) \AppData\Local\Temp
「GL録画」「GL画像シーケンス」はディレクトリを指定してファイルを保存する機能です。
プレイブラスト
カメラを指定してビューポートを記録する機能です。記録サイズはRenderアイテムのフレームサイズが使用されます。
プレイブラストは記録専用の3Dビューポートを生成するため、ビューポートの「シェーディングスタイル」や「グリッドを表示」を設定するオプションが用意されてます。
これらのGL記録機能は gl.capture コマンドを使用してます。
追記
下で紹介するgl.capture コマンドのオプションですが、modo 15.1でプレイブラストにオプヨンが追加されて簡単に利用できるようになりました。
gl.capture コマンド
gl.capture コマンドには12個の引数があるので紹介してみます。「GLプレビュー」や「プレイブラスト」では使用することのできないオプションが用意されてるので、必要に応じて使用すると便利です。
record
「GL録画」と同じです。
gl.capture record:true
seq
「GL画像シーケンス」と同じです。
gl.capture seq:true
filename
ファイルパスと保存するファイル名の指定です。指定がない場合はファイル保存ダイアログが開きます。
gl.capture filename:"C:\Temp\GLPreview.mov"
frameS / frameE
記録の開始と終了フレームです。
gl.capture frameS:10 frameE:25
autoplay
動画記録の自動再生です。指定がない場合はautoplay:trueとして動作します。
gl.capture autoplay:false
preview
「GLプレビュー」と同じです。
gl.capture preview:true
scale
記録サイズを25%か50%に縮小して保存します。指定がない場合はscale:fullとして動作します。
gl.capture scale:quart
gl.capture scale:half
savealpha
背景をアルファチャンネルとして保存します。指定がない場合はsavealpha:falseとして動作します。
gl.capture seq:true savealpha:true
cleanGL
「ビューポートコントロールと情報表示(アイコンや情報など)」を表示します。指定がない場合は cleanGL:trueとして動作します。
gl.capture cleanGL:false
useMonitor
GL記録のプログレスバーを表示する。指定がない場合は useMonitor:trueとして動作します。
gl.capture useMonitor:false
counter
フレームカウントを表示する。指定がない場合は counter:trueとして動作します。
gl.capture counter:false
使用例
複数の引数を使用する時の例です。「シーケンス保存+フレーム範囲指定+スケール50%+アルファ保存」
gl.capture seq:true filename:"C:\Temp\GLPreview.tga" frameS:10 frameE:25 scale:half savealpha:true
コマンドの引数は並び順で処理されるので、以下のように引数の値だけ省力して記述することもできます。
gl.capture true true "C:\Temp\GLPreview.tga" 10 25 false false half true
私の場合AfterEffectsを使用してフレーム単位で確認することが多いのでシーケンスを使用してます。
gl.captureのバグなのかわかりませんが、0フレームの画像として「ビューポートコントロール」が表示された状態のカレントフレームを出力します。繰り返しタイミングを見るとき邪魔なので、手動で削除するためにシーケンスを使ってるという事情もあります。
指定したサイズで3Dビューポートを開く
おまけとして、プレイブラストのように指定したサイズでビューポートを開くコマンドを紹介します。
プレイブラストでプレビューを作成する時にアドバンスドビューポートで記録したい時があります。プレイブラストには「ソース設定をコピー」するオプションがあるのですが対応状況が半端なため、見た目が変わってしまうことがあります(14.1で修正されたようです)。
そんなときは記録したいサイズのビューポートを作成して、手動で表示オプションを調整するといいです。
cmds.batch {Temp} {layout.create Camera width:1280 height:720 persistent:false style:palette layout:"BlankCamera Palette"} {view3d.shadingStyle gnzgl} {view3d.presetload AVPGoodQ}{view3d.sameAsActive true}
GLの記録とは異なりますが、プレビュービューポートにもアニメーションをレンダリングする機能があります。
プログレッシブレンダラーであるため1フレームのレンダリング時間を指定できるので、画像は粗くてもGLより最終レンダリングに近い画像でアニメーションを確認できて便利でした。
残念なことに11.1でUI変更されたタイミングで「最大時間」が動かなくなってしまい、短時間でレンダリングができなくなってしまいました。便利な機能だったので修正して欲しいです。
参考
https://community.foundry.com/discuss/topic/81912