【Unity】AvatarとAvatarMaskのシステム紹介(TPS.番外編)


今回は長い間延期されていました.1つはアニメーションが修復されていることであり、もう1つは他のゲームが確かに魅力的であることです.
本編の前に、次のアニメに向けて基礎知識の補足をしておく必要があるので、今回はアバター、アバターシステム、アバターマスクの解説です。

ある程度のアニメ知識

アニメーションについては、私の理解は比較的基本的なもので、この連載「アニメーション入門」を読むことができます。
ここでは、私が遭遇した注意すべき場所をいくつか挙げます。

アニメーション ファイル形式

外部からインポートしたアニメーション ファイルは、Mixamo からダウンロードしたアニメーション ファイルが最も多いと思います。リソースストアで購入したものなど、他にもいくつかあります。
一般的に言えば、unityにインポートした後にはこのようなインターフェースがあり、注目すべきはRigです。
ここに画像の説明を挿入
一般的に、Mixamo のアニメーションはジェネリック タイプであり、ヒューマノイド タイプに変更します。これらの操作は何を表していますか?

これにより、アニメーション ファイル自体が表示されます。行動をどのように説明するかという質問について考えます。
これらのアニメーション ファイルの場合、説明はボーンの位置と回転です。これは簡単に理解できます. 基準となる骨 (通常は腹部の骨が基準として選択されます) を決定し、レイヤーごとに骨の位置を決定するだけで、すべての骨の位置を決定できます. 同様に、移動した後、どのボーンがどのフレームで移動および回転されたかを記述するだけで、残りのノードは位置を再計算できます1
ここに画像の説明を挿入
次に、アニメーション ファイルでどの属性が記述されているかを理解したら、その属性を対応するボーンにバインドするにはどうすればよいでしょうか。非常に直接的な方法は次のとおりです。ボーンの名前は何ですか。それを取り込んで、後で対応するデータを書き込みます。そうです、それはとても簡単です。

この単純さが、後に続く問題につながります。

アバター システム - Unity 統合スケルトン ソリューション

モデラー A のアニメーションが素晴らしく、モデラー B のキャラクターを使用したい場合、このアニメーションの再利用 2 の要件は何ですか? アニメーションのボーンは、キャラクターのボーンと同じ名前にする必要があります(構造はわかりませんが、同じにするのが最善だと思います)。二人のモデラーが作成と命名規則を統一していれば再利用に問題はありませんが、個々の開発者にとって、私たちの手元にあるモデルとアニメーションには命名規則がないため、これらのアニメーションをどのように再利用するのでしょうか?

Unity は、スタンドイン システムである Avatar を提供します。これは Unity が設定したボーン モードで、人型のキャラクターであれば認識され、元のボーンとキャラクターの名前に従って、対応するアバターが作成されます。あとは全員のボーンをこのモードに変換するだけで、アニメーションの再利用を実現できます。

ユーザーの場合は、 Rig のモード3 をヒューマノイドに切り替えるだけです。そうすると、この単純な作成は多くの問題、つまりアバターの精度をもたらします。注: これはよくある質問です

この問題について議論する前に、まずアバターの基本的な形を理解する必要があります。
アバターを作成するには 2 つの方法があります。他のアバターを再利用する方法と、現在のモデルのアバターを作成する方法です。通常は作成させます。下の写真は作成後の Rig インターフェースですが、アバターはどのように見えますか? このモデルでは、下図の [構成] を直接クリックしてインターフェイスを開くこともできます。
ここに画像の説明を挿入
下の画像は Avatar のインターフェースです。キャラクターのアバターが表示されます。
右側にあるように、Unity は元のボーン ノードをアバターにマッピングします。一部のノードは空にすることができますが、キー ノードを空にすることはできません。

ここに画像の説明を挿入
T字型の人体でUnityを作ってから、それぞれの骨の向きを計算したり、計算したりするので、正確ではないかもしれません。
それ以来、私たちはいくつかの非常に奇妙な写真を見ることができます.例えば、下の写真の走っている左足は非常に奇妙です.その理由は、再利用されたアニメーションのアバターがあまり正確にバインドされておらず、私のキャラクターの左足の問題につながるからです.フット。
解決:アニメーションプレビューでユニティのキャラクターが異常な場合、アニメーションのアバターバインディングを修正します。
ユニティのキャラクターがアニメーション プレビューで正常な場合は、キャラクターのアバターを変更します。
この変更方法は、アニメーションの汎用性を確保するためのものです。
ここに画像の説明を挿入
正直、このアニメは上半身だけのほうがいいし、下半身は一言でしか言えないので、下半身のアニメじゃなくて上半身のアニメだけでいいんですか?
代役システムが解決策を提供してくれます。

AvatarMask - 部分的なアニメーションの適用

キャラクターのアニメーションの一部だけを変更したいことがよくあります。
たとえば、弾丸の変更。アニメーションを大まかに捉えると、静止、歩行、走行などを考えると、やるべきアニメーションがたくさんあり、アニメーション間の移行は本当に恥ずかしいものです。
ランニングやどんな状態も下半身の動きだと考えると、手は動きません(手は空でない状態での大きな揺れを考慮していません)。弾丸の切り替えは腕二本分で足との干渉もありません。複雑なアニメーションを処理できないのでしょうか。
AvatarMask はまさにそれを行います。オリジナルのスタンドインシステムに基づいています。
このアニメーション レイヤーで移動する必要があるボーンを選択するだけです。
ここに画像の説明を挿入
ここに画像の説明を挿入
この一連のものは非常に単純ですが、非常に便利であることがわかります。


  1. 例えば、腕は動かないけど肩は動く、父子関係なので腕は肩を座標原点として位置を記録するので、肩が動くと腕の位置はワールド座標も移動するので再計算が必要です↩︎

  2. いわゆるリユースとは↩︎のセットを指します

  3. Generic は、車、動物、人など、共通のモデルを表します。インポートされたアニメーションは、上記で紹介した通常のアニメーションとほぼ同じであり、再利用するのは非常に面倒です。
    ヒューマノイドとは、このモデルがヒューマノイド モデルでなければならないことを意味し、Unity は骨格系を統合するためにアバターを作成します。↩︎

おすすめ

転載: blog.csdn.net/weixin_52540105/article/details/128650452