2010年9月5日日曜日

Softimage(XSI)用プラグイン - FifthMenu -

FifthMenu














概要:
今回のは、Maxのアレっぽいメニューを出すプラグインです。
ただ、設定用UIをまだ作れていないので、コマンド実行時に引き数として
メニュー名や各種オプションを指定したり、メニューを選択(クリック)した際の
戻り値を取得して、判別するスクリプトを書く必要があります。

機能:
・マウスカーソル位置を中心として、上下左右の4つの領域にメニュー群を表示します。
・各メニューの背景と文字の色を指定出来ます。
・選択したメニューの番号が、コマンドの戻り値として出力されます。
(将来的には、メニューやスライダーなども自由に置けるUIを付ける
予定ですが、、、まぁその内に^^;)

使い方:
例えば以下のa0 ~ logmessageの行までをスクリプトエディタにコピーして
実行すると、上の画像と同じメニューが表示されます。

a0 = "test1,1,0"
a1 = "アニメーション:コピー,アニメーション:ペースト,アニメーション:削除"
a2 = "コンスト:位置,コンスト:回転,コンスト:方向,コンスト:ポーズ,全てのコンストレイントの削除"
a3 = "子ノードの選択,選択の可/不可:トグル,選択の可/不可:全て選択可能に"
a4 = "全ての変換をリセット,回転のリセット,移動のリセット"
stat1 = FifthMenu(a0,a1,a2,a3,a4)
logmessage stat1

コマンドの戻り値は『クリックしたメニューの番号』(この例ではstat1に格納されます)
なので、その内容をif文等で選別して各処理を行う、とゆうのが基本の流れとなります。
(詳しくは同梱のサンプルスクリプト「FifthMenu_samplePlugin.vbs」をご覧下さい)

また、上の例ではリピートメニュー設定がONになっているので、2度目の実行からは
下図の様に前回選択したメニューが中央に表示されるようになります。













<引き数解説1>(とりあえず必要な引き数)

FifthMenu,,,,

タイトル名と各オプションの指定
       『"タイトル名,リピートメニュー設定,キーアップ設定"』とゆうように指定します。
           各項目の間にカンマ「,」 を付けて、全体の両端にダブルクオーテーション「"」を付けて下さい。
       ・タイトル名は、何でも良いので適当に付けて下さい。(表示はされないですが、必要です)
       ・リピートメニュー設定は、前回実行したメニューを中央に表示するかどうかを
           指定します。(1なら表示、0なら非表示)
       ・キーアップ設定は、 マウスクリックではなく、『ショートカットキーを離した時』
           に、(マウス下のメニューを)実行するかどうかを指定します。
           (1なら実行する、0なら実行しない)
左上領域のメニューリストの設定
       『"メニュー1,メニュー2,メニュー3"』とゆうように指定します。
           各項目の間にカンマ「,」 、全体の両端にダブルクオーテーション「"」を付けて下さい。
右上領域のメニューリストの指定 以下同文
左下領域のメニューリストの指定 以下同文
右下領域のメニューリストの指定 以下同文


※1つの領域につき、メニュー数は最大20までです。
※メニューの並び順は、では一番下が先頭となり、 
では一番上が先頭となります。(下図参照)


 <戻り値解説>

戻り値のメニュー番号は、下図のような構成となっています。











<背景色、文字色の変更>
以下のように、メニューの背景や文字の色を変更出来ます。



















以下のa0 ~ logmessageの行までをスクリプトエディタにコピーして
実行すると、上図のようなメニューが表示されます。(長いなー)

