スクリプト ファイルをロードする

 
 
 

他の人がスクリプト エディタ(Script Editor)で作成したスクリプト ファイルを読んで編集することができます。このセクションでは、makeRoll プロシージャ用の完成したユーザ インタフェースを含むスクリプトを開きます。ただし、ユーザ インタフェースはレイアウトだけで、機能は含まれていません。

スクリプトを開く準備をするには

  1. スクリプト エディタ(Script Editor)で、コマンド > 行番号の表示(Command > Show line numbers)にチェックが入っていることを確認します。

    行番号の表示(Show Line Numbers)をオンにすると、スクリプト エディタ(Script Editor)でコマンドの横に行番号が表示されます。レッスン中に、スクリプトの修正箇所を伝えるために、行番号を参照することがあります。このレッスンで参照する行番号は、必ずオリジナル スクリプトの行番号を使用します。

  2. コマンド > 新規タブ(Command > New Tab)を選択して、スクリプト エディタ(Script Editor)に新しいタブを作成します。

    ポップアップウィンドウが表示され、このタブに入力するコマンドの言語を選択するよう求められます。

  3. ポップアップ ウィンドウの MEL ボタンをクリックします。

    スクリプト エディタ(Script Editor)に 2 つ目の MEL タブが作成されました。

  4. コマンド > タブ名の変更(Command > Rename Tab)を選択します。
  5. MEL2 と入力します。

    タブ名が変更されました。

次の手順では、ユーザ インタフェース スクリプトを両方の MEL タブにロードします。MEL タブにはオリジナルのスクリプトを入れ、MEL2 タブには 変更したユーザ インタフェース スクリプトを入れます。このようにしておくと、オリジナル スクリプトの行番号を参照して変更箇所を伝えることができます。

スクリプト エディタ(Script Editor)でスクリプト ファイルを開くには

  1. MEL タブを選択します。
  2. スクリプト エディタ(Script Editor)で、ファイル > スクリプトのロード(File > Load Script)を選択します。
  3. mel_Lesson_4_start.melという名前の MEL スクリプトを選択します。

    このファイルは、Maya プロジェクトとして設定した GettingStarted2014LessonData¥MEL フォルダにあります。

    MEL ファイルの内容がスクリプト エディタ(Script Editor)に表示されます。

  4. 上記手順を繰り返し、MEL スクリプトを MEL2 タブにロードします。
  5. MEL タブのスクリプト エディタ(Script Editor)メニュー バーから編集 > すべてを選択(Edit > Select All)を選択して、スクリプトをハイライトします。
  6. [Ctrl]+[E]キーを押して、スクリプトを実行します。

    makeRoll プロシージャに対してユーザ インタフェースが作成されます。makeRoll プロシージャの各引数に対してユーザ インタフェースのコントロールがあります。

    (このウィンドウは後でテストに使用する予定なので、開いたままにしておきます)。

説明: スクリプトで何を行うか

  1. ユーザ インタフェースのコントロールは各種コマンドで作成されています。下の

スクリプトを複数のセクションに分割して、各種ユーザ インタフェース コントロールとそのフラグについて説明しています。レッスンの前半で使用したユーザ インタフェース コントロールとコマンドについては、以下で簡単に説明します。

条件文

if(`window -exists makeRoll_Window`) 
{ 	
   deleteUI makeRoll_Window; 
}

これは指定した名前のウィンドウが存在するかどうかチェックする条件文です。ウィンドウが存在すれば、それを削除します。

ウィンドウ コマンド

window -resizeToFitChildren 1 makeRoll_Window;

window コマンドは、コントロールを含むユーザ インタフェース ウィンドウを作成します。詳細については、ウィンドウを作成するを参照してください。

カラム レイアウト

columnLayout;

columnLayout コマンドは、コントロールを縦 1 列に配置するレイアウトを作成します。詳細については、コントロールを参照するを参照してください。

テキスト フィールド コマンド

string $obj_name_text = 	
   `textField 	
   -editable 0 	
   -width 400 	
   -text "name_Of_Object"`;

コマンド textField は、編集可能なテキスト フィールドを作成します。テキスト フィールド コマンドには複数のフラグがあります。テキスト フィールドの名前とパスは変数として格納されます。詳細については、コントロール名を格納するを参照してください。

  • editable フラグは、テキスト フィールドの編集を有効化/無効化します。
  • width フラグはコントロールの幅を設定します。
  • text フラグはテキスト フィールドの内容を設定します。

スライダ コマンド

string $ground_int= 	`intSliderGrp 	
   -minValue -20 	
   -maxValue 20 	
   -fieldMinValue -20 	
   -fieldMaxValue 20 	
   -field 1 	
   -label "Ground Plane"`; 
string $diameter_float= 	`floatSliderGrp 	
   -value 1.0 	
   -minValue 1.0 	
   -fieldMinValue 1.0 	
   -field 1 	
   -label "Diameter"`;

コマンド intSliderGrp と floatSliderGrp はスライダを作成します。Grp で終わるコマンドは、リンクされたコントロールのグループを作成します。スライダ コマンドはラベル、値ボックス、スライダのコントロールを作成します。スライダ コマンドには複数のフラグがあります。スライダの名前とパスは変数として格納されます。詳細については、コントロール名を格納するを参照してください。

  • editable フラグを使用して、テキスト フィールドの有効化/無効化が可能です。
  • minValue フラグと maxValue フラグは、スライダの最小値と最大値を設定します。
  • field フラグはスライダの横にある編集可能な値フィールドを表示可能にします。既定では、このフィールドは非表示です。
  • fieldMaxValue フラグと fieldMinValue フラグは、スライダの横にあるフィールドの最小値と最大値を設定します。
  • label フラグは、スライダの左に表示するテキストを設定します。

セパレータ コマンド

separator -height 20 -width 120;

コマンド separator は水平ラインを作成します。これは、ウィンドウでコントロールを垂直方向に同間隔に配置する場合に使用します。separator コマンドには複数のフラグがあります。

  • width フラグは、セパレータの表示幅を設定します。
  • height フラグは、セパレータによって作成される垂直方向のスペースの合計を設定します。

チェック ボックス コマンド

string $box_sim_checkbox = 	`checkBox 	-value 1 	-label "Box Simulation"`; 
string $sphere_sim_checkbox = 	`checkBox 	-value 0 	-label "Sphere Simulation"`; 
separator -height 20 -width 120; 
button 	
   -label "Execute!" 	
   -command "print (\"something\");";

コマンド checkBox はチェック ボックスを作成します。チェック ボックス コマンドには複数のフラグがあります。チェック ボックスの名前とパスは変数として格納されます。詳細については、コントロール名を格納するを参照してください。

  • value フラグは、チェック ボックスの初期値を設定します。

ShowWindow コマンド

showWindow;

最後に作成されたウィンドウを表示可能にするコマンドです。詳細については、ウィンドウを作成するを参照してください。

注:

上記スクリプトでは、変数を明示的に宣言していません。これは、ユーザ インタフェース作成コマンドの戻り値のデータ型は文字列と決まっており、その他のデータ型はありえないからです。戻り値のデータ型をまだ知らないため、レッスンの後半ではデータ型を宣言しないでおきましょう。