ビジュアル MAX スクリプト

ビジュアル MAX スクリプトは、[MAXScript]ロールアウトのレイアウトや編集に使用する、直接操作、マルチスレッド、フォームベースのエディタです。フォーム エディタを使用してロールアウトのスクリプトを最初から作成することも、スクリプト エディタ ウィンドウで既存のロールアウト定義の編集や追加を、フォームエディタを使用してインタラクティブに行うこともできます。

レイアウト エディタへのアクセス方法は 2 つあります。

ユーティリティ コマンド パネルからユーティリティとしてアクセスすると、レイアウト エディタは「スタンドアロン」モードで動作します。作成されたフォームは、ロールアウト定義のスクリプトの入ったスクリプト ファイルとして個別にエクスポートすることも、特殊な .vms バイナリ レイアウト ファイルに保存してビジュアル MAX スクリプト ユーティリティで再び開けるようにすることもできます。このモードの場合、エクスポートされたスクリプト ファイルはスクリプト エディタ ウィンドウで開くことができ、MAXScript でさらに編集したり、他のスクリプト ファイルとマージしたりできます。

スクリプト エディタの[編集](Edit)メニューの新項目からアクセスすると、レイアウト エディタがアクティブ スクリプト エディタのロールアウト定義セクションに適用されるように、レイアウト エディタは設計されています。[新規ロールアウト](New Rollout) は、ロールアウト定義を最初から作成するときに使用します。編集ウィンドウで新しく生成するロールアウトのコードを挿入する位置にカーソルを置き、[編集](Tools) > [新規ロールアウト](New Rollout) を選択します。エディタが空のフォームで開き、そこでロールアウト項目の追加、配置および編集を行うことができます。レイアウト エディタ ウィンドウで [ファイル](File) > [保存](Save) を選択するか [保存](Save)アイコンを押すと、その時点でロールアウトのスクリプトがエディタ ウィンドウに挿入されます。以後、レイアウト エディタを開いたまま編集や保存を行うと、挿入されたコードも更新されます。

[ロールアウトを編集](Edit Rollout)(ホットキー[F2]) は、アクティブ スクリプト エディタで既存のロールアウト定義を編集するときに使用します。ロールアウト定義またはユーティリティ定義内にカーソルを置いて [編集](Tools) > [ロールアウトの編集](Edit Rollout)([F2]) を選択すると、そのロールアウトを表示した状態でレイアウト エディタが開きます。レイアウト エディタのロールアウトは編集したり、追加したりできます。レイアウト エディタの [ファイル](File) > [保存](Save)を選択するか[保存](Save)アイコンクリックすると、編集されたロールアウトに対応する新しいコードで元の定義が置き換えられます。以後、レイアウト エディタを開いたまま変更や保存を行うと、コードも更新されます。