a0 = "colortest1,1,1,118-80-54,71-28-0,254-241-233"
a1 = "アニメペースト:全てのローカル変換,アニメペースト:ローカル回転,アニメペースト:ローカル移動,アニメペースト:全てのパラメータ,アニメ削除:全てのローカル変換,アニメ削除:ローカル回転,アニメ削除:ローカル移動,アニメ削除:全てのパラメータ"
c1 = "224-228-205,,,,167-219-215"
a2 = "アニメコピー:全てのパラメータ,コンスト:位置,コンスト:回転,コンスト:方向,コンスト:ポーズ,コンスト:距離,コンスト:2ポイント,チェイン アップベクター,チェイン 軸参照,バウンディングボリューム,バウンディングプレーン,コンストレイントの削除,全てのコンストレイントの削除"
c2 = "224-228-205,255-196-140,,,,,,255-159-127,,,,245-105-144"
a3 = "子ノードの選択,プロット:全ての変換,プロット:回転,プロット:移動,選択の可/不可:トグル,選択の可/不可:全て選択可能に,マーキングセット:作成,マーキングセット:有効,マーキングセット:追加"
c3 = "217-205-174,179-168-135,,,190-179-89,,242-185-57"
a4 = "全ての変換をリセット,回転のリセット,移動のリセット,全ての変換をフリーズ,回転のフリーズ,移動のフリーズ,ニュートラルポーズの設定,ニュートラル回転の設定,ニュートラル移動の設定,ニュートラルポーズの解除,全ての変換の一致,回転の一致,移動値の一致"
c4 = "255-231-105,,,209-245-234,,,149-214-196,,,,75-186-207"
stat1 = FifthMenu(a0,a1,a2,a3,a4,c1,c2,c3,c4)
logmessage stat1


<引き数解説2>(色指定用引き数。色指定をしないのであれば省略可)

FifthMenu,a1,a2,a3,a4,,,,
※a1~a4については最初の例と同じです。

タイトル名、オプション、各種色の指定
       『"タイトル名,リピートメニュー設定,キーアップ設定,色指定1,色指定2,色指定3"』
       とゆうように指定します。
       ※タイトル名、リピートメニュー、キーアップ設定については、最初の例と同じです。
       ・色指定1は、カーソルが上に来た時のメニューの背景色を指定します(全メニュー共通)
       色指定2は、デフォルト状態のメニューの文字色を指定します(全メニュー共通)
       色指定3は、カーソルが上に来た時のメニューの文字色を指定します(全メニュー共通)
左上領域メニューの(デフォルト状態の)背景色の指定。
       『"色1,色2,色3"』とゆうように指定します。
           各色の間にカンマ「,」 、全体の両端にダブルクオーテーション「"」を付けて下さい。
       色の指定は、『赤成分-緑成分-青成分』として、0~255の範囲で指定します。
           例えば『255-0-0』とすれば、赤を指定した事になります。
       <指定例>
          "255-255-255,,0-0-0"とした場合は、1つ目のメニューの背景色は白。
          2つ目は省略しているのでそのまま白。3つ目は黒。4つ目移行は省略されて
          いるのでそのまま黒。となります。
右上領域メニューの(デフォルト状態の)背景色の指定。以下同文
左下領域メニューの(デフォルト状態の)背景色の指定。以下同文
右下領域メニューの(デフォルト状態の)背景色の指定。以下同文

※個々のメニューで違う色を指定出来るのは、今の所『デフォルト状態の背景色』だけです。



ダウンロードは以下から

FifthMenu_zip

<インストール方法>
上記ファイルをダウンロードして、解凍して出来る以下のファイルを
FifthMenu.dll
FifthMenu_samplePlugin.vbs
以下のフォルダに入れてください。
C:\users\ログイン名\Softimage\XSI_7.01\Application\Plugins

<アンインストール方法>
Softimageを終了して、インストール時に入れた以下のファイルを削除して下さい。
FifthMenu.dll
FifthMenu_samplePlugin.vbs

<免責など>
本プラグインはフリーウェアですが、再配布は禁止とします。
また、使用した際に生じたいかなる障害についても責任は負いかねますので、ご了承下さい。

開発環境:
WindowsXP SP2 32bit - XSI7.01

5 件のコメント:

  1. すばらしいですね!!早速使ってみたのですが、レイアウトが若干崩れてしまいました(>_<)具体的には上下のブロック同士がボタン3つ分ぐらい重なってしまいます・・。環境はXP SP3 32bit Softimage2011です。(自分の環境だけかな??)応援してます!(^^)v

    返信削除
  2. コメントありがとうございます^o^
    う~ん、レイアウト崩れだとSoftimageのバージョン差は関係無さそうですね。ちょっと原因が思い付かないんですが、次のバージョンでメニューの配置方法を少し変更する予定なので、それで直るかもしれません^^;
    少々お待ちください~

    返信削除
  3. とりあえず配置方法を変更してみましたので、以下お試し下さい。
    FifthMenu_tmp1.zip

    返信削除
  4. どうもお疲れ様です。
    新しい方で試してみました。ばっちりですよ!ずれてません。
    それにしても、こういうの作れるといいですねぇ。とても面白いです。

    返信削除
  5. おお、直りましたかー^o^ 良かったです

    返信削除