以下、公式ドキュメントでアニメーションのリターゲットに触れられています。
・
1.アニメーション リターゲット(同じスケルトン)
・
2.アニメーション リターゲット(異なるスケルトン)
上記ドキュメントでは
1.同一スケルトンでアニメーションをリターゲットする方法
2.異なるスケルトン同士のアニメーションをリターゲットする方法
について書かれています。
違う、そうじゃない!
やりたいのは
『異なるスケルトン、異なるアニメーションを持つ複数アセットを同一処理、アニメーションシーケンスで動かす』こと。
例えば、村人A、Bがいるとして、それぞれ「話しかけた時」「攻撃した時」に以下の動作を行うとします。
村人A: 話しかける⇒こちらを向く 、攻撃する⇒驚く
村人B: 話しかける⇒攻撃する 、攻撃する⇒反撃する
村人Bの人間性については一先ずおいといて、「話しかける」、「攻撃する」というプレイヤーのアクションに対して、双方何らかのリアクションを行います。なので、ABPの処理としてはプレイヤーのアクションに対して、双方とも対応するアニメーションを再生するだけで良いのです。スケルトンが同一の場合、かつ同じリアクションをとるケースであればABPは1つで済むのですが、スケルトンが異なり、かつリアクションが異なる上記のケースではABPを2つ用意する必要があります。
2つ分ABPを新規作成すればいいのでは?
手間がかかる。
変数作成して、アニメーションブレンドして、ステータス作って・・・など、アクションが増えるほど新規作成は手間なので類似するものはサクッと複製しましょ。
概要
【前提】
村人A、Bのスケルトン、メッシュ、再生するアニメーションアセットがあるものとします
【手順】
①:とりあえず村人A用のABPを用意する
②:①で作成したABPのリターゲットを行いABPを複製する
③:②で複製した(新規作成した)ABPのアニメーションを置き換える
上記3つの手順でサクッとできます。
詳細
例としてマーケットプレイスのアニメーションスターターパックを使用します。
既にアニメーションやらABPが色々入ってますが、今回はAdamのABPをAlphaに適用することで
Alphaに同じ動きをさせることを実現します。
①:村人A用のABPを用意する
アニメーションスターターパックは最初からABPも入っているので特に何もする必要はありません。下記赤枠のABPを複製していきます。
②:①で作成したABPのリターゲットを行いABPを複製する
複製元ABPを右クリック、[Animブループリントをリターゲットする]→[Animブループリントとリターゲットを複製]を選択します。
リターゲットViewerが表示されるので、「リファレンスアセットを再マップする」、「互換性のあるスケルトンのみを表示」のチェックを外し、一覧に表示するアセット一覧から複製先のスケルトンを選択します。今回はAlphaに移植するため[Mixamo_Alpha_Skeleton]を選択します。
③:②で複製した(新規作成した)ABPのアニメーションを置き換える
②の操作を行った時点で複製先のSkeletonと同一フォルダ内にABPが複製されます。複製元ファイル名+"_Copy"というファイル名で複製されるため、とりあえずファイル名を変更して保存します。
上記で保存したファイルを開くとコンパイルエラーが出ているかと思います。
一度[コンパイル]を選択してエラーとなっている箇所を修正します。
ここで表示されるエラーは「アニメーションの設定が外れている」エラーだけなので、対象のキャラに合ったアニメーションを再設定していくだけで解決できます。別スケルトンの情報を複製してきているので、複製先のスケルトンに設定されていないアニメーション(複製元のアニメーション)はエラーとなります。このエラーを全て修正できれば複製作業は完了です。
まとめ
一から新規作成するよりはずっと簡単に複製できるはずです。
どんどん楽をしましょー。