エタニティプロジェクト

ポポのスカートは実は...


「Unreal Engine のパワーがあれば、スカートやドレスは適切な物理法則を持ち、自然に動くようになりますよね?」

こんにちは、開発者Kです。

この投稿では、より自然な動きの感覚を実現するために、衣服(特にスカートのようなもの)をアニメーション化するために行った研究開発の一部を紹介します。『For the Sake of Milletians' Flowing Hair』で取り上げた「キーアニメーション」と「リギングとスキニング」の考え方を簡単におさらいしましょう。

キーアニメーション:各ボーンはフレームごとに移動して「キー」を設定します。

リギングとスキニング:モデル上の各静的ポイントは、ボーン(リギング)に接続されます。次に、ボーンの動きによって影響を受けるウェイトが適用されます(スキニング)。

ポポのスカート(段ボールでできていません、誓います)

例のPopo's Skirtを見てみましょう。この作品では、スカートの裾をリギングし、脚の骨までスキンを施しています。つまり、キーアニメーションで脚を動かしても、スカートも一緒に動きます。


そこで問題となるのは、ポポのスカートを腰より下で独立して動かすにはどうすればよいかということです。スカートを動かすためにいくつかの追加のボーンを作成し、別のキーアニメーションを与える必要があるようです。アニメーターにこの簡単な解決策を知らせて、夜はサインオフします...


『For the Sake of Milletians' Flowing Hair』を読んだ人なら誰でも疑っているかもしれないが、この楽観的なシナリオには問題がある。その時に発見したことを振り返ってみましょう。

この速度では、すべての衣装の形が異なるため、骨の数は増え続けるだけです。しかし、ヘアアニメーションの作業中にすでにこの問題に遭遇したので、そのために思いついたのと同じ解決策を使用できます。輝かしい!アニメーターにこの簡単な解決策を知らせて、夜はサインオフします...

クロスシミュレーション

これは物理ベースのアニメーションの一種で、以前、髪の毛のアニメーションについて書いたときにも触れました。この種のアニメーションは、衣服や布地などの柔軟なマテリアルの動作をより厳密に模倣しようとします。これと、髪の毛に使用している物理ベースのアニメーションとの違いは、布の動きをシミュレートするのにボーンが必要ないことです。もちろん、その代償として、頂点レベルでの物理計算が必要となり、システムのパフォーマンスに負担がかかる可能性があります。

それでも、布地の吊り下げ方や流れ方をうまく表現する布のシミュレーションを「マビノギ」に導入したらどうなるでしょうか?これらの現代的な布の物理学を応用して作業に取り掛かるとき、私たちはポポのスカートが一歩ごとに自然に揺れることを想像しました。

課題は形状

残念ながら、さまざまなタイプのスカート(短いスカート、長いスカート、広いスカート、狭いスカートなど)でいくつかのテストを実行したところ、すぐに問題が発生しました。リギングとスキニングにより、モデルのベース形状を超えて引き伸ばされるのを防ぎ、頂点に基づいて物理計算を実行すると、脚がスカートから突き出たり、裾が丸まったりするなど、意図しない副作用が発生しました。

もちろん、物理演算のパラメータを細かく設定したり、計算回数を増やしたりして改善の余地はありましたが、細長いスカートから自然な動きを期待するのは、その時点では非現実的に思えました。

以前のようにボーン、リグ、スキンを作成し、キーフレームでアニメートすると、メッシュは元の形状を超えて伸びることができますが、スカートの動きは、最初に思い描いていたフラッターとはかなりかけ離れています。



物理シミュレーションに戻る

前に髪の毛で行ったように、スカートのボーンをメインのスケルトンとは別に作成し、スカートにエンジン内の物理演算を適用しました。キャラクタの基本ボーンは、キャラクタの動きを制御するために使用され、これらのボーンはキャラクタの全体的な動作を決定し、歩行、走行、ジャンプなどの基本的なアニメーションをサポートします。スカートのボーンは、生地自体の物理特性を担当し、動きをよりリアルにするために使用されます。

物理ベースのアニメーションでは、重力、空気抵抗、外部からの影響などの物理的要因を考慮して、スカートがどのように動くかを計算します。たとえば、キャラクターが素早く動いているとき、スカートは風になびいているかのように振る舞います。このような物理的効果により、ゲームキャラクターのアニメーションがよりリアルでリアルに感じられます。

