daz.trial.jp

Daz Studioアセットのメモ

Script

Daz ScriptでIrayのパラメーターを変更する

DAZ StudioのDaz Scriptを使い、
Irayレンダラーの設定項目の値を変更する方法をメモ

▼今回スクリプトでやること

・Max timeをゼロに設定する(レンダリング時間の上限をなくす)
・Max SamplesのUse Limit のチェックを外す
・Max Samplesの値を80000に設定する
※Use Limitのチェックを外したので必要ないけどメモとして
・Rendering Quality EnableをOFFにする
※設定した上限サンプル数までレンダリングを続けさせるため

▼使い方

メインメニュー、window → Panes(Tabs)からScript IDEウインドウを開いて、
そこに以下のコードをコピペして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]番にあるのが確認できる。

▼参考リンク

コメントを残す

Powered by WordPress