ロールアウト フロータ ウィンドウ

 

   

ユーザ インタフェースの作成 - クイック ナビゲーション

MAXScript では、Rollout Floaters と呼ばれるモードレス フローティング ダイアログ ウィンドウを作成し、ロールアウト定義を使用して定義したロールアウトを表示できます。

ユーザは、ウィンドウの下端をドラッグしてロールアウト フロータ ウィンドウのサイズを変更できます。

これをサポートするのが、次の 2 つの関数と 1 つの特殊なクラスです。

newRolloutFloater <title_string> <width_integer> <height_integer> [<top_integer> <left_integer>]

タイトル、幅および高さが与えられている状態で、新規のロールアウト フロータ ウィンドウを作成し、開きます。一番上と左の座標を指定しない場合、ウィンドウは画面の中央に開きます。ユーティリティ パネルを収容する正確な幅を複製するには、3ds Max コマンド パネルの幅を 218 にします。

このメソッドは、ロールアウトを追加する RolloutFloater の値を返します。

   

closeRolloutFloater <rolloutFloater>

ロールアウト フロータ ウィンドウを閉じます。ユーザはウィンドウ上のクローズ ボックスをクリックしてもウィンドウを閉じることができます。いったんウィンドウを閉じると、使用できなくなります。ロールアウト フロータ ウィンドウのロールアウト内のクローズ ハンドラはすべて呼び出され、他のロールアウト フロータ ウィンドウやスクリプトで書かれたユーティリティで使用できるように開放されます。

   

ユーティリティ パネルにロールアウトを追加、削除するための既存の関数が拡張され、ロールアウト フロータ ウィンドウで作用します。

addRollout <rollout> [ <rolloutFloater> ] [rolledUp:<boolean> ] [border:<boolean>]

オプションの 2 番目の引数を指定する場合は、 newRolloutFloater() 関数から返される RolloutFloater 値を指定する必要があります。最初の引数で定義されたロールアウトは、ウィンドウに既に存在しているロールアウトの後に追加されます。

オプションの rolledUp: キーワード引数が指定されている場合、ロールアウトは、True に設定されている場合はロール アップされた(閉じた)状態で初期表示され、False に設定されている場合はロール ダウンされた(開いた)状態で初期表示されます。

オプションの border: キーワード引数が 3ds Max 2009 以降で指定され、false に設定されている場合、ロールアウトは境界線なしで表示されます。キーワード引数が指定されていない場合、または True に設定されている場合、ロールアウトの周囲に境界線が表示されます。

   

removeRollout <rollout> [ <rolloutFloater> ]

指定されたロールアウト フロータ ウィンドウからロールアウトを削除します。

上記の両関数において、オプションの<rolloutFloater>を指定しない場合、ロールアウトは[ユーティリティ](Utilities)パネルに追加、または[ユーティリティ](Utilities)パネルから削除されます。詳細については、「スクリプトで書かれたユーティリティでの複数のロールアウトの管理」を参照してください。

   

ロールアウト フロータ ウィンドウには、次のプロパティがあります。

<rolloutFloater>.title String

フロータのタイトル。

注:

ダイアログ バーとして登録されたロールアウト フロータのタイトルは変更できません。

   

<rolloutFloater>.size Point2

ピクセル数による現在の RolloutFloater ウィンドウのサイズです。Point2 の最初のコンポーネントは幅、2 番目のコンポーネントは高さです。このプロパティは、読み込み/書き込み可能です。

   

<rolloutFloater>.pos Point2

Point2ピクセルによる現在のロールアウト フロータ ウィンドウの画面上の位置です。このプロパティは、読み込み/書き込み可能です。

注:

ロールアウト フロータが拡張ビューポート内にある場合、サイズおよび位置のプロパティによってビューポートのサイズと位置がレポートされます。この場合、プロパティは設定できません。

ユーザが、またはスクリプトで、 size プロパティを変更し、ロールアウト フロータ ウィンドウをリサイズすると、 resized イベントがロールアウト フロータ ウィンドウの最初のロールアウトに対して生成されます。同様に、ユーザが、またはスクリプトで、 pos プロパティを変更し、ロールアウト フロータ ウィンドウを移動すると、 moved イベントがロールアウト フロータ ウィンドウの最初のロールアウトに対して生成されます。 resized および moved イベントに対するイベント ハンドラについては、「ユーティリティおよびロールアウトのプロパティ、メソッド、およびイベント ハンドラ」を参照してください。

   

<rolloutFloater>.inViewport Boolean, read-only.

フロータが拡張ビューポート内にある場合は True を返します。

<rolloutFloater>.open Boolean, read-only.

フロータが開いている場合は True を返します。

<rolloutFloater>.visible Boolean

3ds Max 2014 の新機能: ロールアウト フロータの可視性を取得/設定します。

True (既定値)に設定すると、ロールアウト フロータが表示されます。

False に設定されると、ロールアウト フロータは描画されません。ただし、ロールアウト フロータとそのロールアウトは引き続き MAXScript からアクセス可能です。

注:これは、3ds Max 以前のバージョンで使用されることのあったロールアウト フロータを画面外に配置するハックの代わりに使用できます。3ds Max 2014 以降では、画面外のダイアログはすべて自動的にビュー内に戻されます。

   

<rolloutFloater>.dialogBar Boolean, read-only.

ロールアウト フロータがダイアログ バーとして使用されている場合は True を返します。

   

<rolloutFloater>.rollouts Array of rollouts in floater, read-only

フロータ内のすべてのロールアウトの配列を返します。

   

例:

rollout grin "Grin Control"
(
slider happy "Happy" orient:#vertical across:5
slider sad "Sad" orient:#vertical
slider oo "OO" orient:#vertical
slider ee "EE" orient:#vertical
slider oh "OH" orient:#vertical
/*
on happy changed val do object.xform1.center = ...
on sad changed val do object.xform2.gizmo.rotation = ...
...
*/
)
theNewFloater = newRolloutFloater "Grinning" 300 220
addRollout grin theNewFloater