単一のコントロールセットを使用して異なるレイヤーのパラメーターを制御する

編集範囲を使用すると、単一のコントロールセットを追加して異なるオブジェクトに適用できます。たとえば、「Octave」「Coarse」「Fine」などのパラメーターを持つ複数のレイヤーを含むプログラムがある場合、これらのパラメーター用に単一のコントロールセットを作成し、レイヤー間で編集範囲を切り替えることができます。

手順

  1. 2 つのレイヤーを含むプログラムを作成し、各レイヤーに「LayerA」と「LayerB」という名前を付けます。
  2. プログラムの「Macro」ページを作成します。
  3. GUI ツリーで、「Macro」ページにグループを追加します。
  4. グループにノブコントロールを追加します。
  5. ノブにエンジンパラメーターを関連付けるには、パラメーターリストを開いてレイヤー A の「Coarse」パラメーターを「Properties」セクションにあるノブの「Value」フィールドにドラッグします。

    フィールドに「LayerA.Coarse」と表示されます。

  6. ノブの「Value」フィールドをクリックします。

    エンジンパラメーターのパス全体が表示されます。この例では「@0:LayerA/@id16」です。

  7. パス情報の最初の部分、つまり「@0:LayerA/」を切り取って、グループの「Scope」値フィールドに貼り付けます。

    動的範囲の場合のみパラメーター ID が必要になります (この例では⁠「@id16」⁠)。パスの最初の部分、つまり「@0:LayerA/」はグループの範囲情報として必要です。

  8. パス情報をグループの「Scope」値フィールドにコピーします。
  9. 「Macro」ページに「Variables」フォルダーを追加します。
  10. 「String List」変数を作成して「LayerSelect」という名前を付けます。
  11. パス情報をグループの「Scope」値フィールドから文字列リスト変数の最初の項目行にコピーします。
  12. 同じパス情報を 2 番めの項目行にコピーして「LayerA」を「LayerB」に変更します。

    2 つのパスの文字列の間で変数が切り替わります。ここで、これら 2 つの文字列の間で切り替わるコントロールが必要です。

  13. 「Macro」ページにメニューコントロールを追加します。

    ノブやラジオスイッチといった他のコントロールを使用して範囲を変更することもできます。

  14. メニューの「Value」フィールドに「@LayerSelect」と入力します。
  15. メニューとグループがどちらも同じ変数を使用するように、グループの「Scope」値フィールドにも「@LayerSelect」と入力します。
  16. これで、メニューを使用してグループの 2 つの範囲を切り替える、つまり影響を受けるレイヤーを選択できるようになりました。
    補足

    動的範囲内でコントロールを使用するには、まずパス情報をグループの「Scope」値フィールドに追加し、そのあとエンジンパラメーターをコントロールに関連付けます。こうすることで、エンジンパラメーターをドラッグしたときに編集範囲があることを HALion が自動的に検出し、サブパスまたは最もシンプルな場合にはパラメーター名のみを「Value」フィールドに追加します。

    パラメーターリストからパラメーターをドラッグする前に、プログラムツリーでパラメーターのドラッグ元であるオブジェクトが選択されていることを確認してください。そうしないと、HALion が正しいパラメーター名を取得できず、かわりにパラメーター ID だけが表示されます。