DAZ StudioのDaz Scriptを使い、
Irayレンダラーの設定項目の値を変更する方法をメモ
▼今回スクリプトでやること
・Max timeをゼロに設定する(レンダリング時間の上限をなくす)
・Max SamplesのUse Limit のチェックを外す
・Max Samplesの値を80000に設定する
※Use Limitのチェックを外したので必要ないけどメモとして
・Rendering Quality EnableをOFFにする
※設定した上限サンプル数までレンダリングを続けさせるため
・Max SamplesのUse Limit のチェックを外す
・Max Samplesの値を80000に設定する
※Use Limitのチェックを外したので必要ないけどメモとして
・Rendering Quality EnableをOFFにする
※設定した上限サンプル数までレンダリングを続けさせるため
▼使い方
メインメニュー、window → Panes(Tabs)からScript IDEウインドウを開いて、
そこに以下のコードをコピペしてExecuteボタンを押して実行すれば動く
そこに以下のコードをコピペしてExecuteボタンを押して実行すれば動く
//↓アプリケーションのレンダリングマネージャーを取得し、hako0へを入れる
var hako0 = App.getRenderMgr();
//↓レンダリングマネージャーから取得した現在有効のレンダラー(デフォルトだとIray)をhako1へ入れる
var hako1 = hako0.getActiveRenderer();
//↓現在のレンダラーから取得したプロパティホルダーをhako2へ入れる
var hako2 = hako1.getPropertyHolder();
//↓プロパティホルダーから取得したプロパティ一覧をhako3へ入れる
var hako3 = hako2.getPropertyList();
//↓取得したプロパティ一覧の[2]番を取得し、hako4へ入れる
var hako4 = hako3[2];
//↓Max timeを0に設定する
hako3[3].setValue(0);
//↓Max SamplesのUse Limit のチェックを外す
hako4.setIsClamped(false);
//↓ataiに8000を入れる
var atai = 80000;
//↓Max Samplesの上限をataiに入っている値(8000)にする
// ※Max SamplesのUse Limitを無効にしたので変更する必要は無いけど、メモとして入れた。
hako4.setMax(atai);
//Max Samplesの値を、ataiに入っている値(8000)にする
hako4.setValue(atai);
//↓Rendering Quality EnableをOFFにする
// ※setValue()に0を入れるとOFF、1を入れるとON
hako3[4].setValue(0);
※日本語が入ったものを保存すると、開きなおしたときに日本語部分が文字化けする。
※文字化けしてもコメントアウトした部分なので動作に影響はない。
▼プロパティ一覧を出力するスクリプト
Irayのプロパティホルダーから取得したプロパティ一覧を出力する。
//↓レンダリングマネージャー取得し、hako0へを入れる
var hako0 = App.getRenderMgr();
//↓レンダリングマネージャーから取得した現在のレンダラー(デフォルトだとiray)をhako1へ入れる
var hako1 = hako0.getActiveRenderer();
//↓現在のレンダラーから取得したプロパティホルダーをhako2へ入れる
var hako2 = hako1.getPropertyHolder();
//↓プロパティホルダーから取得したプロパティ一覧をhako3へ入れる
var hako3 = hako2.getPropertyList();
//↓プロパティ一覧の要素数を取得し、kazuへ入れる
var kazu = hako3.length
//↓forループを使い、hako3に入っている要素一覧を出力する
for (var bangou = 0; bangou < kazu; bangou++ ){
print(bangou + "_" + hako3[bangou].getName());
}
↑のコードを実行すると以下の結果が出力される。
Executing Script... 0_Render Mode 1_Min Samples 2_Max Samples 3_Max Time 4_Rendering Quality Enable 5_Rendering Quality SSIM 6_Rendering Quality 7_Rendering Converged Ratio 8_Post SSIM Available 9_Post SSIM Enable 10_Post SSIM Predict Target 11_Post SSIM Max Memory 12_Pixel Filter 13_Pixel Filter Radius 14_Post Denoiser Available 15_Post Denoiser Enable 16_Post Denoiser Start Iteration 17_Post Denoiser Max Memory 18_Post Denoiser Denoise Alpha 19_White Mode Enable 20_White Mode Color 21_Section Caps Enabled 22_Section Caps Color 23_Active Canvas Result: Script executed in 0 secs 6 msecs.
この一覧を見ると、Max Timeを変更するときの、
hako3[3].setValue(0)というコードは
要素の[3]番であるMax Timeを示してることが分かる。
▼Irayレンダラーのプロパティ一覧を出力する
getPropertyHolder()というメソッドはどこから見つけたのか?
Object.keys()を使って現在のレンダラーから要素一覧を取り出した。
//↓レンダリングマネージャー取得し、hako0へを入れる
var hako0 = App.getRenderMgr();
//↓レンダリングマネージャーから取得した現在のレンダラー(デフォルトだとiray)をhako1へ入れる
var hako1 = hako0.getActiveRenderer();
//↓Object.keys()を使って、現在のレンダラーから取得した要素一覧をhako2へ入れる
var hako2 = Object.keys(hako1);
//forループを使って要素一覧を出力していく
for (var i = 0; i < hako2.length; i++){
print(i +"_" + hako2[i]);
}
↓レンダーマネージャーの要素一覧を出力する場合
var hako = Object.keys(App.getRenderMgr());
for (var i = 0; i < hako.length; i++){
print(i +"_" + hako[i]);
}
↓更に上位のプロパティ一覧を出力する場合
var hako = Object.keys(App);
for (var i = 0; i < hako.length; i++){
print(i +"_" + hako[i]);
}
getRenderMgr()が[142]番にあるのが確認できる。
コメントを残す