2016年7月14日木曜日

プロシージャのオブジェクト風表記。その2

mayaが.melファイル内のグローバルプロシージャを認識するタイミングは、起動時。
みたいな事でしたが、ここでも注意する事がひとつ。


起動時に行うスクリプトのコンバートでは、ファイル名と同じグローバルプロシージャまでしかコンバートされません。

なので、GUIなんかのコールバックはメインプロシージャの後ろに書くと初回エラーが出ます。
ボタンを押した瞬間にとか。
これは、AUTODESK AREA JAPAN の記事でも書かれていました。

とりあえずファイル名と同じ名前のメインプロシージャは最後に書いとけと言う事ですか。



前振りが長かったですが、本題。

.melファイルをクラスっぽく作成しようとした場合、メインプロシージャが無いのでコンバートされない問題が出てきます。
その場合の対処方法。

まずは、コンソールアプリで、引数が必要なプログラムがヘルプのエラー出力を出すみたいに、
メインプロシージャでグローバルプロシージャのリストをプリントする方法。

グローバルプロシージャを全部書きだすのは面倒ではある。
ま、空のプロシージャでも良いんですけど・・・。


このほかには、source を使用する方法もあります。
指定した.melファイルの内容全てをコンパイルするので、ファイル内の全てのグローバルプロシージャへアクセスする事ができるようになります。
なかなか便利な命令です。

デバッグ中は、シェルフに

{
    source "スクリプト名.mel";
    メインプロシージャ;

}

を追加しておくと重宝します。


本題みじかっ!


0 件のコメント:

コメントを投稿