この例では、アセット、ファイル リファレンス、アトリビュート値の転送(Transfer Attribute Values)オプション、子アンカーのパブリッシュ(Publish Child Anchor)オプションを使用して、ロボット モデルの腕を入れ替える方法を示します。
この例では、高度なアセット(Advanced Assets)を使用する方法に焦点を当てていますが、ノードをパブリッシュせずに、トランスフォームを含んだアセットで行うこともできます。
他のファイルから参照されるボディ パーツで構成されたロボット モデルを考えます(アセットのリファレンスの詳細については、アセットとファイル リファレンスを参照)。このボディ パーツは、それぞれ適切なパブリッシュ済みアトリビュートを持つアセットによってカプセル化されています。
ロボットが重い箱を持ち上げる新しいアニメーションについて考えます。ただし、腕がアニメーションには小さすぎます。
参照される腕のファイルを開くと、オリジナルの腕が L_RobotArm_AST によってカプセル化されていることを確認できます。ここでは、別のより強力な腕をモデリングできます。
別の腕を作成するには
高度なアセットの作成オプション(Create Advanced Asset Options)ウィンドウが表示されます。
すべての新しい腕のジオメトリが、L_PowerArm_AST ノードの下に自動的に作成されます。
これで 2 つのアセットによってそれぞれ 1 つの腕がカプセル化されました。ただし、アトリビュート値の転送(Transfer Attribute Values)オプションを使用して、メイン ロボット ファイルで参照される腕を入れ替えると、次のような結果が得られます。
腕が相互に重なって表示されてしまっています。階層を詳細に確認すると、参照される腕がキャラクタの階層に正しく配置されていないことがわかります(各グループの下から欠落しています)。これは、メイン ロボット シーンがアセットの下のノードを認識しなくなったためです(詳細については、パブリッシュ済みノードを参照)。
腕を正しく入れ替えるには、最初に新しい腕を子としてパブリッシュしてから、そのアトリビュートを転送する必要があります。
ロボットの腕を入れ替えるには
アトリビュート値の転送オプション(Transfer Attribute Values Options)ウィンドウが表示されます。
新しい腕は L_robotArm_AST アセットの下に編成され、以前の腕は L_robot_arm_ASTOrig アセットの下に編成されます。
メイン ロボット ファイルを開くと、ロボットの腕が新しい強力な外観の腕に置き換えられていることを確認できます。ソース ファイルでこれらの腕を子としてパブリッシュしたので、階層の一部と認識され、ノード名ではなくノード情報を使用して階層内の位置が決まります。
新しい腕のパブリッシュ済みアトリビュートが以前の腕のパブリッシュ済みアトリビュートに一致するかぎり、関連付けられた動作(アニメーションなど)は以前の腕から新しい腕に転送されます。