選択中のパスにレンダーチャンネルとレンダーバッファーの追加スクリプト
選択中のパスにレンダーチャンネルとレンダーバッファーの追加。 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]