2013年5月27日月曜日

アトリビュートのロック・ハイド

今回もあっさり目のプロシージャネタであります.

キャラクターリグのコントローラにはNURBSカーブやロケータが用いられます.












その際コントローラで制御する以外のアトリビュートにアニメーションが入らないよう
アトリビュートをLock&Hideすることがよくあります.

そんなに面倒な作業ではありませんし、プロシージャ化も容易です.
しかし、さまざまなツールを書いていると「またか」と思うこともしばしば.
隠すチャンネルがそろっていればいいのですが、
隠したいアトリビュートが異なってくると似たような記述でやたらと行が増えてやっかい.
そこで別途のグローバルプロシージャとして使いまわせるよう記述したのがこれです.

引数はtranslateX,Y,Z,RotateX,Y,Z,ScaleX,Y,Z,Visivilityの順に
隠したい場合は0、そうでなければ1を記述し、最後にオブジェクト名.
オブジェクト名以外を一旦整数の配列にした後、
対応するアトリビュート名の文字配列と照らし合わせてfor文で処理するとすっきり.
この文字配列を使った手法は、
分岐が多いけれどあらかじめ分岐内容が判っている場合にとても便利です.

0 件のコメント:

コメントを投稿