CG・コンテンツ制作
  1. CG・コンテンツ制作トップ
  2. DAIKIN CG Channel
  3. UsersNotes
  4. スクリプト
  5. 既存のスクリプトを任意のメニューに登録して使う | 自動認識型プラグインの作成
SUITE USERS NOTES

既存のスクリプトを任意のメニューに登録して使う
>> 自動インストールプラグインの作成

scriptbutton_00
custommenu_00

ritaro_ml

プロローグ
今回は、既に持っているスクリプトで動くツールがあって、それをボタン登録して動いているものがあるとします。
通常それは、表示 > ツールバー > 新規ツールバー内にボタンを押せば、動くようにしているはずです。
scriptbutton_01
ですが、自分の作業のワークフローとしては、メインメニューにあるツールを画面上に置いて作業をしていて、
その使用しているメニュー内にこのスクリプトのボタンがあればもっとすっきりすると考えたことはないでしょうか?
そこで、既存スクリプトを自動インストールプラグイン(Self-Installing Plug-ins)に書き換えて、
良く使用するメニューに登録する、といったことを紹介したいと思います。


幾つかの事前情報を提供します。

自動インストールプラグイン
C:\users\<username>\Softimage\XSI_<ver>\Application\Plugins
内にそのファイルを置くだけで自動的にインストールされる形式のプラグインです。

XSIのSDKについて
スクリプトエディターの右上の [?] ボタンを押すとSDK入門ドキュメントが開きます。
場所>>C:\Softimage\XSI_バージョン\Doc\jp\XSISDK\xsisdk.chm)
その中の
SDK Customizationガイド  > 
自動インストールプラグイン
SDK Customizationガイド > 標準メニューとコンテキストメニュー
ユーザ独自のメニューの作成方法
XSIでのカスタムメニューの登録
メニューアンカーポイントについて
等参考箇所多数。

既存スクリプトの内容確認
ここでは、Olivier Ozouxさんが作成しているOO_InvertConstraint.vbsというスクリプトを例にとらせていただきました。

この中身を見ると、InvertConstraintProcというコマンドが実行されていることがわかります。

InvertConstraintProc
'--------'--------'--------'--------'--------'--------'--------'--------'
sub InvertConstraintProc()
中略
end sub
sub InvertConstraint(inCns)
中略
end sub

このInvertConstraintProcというコマンドが自動インストールプラグイン内のExcute部分から呼ばれるようにすると同時に
好きなメニューに実行する項目を登録するのが目的です。

ウィザードを使って雛形を作成しプラグインを作る
プラグインマネージャからウィザードを使えば簡単に自動インストールプラグインの雛形が作成できます。
ファイル > プラグインマネージャから下図のように表示し、ユーザールート > プラグイン > 新規作成 > コマンドを選択します。
wizard
すると、カスタムコマンドを作成するウィザードが表示されます。
想定しているコマンド名を記述し、コーディング言語にVBSを選択し、メニューに追加はこの実行ファイルを配置する場所を指定します。
右側の[?] ボタンを押すと、置ける場所一覧(=XSIメニューのアンカーポイントと言う)が表示されます。
wizard_01
実はこのアンカーポイントの種類はV7.0用のSDKのドキュメントで3704から4000に大幅に増えています。
この中から、2007番、[Constrain]メニューのアンカーポイント を利用するとします。(このアンカーポイント自身はV6.5でも利用できます)
wizard_02s
最後に出力ディレクトリーを確認し[コードの生成]ボタンを押します。
するとここまでのものを作成してくれます。0-InvertConstPlugin.vbs
wizard_03
42行目のfunction InvertConst_Execute( ) 行のfunction内に
先の実行コマンド
InvertConstraintProc
を入れ込みます。

function InvertConst_Execute( )
Application.LogMessage "InvertConst_Execute called",siVerbose
'
' TODO: Put your command implementation here.
'
InvertConstraintProc

InvertConst_Execute = true
end function

後は、上で出来た構文の最後の行に続いて、コンストレイントを逆にするプログラムで

Option Explicit

InvertConstraintProc

を抜いたものを記述すればプラグインの完成です。


編集したプラグインはXSIを再起動せずに、プラグインマネージャから再ロードをすることができます。編集することもここから出来ます。

wizard_04


構文に間違いがある場合は、XSIの画面下のバーが赤く表示されて、その内容がスクリプトエディターに表示されます。

wizard_05

XSI上でツールの動作確認
主なコンストレイントが設定されているオブジェクトを選択し、
作成したコンストレイント・メニューに登録されているInvertConst を実行します。
すると各コンストレイントの矢印が反転し、ツールが正常に動作していることが確認取れます。
xsi_00
このように既存スクリプトを任意のメニューに登録して、作業の効率化がはかれます。
例えば、ファンクカーブを編集するツールは、AnimationEditorの編集メニュー内に置くことが出来ます。

お気軽にお問い合わせください

Daikin CG News お申し込み

CGクリエイター向けのセミナー・イベントやキャンペーン、製品情報をメールマガジンでお届けします。(登録無料)

Twitter

ページの先頭へ