ラベル uiConfigurationScriptNode の投稿を表示しています。 すべての投稿を表示
ラベル uiConfigurationScriptNode の投稿を表示しています。 すべての投稿を表示

2020年12月17日木曜日

fileコマンドでuiConfigurationScriptNodeを回避する

  uiConfigurationScriptNode を作らせなくするためには、Preferences の UI Elements から、Panel Configurations の項目を編集しなければいけません。※参照

  このノードを作成させなくするために、スクリプトで対処しようとしてグローバル変数なんかをいじったりもしていましたが、もっと簡単に回避する方法があったようです。


2020年4月6日月曜日

BNSリグを触ってみる

年度も変わるかという頃、3D系の情報サイトでバンダイナムコが鉄拳シリーズなどで使っていたというリグを配布していると云うニュースを見つけました。
鉄拳、ソウルキャリバーとか、よく遊んでいましたし、どんな風になっているのか興味があったので、ダウンロードしてみることにしました。

先人の知恵を拝見です。

2017年3月16日木曜日

uiConfigrationScriptNodeを無効化する

uiConfigrationScriptNode を作らせないようなスクリプトとか作らない方法とかを記事にしてみたりもしましたが、九条バリアは余裕で突破されてしまいます。FAQです。


なので最近はもっぱら積極的防衛に切りかえています。

まず、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;

とすることで使い勝手が良くなります。

2016年10月17日月曜日

uiConfigurationScriptNode

maya2017になりUI周りが大幅に変更されたので、少しはマシになっているかと淡い期待を抱きつつ
uiConfigurationScriptNodeを調査。

結果は全く変わっていなかった・・・。


とりあえず、サンプルファイルを作るためpolyCubeを作成。


uiConfigurationScriptNodeの有るファイルと無いファイルを作成します。

このノードは、
Preferences Interface - UI Elements
Panel Configrations にある
When saving:□ Save panel layouts with file
のチェックを入れると保存時に作られます。
初期値はON。



ファイルサイズはuiConfigurationScriptNodeの有る方が80KBほど大きいですね。



.mltファイルはバイナリファイルですが、秀丸で開くとLayoutコマンドがガッツリ記述されています。


上は最初ら辺の一部で、ここから2000行ほど続きます。
これが80KBの正体。

ファイルサイズがデカくなるだけならまだ良いのですが、このノードの有るファイルを開くとmayaに色々と不都合をもたらすので厄介です。


2015年11月30日月曜日

uiConfigurationScriptNodeを作らせない

ぐぐたすから探し出すのが大変なのでブログへ再投稿。

global int $gUseSaveScenePanelConfig;
global int $gUseScenePanelConfig;
if( $gUseSaveScenePanelConfig ) $gUseSaveScenePanelConfig=0;
if( $gUseScenePanelConfig ) $gUseScenePanelConfig=0;


起動時に実行するようなスクリプトへ記入しておく。


uiConfigurationScriptNodeは読んで字の如く、mayaのUIを復元する為のスクリプトノード。
昔はそうでもなかったが、バージョン番号が年号になってからシーンファイル内における割合が極端に多くなったような気がする。
メインウィンドウだけの状態でも100KBくらいは行くんじゃないだろうか・・・。
しかもmayaBinaryで保存してもASCIIのままなので圧縮が掛からないという。

カスタムレイアウトなんか作ったりした日にゃ目も当てられない。

なぜシーンファイルに入れるのか謎なノード。


ちなみにドキュメントにも
ヒント:
リファレンス ファイルとして使用するオブジェクト/サブシーンを作成する場合は、このオプションを無効にしてください。既定では、Maya は開かれたすべてのエディタについてのあらゆる情報、すべてのシーン ファイル(.ma/.mb)の場所、サイズ、ウィンドウ固有のオプションなどを記憶しています。これは、uiConfigurationScriptNode という名前のスクリプト ノードにアトリビュートとして保存され、ノードの文字列型アトリビュートに追加された MEL コードとして表されます。
とあるし、作成仕様に作らないよう注意書きしても無視するしな。

素人さんはもとより職種によっては中級者くらいな人でも、平気でuiConfigurationScriptNodeの入ったsceneファイルを納品してくるのは、なんだかなぁ~。


---------------------
このノードを無効化するには、こちらを参考にしてみてください。