エタニティプロジェクト
ミレティア人の流れる髪のために
「Unreal Engine なので、髪の毛は物理演算で自然に動きますよね?」
こんにちは!開発者のKです。今回は、物理ベースのアニメーションを適用してミレティア人の髪に命を吹き込むプロセスについてお話しします。
それはスケルトンから始まります
上の例は、読みやすくするために多くのボーンを削除した例です。
実際のゲームでは、さらに多くの動きを可能にするために、より多くのボーンがあります。
これは、キャラクターアニメーションを作成する従来の方法です。各キャラクタにはベースボーンがあります。ボーンを位置(x,y,z)に移動し、各フレームの「キー」として割り当てるのは、「キーアニメーション」と呼ばれる一般的な方法です。
例として、歩行アニメーションについて考えてみましょう。脚は前後に動かす必要があるため、左右の脚ともに、太もも、ふくらはぎ、足、足の指のボーンをフレームごとに動かし、キーを設定する必要があります。そして、腕も忘れてはいけません。UpperArm、ForeArm、および手のボーンについて、フレームごとに移動し、キーを設定する(ここでも左腕と右腕の両方)という手順を繰り返す必要があります。より自然な動きのためには、全身(骨盤、脊椎、首などを含む)をリズムよく動かす必要があります。
マビノギのすべての動きは、歩くだけでなく、フレームごとに各ボーンを動かして「キー」を設定するキーアニメーション方式を使用しています。(すべての動きとは、すべてのスキルアニメーションとアクションを含むすべてのアニメーションを意味します。
ボーンが動いているときは、ボーンにアタッチされているモデルも動いているはずですよね?このプロセスは「リギングとスキニング」と呼ばれます。まず、モデルの各静的ポイントをボーン(リギング)に接続します。次に、ボーンの動き(スキニング)の影響を受けるウェイトを適用します。そうすれば、モデルのスキンは骨の動きに基づいて伸びたり縮んだりします。「ベースボーン」は共通して使用されるため、スキニングが正しく行われている限り、モデルを変更してもアニメーションは正しく機能します。
ヘアアニメーション
ポニーテールを例に考えてみましょう。上記で説明したように、基本的なボーンの主要なアニメーションデータをすべて作成したら、ポニーテールのアニメーションを追加する必要があります。そこで、基本ボーンにポニーテールのボーンを追加します。
次に、ポニーテールのボーンの動きのキーを、キャラクターの動き用に作成された既存のアニメーションに追加する必要があります。追加のボーンのキーは、すべてのキャラクタ アニメーション(13,586 個すべて)に手動で追加して、それらのアニメーションでポニーテールを動かす必要があります。
それから。。。おさげ髪もご用意しております!そのため、既存のボーンにピグテールのボーンを追加してから、すべてのアニメーションに各フレームのキーを追加する必要があります。
今度こそです。。。サイドポニーテールにしています。そのため、サイドポニーテールのボーンを既存のボーンに追加し、すべてのアニメーションに各フレームのキーを追加する必要があります。
ここは。。。アンテナ風の前髪をご用意しております!そのため、アンテナのボーンを既存のボーンに追加し、すべてのアニメーションに各フレームのキーを追加する必要があります。
そしてここで。。。ボブがいます!そのため、ボブのボーンを既存のボーンに追加し、すべてのアニメーションに各フレームのキーを追加する必要があります。
まもなく、何百もの骨が純粋にヘアスタイルのために存在するでしょう。基本ボーンにどんどんヘアボーンが追加されていくと、リギングやスキニングに問題が生じます。
ヘアボーンの分離
私たちが想像した悪夢が現実になる前に、毛の骨と根元の骨を分離する必要があります。代わりに、髪の毛専用のボーンのセットを作成し、ベースボーンとアニメーションだけを残すことができます。
もう一度ポニーテールを例に挙げてみましょう。
ポニーテールのボーンを別々に作成し、既存のアニメーションと並べて再生できるポニーテールのみのアニメーションを作成します。ポニーテールの歩行アニメーションをベースボーンの歩行アニメーションと同時に再生すると、別々のパーツで構成されているにもかかわらず、1 つの接続されたアニメーションのように見えます。(もちろん、これを機能させるには、アニメーションの長さを一致させる必要があり、ポニーテールのアニメーションは、作業中にテストして調整し、場違いに見えないようにする必要があります。
しかし、ヘアボーンをベースから分離しても、リギングとスキニングの問題は解決するだけです。既存のすべてのアニメーションに合わせてキーアニメーションを作成する必要があるという問題はまだ残っています。
現在、マビノギでは、すべてのアニメーションウィッグと髪の毛はそのように作成されており、既存のボーンと一緒にキーアニメーションが再生される個別のボーンセットがあります。
物理ベースのアニメーション
物理ベースのアニメーションとは
これは、質量、運動量、減衰、摩擦、弾性などの物理値を使用して、実際の物理のシミュレーションを作成するアニメーション手法です。基本的には条件を設定すれば、自動的にアニメーションを作成することができます。その短い説明から、この技術で自然な髪の動きを作るのは簡単そうに聞こえます。結局のところ、キーアニメーションのようにボーンに特定の位置を作成する必要はありません。
しかし、現実はそれほど慈悲深くありません。
もう一度ポニーテールの例に戻りましょう。アイドルアニメーションで少しバタバタして、走っているときや急な動きをしているときでも自然に動き回るはずですよね?ただ、動きが小さいと髪の毛への外的影響があまりないので、細かいアニメーションを作るのは大変です。一方、大きな動きは加速や衝突のためにシミュレーションが不安定になる可能性があるため、動きが不自然に見える場合があります。
このような問題に対処するには、物理シミュレーションのパラメータを操作するか、アニメーションのサイズと方向を調整する必要があります。試行錯誤、テスト、値の調整、再テスト、再調整、といった作業です。その工程が終わっても、どうしても同じ値ではうまくいかないエッジケースもあるので、ある部分はキーアニメーションで、一部は物理アニメーションで作る方法を考えています。
(※ アニメーションなのですが、フラッシュは載せれませんでしたので、静止画で)
ミレティア人の流れる髪のために...
私が説明した主要なアニメーションと物理ベースのアニメーション技術は、どちらもMilletiansの自然なアニメーションの髪のために私たちが行っている研究開発の一部です。2つの方法の組み合わせやリターゲティングシステムなど、議論すべきことはまだまだたくさんありますが、衣装アニメーションに関するブログ記事「ポポのスカートは実は..."
マビノギ・エタニティの旅を遠くに進めば進むほど、ミレティア人の髪の毛はより自然に動くようになります。
ありがとうございます