[Connection Template]プロパティ エディタ

 
 
 

新しいコネクションマッピング テンプレートを作るためには、Animation Mixer の[エフェクト](Effect) [空のコネクション テンプレートの作成](Create Empty Cnx Template)または[Animate]ツールバーから[アクション](Actions) [テンプレート](Templates) [空のコネクション テンプレートの作成](Create Empty Cnx Template)を選択します。

再表示するには: Animation Mixer の[エフェクト](Effect) [コネクション テンプレート](Cnx Template)メニューからテンプレートを選択します。プロパティ エディタにはテンプレートの各ルールを示す一覧表があります。

[MappingTemplate]プロパティ エディタのルールを選択するには、[テンプレート](Template)列の名前(たとえば、[ルール 1](Rule 1))をクリックするか、または対応する行のいずれかのテキスト フィールドにカーソルを移動します。

詳細については、「コネクション マッピング テンプレート」(「Animation Mixer のノンリニア アニメーション」)を参照してください。

テンプレート(Template)

各コネクション アイテムのルール番号を一覧表示します。

マップ元(Map From)

置き換えられる文字列です。通常はオブジェクト名です。このコネクション テンプレートがアクティブで、アクション クリップがインスタンス化されている場合、この文字列から始まるパラメータは新しいパラメータにマップされます。

マップ先(Map To)

置き換えるパラメータで、通常は他のオブジェクト名です。このコネクション テンプレートがアクティブで、アクション クリップがインスタンス化されている場合、対応する[マップ元](Map From)の文字列から始まるパラメータは、これらのパラメータにマップされます。

アクティブ(Active)

このコネクション テンプレートがアクティブかどうかを表します。アクション クリップがインスタンス化されている場合、現在アクティブとなっているコネクション マッピング テンプレートのルールが適用されます。変更しても既存のクリップのコネクションには影響ありません。既存のコネクションを変更するには、削除するかクリップを再度インスタンス化する必要があります。

ルールの挿入(Insert Rule)

テンプレートに新しいブランク ルールを追加します。新しいルールは、選択されたルールの上に追加されます。ルールは上から下にチェックされるため、これを知っておくことは大切です。

ルールの削除(Delete Rule)

選択されたルールを削除します。

確認(Validate)

ルールの妥当性をチェックします。現在のモデルに存在しないオブジェクトやパラメータ名があれば、赤色で表示されます。

ワイルドカード、部分文字列置換または[<unmapped>]トークンを伴うルールは、常に赤色表示となります。

ヒント:ルールの表示を調整する場合は、プロパティ エディタまたは列をサイズ変更してください。列のサイズを変更するには、マウス ポインタを列のヘッダの境界線上に移動します。マウス ポインタが両方向矢印に変化したら、クリック アンド ドラッグして幅を変更します。

ルールを編集する

[マップ元](Map From)列と[マップ先](Map To)列のオブジェクトとパラメータ名を選択(または入力)することにより、[MappingTemplate]プロパティ エディタのルールを編集することができます。これは、[マップ元](Map From)列の名前と[マップ先](Map To)列の名前を置き換えます。

どのセルでもクリックするとき、そのモデルで使用可能なすべてのオブジェクトとパラメータのリストを表示しているセルの右側に矢印が表示されます。

ルールでは、スクリプトと同じパラメータ名を使用します。パラメータ名が不明な場合、プロパティ エディタでパラメータを変更し、メイン ウィンドウの左下にあるコマンド ボックスで[SetValue]コマンドに出力された名前を確認してください。

特定のオブジェクトまたはパラメータのアニメーションをマッピングされていない状態にしておくには、アニメーションを空の文字列にマッピングするか、[<unmapped>]トークンを指定します。オブジェクトまたはパラメータ名の一部を置換するには、「名前の一部を置換する(部分文字列)」で説明する特殊文字を使用します。

ルールの適用方法について、次の点に注意してください。

  • アクションに含まれるパラメータごとに、適用できるものが見つかるまで、順に(上から下に)ルールが計算されます。

  • いったんルールが適用されると、計算は打ち切られ、作業はアクションの次のパラメータの処理に進みます。部分文字列の置換は例外です。部分文字列置換が適用された後も、残りのルールの計算が続けられます(もちろん、部分文字列ルール以外のルールが適用された時点で計算は終わります)。

例 1: オブジェクトをマッピングする