機能

  • 一度に複数のレイアウト エディタを開けます。この機能により、カット アンド ペーストができます。ただし、VMS ではイベント コードのカット アンド ペーストも行われます。

  • スクリプト エディタ ウィンドウからレイアウト エディタを開くと、レイアウト エディタが開いている間はスクリプト エディタ ウィンドウのテキストは「フリーズ」されます。エディタ ウィンドウを前面に置いてスクロールしたり保存したりすることはできますが、その他の操作は無視され、警告音が鳴ります。スクリプト エディタは、レイアウト エディタを閉じるとすぐに「フリーズ解除」されます。

  • [編集](Edit) > [ロールアウトの編集](Edit Rollout)の機能は、既存のどのロールアウト定義にも適用できます。この機能では、定義を解析してこれと同等の編集可能なバージョンをレイアウト エディタに開こうとします。これはいくぶん試行錯誤的な面があり、バグを取り除くまでは特定のロールアウトに関して失敗する可能性があります。MAXScript では、ロールアウトのすべてのコードを保存し、レイアウト エディタで編集できる設定(UI 項目とそのハンドラ)に対応する部分のみを更新します。

  • レイアウト エディタが生成するコードでは、UI 項目の pos: width: および height: パラメータを明示的に指定する一方、align: や offset: などの自動レイアウト パラメータは使用しません。つまり、自動レイアウトを使用するロールアウトを編集するとき、最初の[ファイル](File) > [保存](Save)の実行で、明示的に位置を指定されたレイアウトへの変換が行われます。エディタで任意に編集をしながら自動レイアウト パラメータを保存することは非常に困難です。そのため、レイアウト エディタを使用して編集したロールアウトは、今後もレイアウト エディタを使用して編集されると想定されます。

  • 注:

    極端な例としては、グループ ボックス内に一連の項目をネストするために使用される group ( ) 構文があります。ネストされた group ( ) 構文は、レイアウト エディタによって完全に削除され、元の項目に基づいた明示的なサイズ指定のボックスを定義する groupBox UI 項目で置き換えられます。ネストされた groupBox は、必要に応じてエディタで編集および追加できます。

    • [編集](Edit) > [ロールアウトの編集](Edit Rollout)で開いたロールアウト定義にシンタックス エラーがある場合、そのシンタックス エラーは通知され、エラー部分がハイライトされます。レイアウト エディタは開きません。

    • レイアウト エディタはエラーのないソースに関してのみ開くことができます。レイアウト エディタでロールアウトを初めて編集または作成するとき、コマンド パネル ロールアウトの標準の幅がレイアウト エディタの既定の幅として使用されます。この幅は、エディタ内で外側の灰色の長方形と、生成されたロールアウト ヘッダ上のエディタ放出幅:および高さ: のパラメータ サイズを変更して調整できます。スクリプト エディタでこれらの数値を編集すると、次に該当するロールアウトをレイアウト エディタで編集するときに、編集後の数値が採用されます。

    コマンド パネル ロールアウトやその他のスクリプト プラグインに関しては、自動的に正しい幅を得るためのシンボリック定数が新しく用意されました。これら 2 つのオペレータは次のとおりです。

    #cmdPanel #effectsDlg #mtlEditor

    したがって、スクリプト Material のロールアウトを作成するときには、次に示すように、ロールアウト ヘッダーに width: パラメータを追加します。

    例:

    rollout foo "Frabulation" width:#mtlEditor
    (
    ...
    
    • 新しい UI 項目を追加するには、最下部にある項目ツールバーのボタンをクリックし、メイン フォームでマウスをドラッグすることにより、項目の矩形を表示します。既存の項目を選択すると、右側のプロパティ リストで項目のパラメータを編集できます。複数の項目を選択するには、マウスをドラッグしてそれらの項目を囲むか、[ctrl]キーを押しながらクリックします。選択したら、いろいろな位置合わせ操作が行えます。詳細は レイアウト メニューを参照してください。選択したアイテムを削除するには、ツールバーの赤の X ボタンをクリックします。エディタのレイアウトをカスタマイズする場合には、それぞれのペインをサイズ変更したり、切り離したりすることもできます。

    • 軸を制限するには、[Shift]キーを押しながらオブジェクトを移動します。こうすると、最初の位置に対するマウスの角度に基づいて、動きは X 軸または Y 軸だけに制限されます。

    • MAXScript の複数行の editText に関連して、エディタの editText ボックスに複数の行を入れることができるようになりました。

    • [配列エディタ](Array editor) ダイアログ ボックスでの編集が合理化され改善されました。リストボックスの項目をクリックすると、その選択の状態が切り替わります。項目がリストボックスで選択されている場合、編集フィールドでテキストを変更して [enter] キーを押すと、選択された項目が編集ボックスの内容に変更されます。こうして、リストの途中にあるエントリの編集ができます。

    • [VisualMS] ダイアログ ボックスの最下部の項目タイプ ツールバーに新しいカスタムの項目タイプが追加され、カスタム項目を最初からエディタで作成できるようになりました。このアイコンは、ツールバーの横顔のアイコンです。最初に作成するとき、パラメータ リストの項目クラス パラメータには「???」と表示されるので、これを編集して必要なカスタム項目タイプにする必要があります。

    • MAXScript には、ActiveX コントロールのロールアウト項目タイプが用意されています。アイコンは、[VisualMS]ダイアログ ボックスの最下部にある UI 項目ツールバーにあります。ドットの配列の上に OLE という文字が重ねられたアイコンです。MAXScript ロールアウト内の ActiveX コントロール

    • サードパーティから追加されたものなど、認識できない UI 項目タイプを含むロールアウトのソースの編集をします。[VisualMS]ロールアウト ウィンドウでは、MAXScript の拡張子 .dlx は新しい「カスタム」項目を示し、新しい「カスタム」タイプ アイコンが入った矩形として表示されます。オンになっている定義パラメータはパラメータ リストに表示され、編集ができます。カスタム タイプを示す矩形の全体的な位置と大きさは、ロールアウト ペインで編集できます。

    • メイン フォームのまわりの白い空間をクリックすると、すべての選択を解除できます。

    • メイン フォームは、選択されていないときでも黒い矩形で囲まれて示されます。こうして、アプリケーションのバックグラウンド カラーとフォームの色が同じであっても、フォームを見ることができます。

    • メイン フォームのサイズ変更は、グリッド単位がオンになっていると、グリッド単位に行われます。

    • 貼り付けコマンドが使いやすくなりました。貼り付けられたオブジェクトは[10,10]ピクセルでオフセットされ、一意の名前を取得します。次に、貼り付けるものがすべて選択解除され、貼り付けられたオブジェクトが選択されます。

    • VMS で自動レイアウトを利用する既存のロールアウト定義を初めて編集する場合、エディタが項目を正しく配置できるように、まず 「 width:n 」 パラメータをロールアウト ヘッダーに追加することを強くお勧めします。 width: パラメータを指定しないと、コマンド パネルの幅が既定値として使用されます。これは、固定されないウィンドウのロールアウト、スクリプト マテリアル、効果などには小さすぎる場合があります。

    rolloutFloater に表示されるロールアウトの場合は、ロールアウト幅をフロータ ウィンドウ マイナス 30 になるように設定する必要があります。

    rollout foo "Frabulation" width:#270
    (
    ...
    )
    ...
    rf = newRolloutFloater "Frabo" 300 220
    addRollout foo rf