これら 2 つの別々のスケルトン システムを組み合わせることで、キャラクターの全体的なアニメーションは従来のアニメーション手法を利用し、スカートなどの特定のパーツの動きは物理ベースのアニメーションによってより自然に表現されます。

ただし、物理ベースのアニメーションにはいくつかの問題もあります。小さくて小さな動きの場合、外的要因に対する反応が少なく、細かくて微細な動きを表現することが難しくなります。一方、大きなモーションの場合、加速と衝突によって物理が不安定になり、動きが不正確に見えることがあります。これらの問題を相殺するには、物理シミュレーションのパラメータを調整するか、アニメーションの大きさと方向を調整する必要がありますが、それでも自然に見せるには限界がありました。

主要なアニメーションと物理シミュレーションの組み合わせ

この問題を解決するために、スカートのボーンの冒頭部分にキーアニメーションを使用し、スカートはチェーン状にリンクしています。これにより、スカートの上部の動きがボディの主要なアニメーションに追従するようになります。それが整うと、スカートの残りのボーンに物理ベースのアニメーションを適用し、上部にあるボーンのキーアニメーションの動きに基づいて物理的な動きを伝播させました。

そうすることで、表情豊かな大きな動きの安定感と、小さな動きの微妙な動きを両立させる形状に仕上がっています。そこで問題になったのが、すべてのスカート状のメッシュのボーンを分離し、各メッシュのボーンごとにキーとなるアニメーションを作成する必要があるため、Unreal のリターゲティング機能を使用してこの問題に取り組みました。

リターゲティングシステムの活用

効率を上げるために、本体のボーンにスカートのボーンを追加し、Unreal のリターゲティング システムを使用して、スカートの上部のボーンにキー アニメーションを適用しました。まずはスカートの骨を本体の骨にくっつける作業。これにより、スカートと胴体のボーンが統一され、1 つのスケルトンとして扱われます。

次に、本体のボーンにリンクしたスカートのボーンにキーアニメーションを適用しました。このアニメーションは、スカートの上部がどのように動くかを制御します。

Unreal Engine のリターゲティング システムを使用すると、ベース ボディのスケルトンの動きに応じて、さまざまなスタイルのスカート (長い、短い、片側だけ長い、スカートの腰が高くなったり低くなったりなど) を作成できます。これにより、スカートの上部は本体のボーンに接続されているスカート ボーンのキー アニメーションによってガイドされ、スカートの残りの部分は、各スカートのメッシュにアタッチされたボーンのシミュレートされた物理演算によって処理されます。

リターゲティング システムにより、既存のスケルタル フレームワークの構造と新しく追加されたスカート ボーンを効率的に統合できるため、領域ごとに異なるアニメーション手法を柔軟に使用できるキャラクター スケルトンが得られます。

リターゲティング合成: ライト ブルーはコア ボディ ボーンを表し、ダーク ブルーはスカート メッシュ ボーンを表します

融合が達成されました!(キーアニメーション + 物理アニメーション + リターゲティング)

すべてのフォームの出来栄えに完全に満足する可能性は低いですが、いつものように解決策を見つけていきます。

以下に示すのは、R&Dの初期段階でテストに使用した一時的なモデリング・リソースである。ここでは、キーアニメーション(胴体ボーン+スカートの上部ボーン)と物理アニメーション(スカートの下ボーン)を組み合わせた結果を確認できます。




(※ アニメーションで動く動画なのですが、前回同様フラッシュは上げれませんでしたので静止画になります)


ポポのスカートは実は...

さて、ポポのスカートは実は...ひらひらと揺れるスカート!上記で概説したプロセス全体は、ポポのスカートをより自然で表現力豊かに動かすために必要でした。

ポポのスカートにはクロスシミュレーションは使用されませんでしたが、ケープやその他のメッシュに適用したいと考えて、現在も研究を続けています。

それ以外にも、衣服の自然な動きを実現するためのさまざまな研究を行っています。

この新しいエンジンのツールと機能を使って、エリンであなたの衣装に命を吹き込むために最善を尽くします。

ありがとうございます。

ATRANDOM

オンラインゲームマビノギの情報の公開です。 こちらには、日本、韓国、台湾、アメリカのサイトの情報をコピーして載せます。 ほかの細かな部分は、ブログで確認してくださいませ。 楽天ブログhttps://plaza.rakuten.co.jp/atrandom1516/ amebaブログ https://ameblo.jp/alexandrite-lashe-1256/