まずは、シンプルにコントローラーのキーを全て削除する
方法は至って簡単。
以下は、全てのキーを削除する。
#allkeysの部分を、#selectionに変更すると、
選択したキーのみを削除する。
deleteKeys $ #allKeys
各コントローラー毎に削除する場合は、
シンプルな方法は、以下のような感じかな。
try(
Local j = 0, oldTransform = undefined;
for i in selection do
(
/*ずれちゃうので残しておく*/
oldTransform = i.transform;
j = i.pos.controller.keys.count;
–キーカウントがなくなるまで
–配列のお尻から削除
while j > 0 do
(
deleteKey i.pos.controller.keys j;
j -= 1;
);–while end
/*復元*/
i.transform = oldTransform;
);–for end)catch();
try()catch()を使用するのは、
Maxの場合、コントローラーが階層化するので、念のために。
コントローラーがどんな状態でも確実にキーを削除するならば。
削除ではなく、コントローラーを潰すのはいかがだろうか。
–まず一度キーを適当なコントローラーに変え潰す
$.pos.controller = Position_Expression ()
–元に戻す
$.pos.controller = Position_XYZ ()
もちろん、コントローラー情報は、リセットされるので、
複雑なコントローラーの関係にある場合は、破綻する。
この問題はどうしたらいいだろうか?
コントローラーを全て調べ上げる機能でも作って見た方がいいのだろうか?
でもしんどいなぁ。
レイヤー使われたら、ほぼ予測不能なコントローラーの組まれ方するし。