UI関連 アトリビュートの追加方法1 1


MaxはもちろんMayaでも
独自のアトリビュートを追加することは多いだろう
特に都合の良いアトリビュートパラメーターから
何かを生成することも色々とね

と、言うことで
オリジナルのアトリビュートを追加するには

Alt+1 のショートカットでパラメーター編集という
アトリビュートの追加や編集を行うマクロが立ち上がる

追加や削除はおおよそ出来るのだが

ここで、追加できるアトリビュートの見た目には少し偏りがある

左は通常機能、右がスクリプト

自由な見た目のアトリビュートを追加したいのならば
スクリプトでこんな風に書く

オブジェクトの現在のアトリビュートに
オリジナルのアトリビュートを追加する方法は・・・

[as3]

newAttrib1 = attributes originalSet –まずはアトリビュートを作成
(

–パラメーター部分
 parameters params rollout:setting_rol
 (
–uiの部分ではロールアウト内の対象を指定している
–animatableという引数がある場合、trueならばアニメート可能、falseはアニメート不可

  Ratio1 type:#float ui:Ratio1Spn default:1;
  Ratio2 type:#float ui:Ratio2Spn default:0.1;
 )–パラメーター終わり

–ロールアウト部分
 rollout setting_rol “オリジナル設定” width:160
 (
 –////////////////////////////////////////////////
 –レイアウト
 –////////////////////////////////////////////////
 –レイアウトは自由
  GroupBox SetGrp ” オリジナル” pos:[4,4] width:155 height:64
  spinner Ratio1Spn “” pos:[52,22] width:80 height:16 range:[-1000,1000,0.01];
  spinner Ratio2Spn “” pos:[52,44] width:80 height:16 range:[-1000,1000,0.01];
  label Lbl01 “レート1” pos:[12,24] width:36 height:16
  label Lbl02 “レート2” pos:[12,46] width:36 height:16
 )–ロールアウト終わり

)–アトリビュート終わり

–次の1行で作ったアトリビュートを追加する
custAttributes.add $.modifiers newAttrib1;

[/as3]

このスクリプトを、スクリプトエディタ上にコピーして
Ctrl + e のショートカットで実行すれば、
選択したオブジェクトの、現在のアトリビュートに
カスタムアトリビュートが追加される

主に、まずアトリビュートの作成をする
作成する内容は、主にパラメーター部分とロールアウトのレイアウト部分

ロールアウト内容からパラメーターを作成するのだが
パラメーターは特にロールアウトに無くとも単独で持つことも可能
typeとは、そのパラメーターの変数タイプを設定している
実数を取り扱うだけならばfloatで事足りると思うが

ほかには、0と1の値しか持たないbooleanとか
RGB値を持つことの出来るcolorとか、
シーン上のオブジェクトを格納出来るmaxObjectなどがある
詳しくはリファレンスで以下キーワードを検索されたし
・グローバルおよびプライベート カスタム アトリビュートの定義
・スクリプト プラグイン句

もちろん、ロールアウト内には独自の処理を書き込む事もできる
たとえば、ボタンを押したときの処理など
ファンクションも宣言できるので
アトリビュート内にある種のスクリプトツールを
埋め込むことも出来るのだな

一点注意としては
アトリビュートのパラメーター類は
複雑化すればするほど、アップデート処理が必要になってくるので
特に、アトリビュート内にシーン上のオブジェクトを格納するような場合は
注意が必要なのだな

おそらくだが、
ほとんどの場合、実数値を持たせて、それを使用するのが主な使い方なので
複雑な処理を期待するのならば
ここで、処理を書き込むよりはオリジナルのモディファイアとして
作成するのがいいとおもう

双方でやっていることにさほどの違いもないので
オリジナルのアトリビュートよりもモディファイアの方が
汎用性が高くていいだろうね


Leave a comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

One thought on “UI関連 アトリビュートの追加方法1