例: ロボットの腕を入れ替える(高度なアセットのみ)

この例では、アセット、ファイル リファレンス、アトリビュート値の転送(Transfer Attribute Values)オプション、子アンカーのパブリッシュ(Publish Child Anchor)オプションを使用して、ロボット モデルの腕を入れ替える方法を示します。

注:

この例では、高度なアセット(Advanced Assets)を使用する方法に焦点を当てていますが、ノードをパブリッシュせずに、トランスフォームを含んだアセットで行うこともできます。

他のファイルから参照されるボディ パーツで構成されたロボット モデルを考えます(アセットのリファレンスの詳細については、アセットとファイル リファレンスを参照)。このボディ パーツは、それぞれ適切なパブリッシュ済みアトリビュートを持つアセットによってカプセル化されています。

ロボットが重い箱を持ち上げる新しいアニメーションについて考えます。ただし、腕がアニメーションには小さすぎます。

参照される腕のファイルを開くと、オリジナルの腕が L_RobotArm_AST によってカプセル化されていることを確認できます。ここでは、別のより強力な腕をモデリングできます。

別の腕を作成するには

  1. アセット > 高度なアセット > 作成(Assets > Advanced Assets > Create) > を選択します。

    高度なアセットの作成オプション(Create Advanced Asset Options)ウィンドウが表示されます。

  2. アセットに L_PowerArm_AST という名前を付けます。
  3. 適用して閉じる(Apply and Close)をクリックします。
  4. アセット > 高度なアセット > 現在のアセットの設定(Assets > Advanced Assets > Set Current Asset)を選択して、L_PowerArm_AST を選択します。
  5. 新しい腕をモデリングします。

    すべての新しい腕のジオメトリが、L_PowerArm_AST ノードの下に自動的に作成されます。

  6. L_RobotArm_AST の対応するアトリビュートおよびノードと同じ名前を使用して、適切なアトリビュートとノードをパブリッシュします。
  7. 完了時に、アセット > 高度なアセット > 現在のアセットの設定(Assets > Advanced Assets > Set Current Asset)を選択して、なし(None)を選択します。

これで 2 つのアセットによってそれぞれ 1 つの腕がカプセル化されました。ただし、アトリビュート値の転送(Transfer Attribute Values)オプションを使用して、メイン ロボット ファイルで参照される腕を入れ替えると、次のような結果が得られます。

腕が相互に重なって表示されてしまっています。階層を詳細に確認すると、参照される腕がキャラクタの階層に正しく配置されていないことがわかります(各グループの下から欠落しています)。これは、メイン ロボット シーンがアセットの下のノードを認識しなくなったためです(詳細については、パブリッシュ済みノードを参照)。

腕を正しく入れ替えるには、最初に新しい腕を子としてパブリッシュしてから、そのアトリビュートを転送する必要があります。

ロボットの腕を入れ替えるには

  1. 腕のファイルで、L_powerArm_GRP ノードを選択します。このグループは、L_powerArm_CNT ノードの直下にあり、新しい腕を構成するすべてのジオメトリをグループ化したものです。
  2. アセット > 高度なアセット > ノードのパブリッシュ(Assets > Advanced Assets > Node Publishing) > 子アンカーのパブリッシュ(Publish Child Anchor)を選択します。
  3. L_robotArm_AST を選択してから、 キーを押しながら L_powerArm_AST を選択します。
  4. 編集 > アトリビュート値の転送(Edit > Transfer Attribute Values) > を選択します。

    アトリビュート値の転送オプション(Transfer Attribute Values Options)ウィンドウが表示されます。

  5. 値(Value)をオンに設定します。
  6. 入力接続(In connections)ソースから転送(Transfer from source)に設定します。
  7. リレーションシップ(Relationships)親/子リレーションシップの転送(Transfer parent/child relationships)に設定します。
  8. 名前の変更(Rename)ターゲット アセット名の変更(Rename target asset)に設定します。
  9. 適用して閉じる(Apply and Close)をクリックします。
  10. 以前のロボットの腕に対応するディスプレイ レイヤが非表示になります。
  11. ファイルを保存します。

新しい腕は L_robotArm_AST アセットの下に編成され、以前の腕は L_robot_arm_ASTOrig アセットの下に編成されます。

メイン ロボット ファイルを開くと、ロボットの腕が新しい強力な外観の腕に置き換えられていることを確認できます。ソース ファイルでこれらの腕を子としてパブリッシュしたので、階層の一部と認識され、ノード名ではなくノード情報を使用して階層内の位置が決まります。

新しい腕のパブリッシュ済みアトリビュートが以前の腕のパブリッシュ済みアトリビュートに一致するかぎり、関連付けられた動作(アニメーションなど)は以前の腕から新しい腕に転送されます。