なので最近はもっぱら積極的防衛に切りかえています。
まず、uiConfigrationScriptNode というのは当たり前ですがScriptNodeの一種です。
で、File Open ダイアログの右側を見てみると General Options に、こんなチェックボックスがあります。
初期状態ではココにチェックが入っていて、スクリプトノードを実行するようになっているのです。その為 uiConfigrationScriptNodeに記述されているスクリプトが実行されてしまう訳なのですね。チェックを外せば uiConfigrationScriptNode に何が書かれていようとも実行されないと云う案配。
平和な日常を獲得できたかに思えますが、ひとつ問題がっ!
mayaが常時保存しているスクリプトノードに sceneConfigrationScriptNode というものが存在します。これが何かというと、タイムスライダーのレンジを復旧させるコマンドが記述されているスクリプトノードなのです。
Execute script nodesを無効にするとタイムスライダーのレンジが復旧されなくなってしまうのですわ。アニメータとして、これはかなりの痛手です。
uiConfigrationScriptNode は実行させたくないけど sceneConfigurationScriptNode は動作して欲しいアンビバレントな心境。
ここは、sceneConfigurationScriptNode を復帰させるスクリプトで回避しようと思います。
global proc tryRecoverSceneConfiguration() { string $scNode[]=`ls -typ "script" "*sceneConfigurationScriptNode*"`; if( 1==`size $scNode` ) { string $cmd=`scriptNode -q -bs $scNode[0]`; if(""!=$cmd) evalEcho( $cmd ); } }
referenceしていた場合、sceneConfigurationScriptNodeが複数リストされてしまうので、カレントシーンのスクリプトノードだけを拾うようにするのがミソ。
単体実行でも良いですが、maya 起動時に
scriptJob -event "SceneOpened" tryRecoverSceneConfiguration;
とすることで使い勝手が良くなります。
0 件のコメント:
コメントを投稿