MAXScript では、Rollout Floaters と呼ばれるモードレス フローティング ダイアログ ウィンドウを作成し、ロールアウト定義を使用して定義したロールアウトを表示できます。
ユーザは、ウィンドウの下端をドラッグしてロールアウト フロータ ウィンドウのサイズを変更できます。
newRolloutFloater <title_string> <width_integer> <height_integer> [<top_integer> <left_integer>] \
[lockHeight:<boolean>] [lockWidth:<boolean>] [autoLayoutOnResize:<boolean>] scrollBar:<on|off|#on|#off|#asNeeded>
タイトル、幅および高さが与えられている状態で、新規のロールアウト フロータ ウィンドウを作成し、開きます。一番上と左の座標を指定しない場合、ウィンドウは画面の中央に開きます。ユーティリティ パネル ロールアウトに正確に適合する幅を複製する場合は、3ds Max コマンド パネルの幅を 218 にします。このメソッドは、ロールアウトを追加する RolloutFloater
の値を返します。
lockHeight
および lockWidth
引数は、ロールアウト フロータの高さおよび幅をロックするかどうか(つまりサイズ変更を無効にするかどうか)を指定します。3ds Max 2019 以降で使用可能です。 既定値は lockHeight:false
および lockWidth:true
です。
autoLayoutOnResize
引数は、ロールアウト フロータのサイズが変更されたときに、その中のロールアウトを自動的に再レイアウトするかどうかを指定します。3ds Max 2019 以降で使用可能です。 既定値は true です。
scrollBar
引数は、フロータにスクロールバーを追加して、その中のロールアウトをスクロールするかどうかを指定します。3ds Max 2019 以降で使用可能です。 既定値は #asNeeded
で、ロールアウト フロータがその中のロールアウトよりも小さい場合のみスクロールバーが表示されます。
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 番目のコンポーネントは高さです。このプロパティは、読み込み/書き込み可能です。
.size
および .position
プロパティによってビューポートのサイズと位置がレポートされます。この場合、プロパティは設定できません。<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 からアクセス可能です。
<rolloutFloater>.dialogBar Boolean, read-only.
ロールアウト フロータがダイアログ バーとして使用されている場合は True を返します。
<rolloutFloater>.rollouts Array of rollouts in floater, read-only
フロータ内のすべてのロールアウトの配列を返します。
<rolloutFloater>.placementName, enums:{#minimized|#maximized|#normal}
このプロパティは、ダイアログ ボックスが最小化、最大化、標準のどの状態にあるのかを取得/設定します。ロールアウトがダイアログ ボックス内に存在しないか、ダイアログ ボックスがダイアログ バーであるかビューポート内にある場合、'undefined' を返します。
このプロパティは、dialogBar でもなくビューポート内にもない Rolloutfloaters に対して有効です。
サブロールアウト内のロールアウトはダイアログ バーまたはビュー ウィンドウとして登録できません。 ロールアウトまたはロールアウト フロータはダイアログ バーとビュー ウィンドウのどちらとしても登録できません。
すべてのロールアウトの / open
状態と、パネル全体の .scrollPos
を close
ハンドラの処理中に記録した後で、open
ハンドラの値をリセットすることにより、スクリプト ロールアウトのロールアウト状態の保存と復元の形式を実装することができます。
<rolloutFloater>.lockHeight Boolean
フロータの境界をドラッグしてフロータの高さを変更できない場合は、True
です。3ds Max 2019 以降で使用可能です。
<rolloutFloater>.lockWidth Boolean
フロータの境界をドラッグしてフロータの幅を変更できない場合は、True
です。3ds Max 2019 以降で使用可能です。
<rolloutFloater>.autoLayoutOnResize Boolean
サイズを変更したときの自動レイアウトがフロータで有効になっている場合は、True
です。3ds Max 2019 以降で使用可能です。
<rolloutFloater>.hwnd IntegerPtr, read-only
フロータが開いている場合はフロータのウィンドウ ポインタを整数ポインタとして含みます。フロータが閉じている場合は undefined
を含みます。
3ds Max 2020 以降で使用可能です。
例:
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