cvELD

新XSI道場 - Color Variation of ELDorado

選択中のパスにレンダーチャンネルとレンダーバッファーの追加スクリプト

選択中のパスにレンダーチャンネルとレンダーバッファーの追加。 Softimageの仕様として、まずレンダーチャンネルを設定しておかないと レンダーバッファーが登録できないので、基本セットで使います。 新規シーンにシェーダーバッファー定義済みのRenderChannelシェーダーを持ち込んだ時は 設定だけは生きてるので Create_cvELD_Toon_Channels(); だけ実行すれば良いです。そのために関数を分けてます。

[code lang=”js”]//Create_RendrChan_and_Buffer.js

Create_cvELD_Toon_Channels();
Create_cvELD_Toon_Buffers();

function Create_cvELD_Toon_Buffers(){
//空のCollection作る
var oCol= new ActiveXObject( "XSI.Collection" );
//Collectionに選択したものをぶち込む
oCol.items = Selection;

//Collectionの中に入ってるオブジェクトをカウント分繰り返す
for (var i = 0; i < oCol.count; i++ ){

oBf = oCol(i).CreateFramebuffer( "Toon_DI" );
oBf.Format = "png"
oBf = oCol(i).CreateFramebuffer( "Toon_SH" );
oBf.Format = "png"
}
}

function Create_cvELD_Toon_Channels(){
var props = ActiveProject.ActiveScene.PassContainer.Properties;
var channels = new ActiveXObject("XSI.Collection");
for(var i=0; i<props.Count; i++)
{
if(props(i).FullName=="Passes.RenderOptions")
var channels = props(i).RenderChannels;
}

if (channels("Toon_DI") == null)
CreateRenderChannel("Toon_DI", siRenderChannelColorType, null);
if (channels("Toon_SH") == null)
CreateRenderChannel("Toon_SH", siRenderChannelColorType, null);

logmessage("レンダーチャンネルに Toon_DI他、を追加しました。")
}

[/code]

関連記事