アセットを使用すると、コンポーネントのタイプと構成が異なるモデル間でアトリビュートを転送できます。上の例では、スケルトンのウォーク サイクルが、まったくジョイントを持たないロボット モデルに転送されます。
スケルトンとロボットの両方のコンポーネントは、それぞれ固有のアセットに存在します。
次の例では、ロボットのピボット ポイントがスケルトンのジョイントと正確に一致していません。たとえば、ロボットの肘が 3 つのパーツから構成され、各パーツは 1 方向にのみ回転します。一方、スケルトンの肘は 3 方向すべてに回転するシングル ジョイントです。
ロボットがスケルトンを正しく模倣するには、アセットの肘の回転軸として、それぞれの肘の回転をパブリッシュする必要があります。
ただし、軸ごとに回転をパブリッシュするだけでは正しい結果は得られません。これは、各肘の軸が対応するスケルトンの肘ジョイントの軸と一致していないからです。
たとえば、ロボットの elbow の Y 軸は、実際にはスケルトンの elbow の X 軸をマッピングします。
この問題を解決するには、アトリビュートをパブリッシュするときにアトリビュート名を変更する必要があります。elbow の rotateX をロボットのアセットの rotateY としてパブリッシュすることで、ロボットの肘の動きをスケルトンの肘の動きと確実に合わせます。
3 つの肘パーツを 1 つの肘としてパブリッシュするには
上記手順を繰り返し、elbow2 の rotateY をアセットの rotateZ に、elbow3 の rotateZ をアセットの rotateX にマッピングします。
これらのアトリビュートをパブリッシュすると、スケルトンのアセットからロボットのアセットに値を転送できます。
ウォーク サイクルを別のキャラクタに転送するには
ロボットはパーソン A に合わせて位置を変更します。
ウォーク サイクルはスケルトンからロボットに複製することができます。これは、2 つのオブジェクトが内部コンポーネントに関係なくアセット レベルで同じに表示されるからです。