/////// Create Switching Group //////// global proc CreateSwitchingGroup_nkymScript(){ // 変数設定 $selObj = `ls -sl`; $selObjSize = size($selObj); if ($selObjSize == 0) {error "not Selected !";} $SWGroupName_Attr = "Switch"; //追加するアトリビュート名 // 選択オブジェクトをenumにリストする文字を作る string $enumName = ""; for ($i in $selObj){ $enumName += $i + ":"; } $enumName += "Show All:Hide All"; // グループ作成 $SWGroupName = `group`; // 作成したグループにアトリビュート追加 addAttr -ln $SWGroupName_Attr -nn $SWGroupName_Attr -at "enum" -en $enumName -k true $SWGroupName; // ShowAllノードの作成 $conditionShowName = `shadingNode -au condition`; setAttr ($conditionShowName+".colorIfTrueR") 1; setAttr ($conditionShowName+".colorIfFalseR") 0; setAttr ($conditionShowName+".secondTerm") $selObjSize; connectAttr -f ($SWGroupName+"."+$SWGroupName_Attr) ($conditionShowName+".firstTerm"); //// conditionノード作成 $Num = 0; for ($i in $selObj){ $conditionName = `shadingNode -au condition`; setAttr ($conditionName+".colorIfTrueR") 1; // secondTermに連番を割り振る setAttr ($conditionName+".secondTerm") $Num; $Num +=1; // ノードをコネクトする connectAttr -f ($SWGroupName+"."+$SWGroupName_Attr) ($conditionName+".firstTerm"); connectAttr -f ($conditionName+".outColorR") ($i+".visibility"); connectAttr -f ($conditionShowName+".outColorR") ($conditionName+".colorIfFalseR"); } // 作成したグループを選択,_SW追加 select -r $SWGroupName ; rename $SWGroupName ($SWGroupName+"_SW"); }