このルールは、torus と名付けられたオブジェクトのすべてのパラメータを、cone と名付けられたオブジェクトの対応するパラメータにマップします。

マップ元:

マップ先:

torus

cone

例 2: パラメータをマッピングする

このルールは、[torus]のローカル X 位置を、[cone]のローカル Y 位置にマップします。

マップ元:

マップ先:

torus.kine.local.posx

cone.kine.local.posy

例 3: オブジェクトを未接続のままにする

このルールは、[torus]と名付けられたオブジェクトのすべてのパラメータを未接続にします。

マップ元:

マップ先:

torus

<unmapped>

[マップ先](Map To)セルを空白のままにすることにより、同様のことができます。

例 4: パラメータを未接続のままにする

このルールは、torus のローカル X 位置を未接続にします。

マップ元:

マップ先:

torus.kine.local.posx

<unmapped>

[マップ先](Map To)セルを空白のままにすることにより、同様のことができます。

例 5: ワイルドカードを使用する

このルールは、[null]と名付けられたオブジェクトのすべてのパラメータを、「null」で始まる名前を持つすべてのオブジェクトにマップします。

マップ元:

マップ先:

null

null*

名前の一部を置換する(部分文字列)

さらに、オブジェクト名(そのサブストリング)の一部を変更するコネクションマッピング ルールを作成することもできます。このようにして作成したテンプレートは、さまざまな場面で再利用できます。個々のオブジェクト名を明示する必要がないからです。さらに、部分文字列の検索位置をオブジェクト名の先頭または末尾に限定できます。オブジェクトとモデルの命名に厳密な規則を用いている場合は、このようなルールが特に効果を発揮します。パラメータ名に部分文字列置換を適用することはできません。

アクションのパラメータに部分文字列の置換を適用した後も、残りのルールの評価が続けられます。これを利用して、同じパラメータに対して部分文字列の置換を繰り返すことができます。

部分文字列を置換する

置換対象となる部分文字列を指定するには、[MappingTemplate]プロパティエディタの[マップ元](Map From)列に該当する文字列を角括弧([])で囲んで入力します。

このルールは、「prefix_Object1_suffix」を「prefix_Object2_suffix」にマップします。

マップ元:

マップ先:

[Object1]

Object2

オブジェクト名の先頭にある部分文字列を置換する

部分文字列置換を、オブジェクト名の先頭に限定して行うことができます。このルールは、プリフィックスだけを変更し、オブジェクト名の他の部分の同じ部分文字列はそのまま残したい場合に便利です。そのためには、先頭にキャレット(^)を付けた部分文字列を角括弧で囲みます。

このルールによって、オブジェクト名の先頭の「prefix_」が取り除かれ、何もない状態(空のストリング)に置き換えられます。

マップ元:

マップ先:

[^prefix_]

オブジェクト名の末尾にある部分文字列を置換する

同様に、部分文字列置換を、オブジェクト名の末尾に限定して行うことができます。このルールは、サフィックスだけを変更し、オブジェクト名の他の部分の同じ部分文字列はそのまま残したい場合に便利です。そのためには、末尾にドルマーク([$])を付けた部分文字列を角括弧で囲みます。

例 1

このルールは、文字列「_suffix」をオブジェクト名の最後に追加します。

マップ元:

マップ先:

[$]

_suffix

例 2

このルールは、すべてのオブジェクト名で「suffixA」を「suffixB」に変更します。

マップ元:

マップ先:

[suffixA$]

suffixB

パラメータ名の部分文字列を置換する

通常、部分文字列の置換はオブジェクト名についてのみ有効です。オブジェクト名だけでなくパラメータ名でも部分文字列を置換するには、先頭にアットマーク(@)を付けた部分文字列を角括弧で囲みます。

このルールは、すべてのオブジェクト名で「localA」を「globalB」に変更します。

マップ元:

マップ先:

[@local]

global

部分文字列の置換とその他のルールを組み合わせる

部分文字列の置換は他のルールよりも優先されます。つまり、部分文字列を置換した結果に、別のルールを適用できるということです。

サブストリングの置換のルールは、最初に適用され、[null.kine.local.posx][null.kine.global.posx]にマッピングします。[この結果、未接続となり、ゆえに、]( This result is then mapped to nothing, so that animation originally defined for )[null.kine.local.posx]に最初に定義されたアニメーションは無関係のままになります。

マップ元:

マップ先:

null.kine.global.posx

<unmapped>

[@local]

global