Unity を検索

長編アニメーションでの Ziva の活用:スタイル化されたシミュレーションと機械学習に対応したワークフロー

2022年12月16日 カテゴリ: Industry | 18 分 で読めます
Ziva for feature animation: Smooth simulation and machine learning-ready workflows | Hero image
Ziva for feature animation: Smooth simulation and machine learning-ready workflows | Hero image
シェア

Is this article helpful for you?

Thank you for your feedback!

こんにちは。Unity のアートツールを担当しているシニアソリューションエンジニアの Brian Anderson です。3D キャラクターが専門ですが、Ziva VFX などのツールのデザインや機能セットの仕事にも同僚と協力して取り組んでいます。

このブログでは、Ziva の技術を使った二足歩行アニメーションやスタイル化されたアセットに関するベストプラクティスとワークフローを紹介します。特に、Ziva VFX と、シミュレーションベースのパイプラインの潜在的な利点について説明します。

それでは、始めましょう。

素早いシミュレーション

アーティストとして、私たちはみな、観客を魅了するような 3D キャラクターを作りたいと願っています。そのために、大がかりなデフォメーションを行うことがよくあります。しかし最近まで、軟らかい組織の有機的で動的な特性を、信憑性のある自動化された方法で表現することはできませんでした。

長年キャラクターのリギングに携わってきた者として言わせてもらえば、最初から存在しないはずの身体のデフォーメーションの問題を修正するのに必要以上の時間を費やしたいとはまったく思いません。シミュレーションを使った作業は、標準的な形状修正の方法に代わる優れた方法です。ベースとなるレイヤーをしっかり作った上で制作を始めて、アートディレクションを加えていくことができるからです。

そこで、Ziva VFX の出番です。Ziva VFX なら、身体の全体的なデフォメーションを手動で調整することなく、キャラクターをよりリアルで説得力のある方法で動かすという核心的な課題に対応することができます。

Ziva VFX is used for deformation and simulation of characters and creatures in games, television, and film.
Ziva VFX は、ゲーム、テレビ、映画などのキャラクターや動物のデフォメーションやシミュレーションに使われている。

シミュレーションベースのワークフローを使用することで、キャラクターアーティストは、職人芸による一点物のスカルプティングや修正シェイプを作るために使う時間を大幅に減らすことができます。その代わりに、Ziva VFX は物理法則、そして科学や工学の分野で用いられている有限要素法を活用し、ハイパフォーマンスな物理シミュレーションを実現します。

Ziva VFX の概要

Ziva VFX は、Autodesk Maya のプラグインとして動作するシミュレーションツールです。ゲーム、映画、テレビなどの分野にわたり、人間や、ドラゴン、恐竜、巨大サメなどの空想上のキャラクターを作成するために使われています。

この技術により、物理的な効果を再現し、筋肉、脂肪、皮膚など、ほとんどの軟らかい組織の素材をシミュレートすることができます。そうすることで、よりリアルで真実味のあるキャラクターを、より高いコントロール、スピード、精度をもって制作することができます。

The ZivaVFX user interface with Maya can be seen on the far right-hand side.
Maya と一緒に Ziva VFX のユーザーインターフェイスが右端に見える。

Ziva VFX を使う理由

従来のビジュアルエフェクト(VFX)プロジェクトとは異なり、長編アニメーションの場合、キャラクターのデフォメーションのシミュレーションは通常行われません。その代わり、アセット構築の段階で、手作業によるスカルプトとアートディレクションが行われます。

視覚的に言えば、シミュレーションの結果によく見られる微細なシェイプや細かい筋肉のエフェクトは、長編アニメーションでは邪魔になることがあります。また、プロジェクトのデザイン言語と一致しないこともあります。

ワークフローはどのようなものか

ここでは、スタイル化されたキャラクターにシミュレーション技術を適用することの意味について見ていきましょう。

まず、明確なシルエットときれいなラインでフォルムをシンプルに保つなど、さまざまな目標があるでしょう。次に、キャラクターパイプラインのステップをシフトさせていきます。そのためには、パイプラインの末端にあったシミュレーションを前面、つまりプリプロダクションにおけるアセット構築の段階に移動させます。それから、そこでの成果物を利用してシミュレーション可能なキャラクターを構築し、最後にポーズ空間デフォーマー(PSD)にデータを送り込むか、機械学習(ML)を利用して、シミュレーションシステムをフル活用するのです。

シミュレーションシステムを使えば、手作業で行うよりも多くの修正シェイプや組み合わせシェイプを生成する自動化を加えることができ、デフォメーションの品質のベースとなる水準を引き上げることができます。Ziva VFX は、このプロセスを通じて、スキンクラスターの通常の出発点を超えた、より高品質で忠実なベースレベルのデフォメーションを得られるよう、ワークフロー全体を改善することを目指しています。

アーティストの得る恩恵

壊れたデフォメーションの修正に貴重な時間を費やす代わりに、キャラクターアーティストはアートディレクションに集中することができ、その結果、画面に現れるキャラクターがより良いものになると期待されます。

ここでは、それを実現する方法を紹介します。

Ziva VFX でスタイル化されたシミュレーションを作る

私が Blue Sky Studios にいた頃の長編アニメーションのスタイルで作られたオリジナルキャラクターのデザインを参考に、この点を整理してみましょう。

A simple Maya wrap deformer attaches character geometry to tissue objects so they can deform together.
シンプルな Maya ラップデフォーマーがキャラクターのジオメトリを組織オブジェクトにアタッチして、一緒にデフォメーションできるようにしている。

コントロールリグから始めて、ボーンのジオメトリを構築してリグにバインドし、 それらのボーン周辺の組織をモデリングして、組織のシミュレーションを行います。シンプルな Maya ラップデフォーマーがキャラクターのジオメトリを組織オブジェクトにアタッチして、一緒にデフォメーションさせることができます。

組織オブジェクトがアタッチされると、そのデータを取得できます。これを行うには、機械学習が最適です。これにより、デフォーメーションシステムを活用し、多数のシェイプと組み合わせの修正を行うことができます。

また、ポーズ空間デフォーマーにシェイプを抽出し、そのシェイプをリグシステムに直接追加することができます。シミュレーションに一貫性があるため、これは上手く働きます。すべてのシェイプは 1 つのシステムから、1 つのルールセットで提供されます。そのシステムからそれらの修正シェイプを抽出し、PSD を使って元に戻すと、組み合わせが上手く機能します。

キャラクターのビルド

次は、キャラクターのビルドを見てみましょう。その制作はシンプルなボックスモデリング、ローポリのワークフローから始めました。デザインが決まったらディテールを追加して、さらに肉付けしていきました。次に、リギング作業の準備です。

サーフェスのトポロジーは制作基準に合わせて再設計され、デフォーメーションを行いやすいモデルにして、手足の指を広げてシミュレーションしやすくしています。その結果、キャラクターのデフォルトのポーズはプリコリジョン状態になります。これは、最終的にラップデフォーマーを使用して、バインドに余裕があることを確認するために、メッシュをシミュレーションされた組織にアタッチする場合にも便利です。

 The surface topology was redesigned to production standards for a clean, deformation-friendly, fully-rigged model.
サーフェスのトポロジーは制作の基準に合わせて再設計され、きれいでデフォーメーションに向く、完全にリギングされたモデルとした。

リグは、オープンソースのリギングシステムである mGear を使用して作成しました。関節の階層が分かれているため、ゲームエンジンや Ziva RT(現在も開発中の Ziva の機械学習ソフトウェア)でも使用することができます。

私はこれを長編アニメーション用の Control Set で作成しました。スキンの作業は ngSkinTools で完結し、その後変換を施して、Maya skinCluster に戻しました。ヘルパージョイントはいくつかありますが、主に腕と脚のひねりのために使われます。

The rig has a separate hierarchy for joints so that it’s game-engine friendly
リグは、ゲームエンジンにも対応できるように、ジョイントの階層が分かれている。

シミュレーションの準備

シミュレーションの入力を構築することから始めます。ボーンオブジェクトはジオメトリ入力で、シミュレーションを駆動させる元となります。ここでは、解剖学的に正しいスケルトンではなく、ストップモーションから発想を得たアプローチでボーンのデザインを行い、いくつかのシンプルなプリミティブからシェイプのモデリングを行っています。

画像にあるように、多くの接続点に隙間を空けて、ボーンを調整しました。これは、シミュレーション中の可動域を広げ、出会う可能性のある衝突の問題を回避するために行ったものです。

Leaving space at major intersections allows the simulation more room to work.
主要な交叉点の間にスペースを設けることで、シミュレーションで動かす余地を大きくしている。

また、肘と膝にはボーンから浮遊したキャップを追加し、シルエットの制御をより良くしました。これは、シミュレーション中に曲がった手足を形づくるうえで重要です。

シミュレーションの対象となる組織に関しては、各組織は確立されたボーンのジオメトリによって動かされます。ただし、デフォーメーションは完全にシミュレーションで制御することになります。

組織のモデルは体の部位ごとに分割され、外皮の下と骨の周りにフィットするように調整されています。このように組織を分けてもシミュレーションの結果には影響しませんが、シーンの整理がしやすくなります。パーツのコピー、ペースト、保存、読み込みを行いたい場合は、セクション単位で行えるので便利です。

Tissues are segmented in a modular design, by body zones, for better management.
組織を部位別にモジュール化し、管理しやすいように設計されている。

シミュレーションを高速化するために、一部の組織の評価をオフにすることができます。身体をセグメント化することで、キャラクターの部位を選択するだけで、関連するシミュレーションのコンポーネントをより簡単に確認することができます。

内部を見ると、組織のオブジェクトはボーンの形をくり抜くようにモデル化されていることがわかります。ボーンと組織との衝突を避けるために、慎重に行うことが重要です。

Tissue objects are modeled to be hollowed out around the bones: It’s important to do this cleanly and avoid any collisions with the bones.
組織オブジェクトは、ボーンの周囲をくり抜くようにモデリングされている。このとき、ボーンとの衝突を避け、きれいに仕上げることが重要。

これで入力のモデリングが完了したので、ボーンのジオメトリをリグのジョイントにバインドすることができます。これは比較的素早く行える簡単な作業ですが、シミュレーションをテストし、必要に応じて調整する繰り返しのプロセスでもあります。

これで、リグの様々な場所を動かすことでボーンの設計をテストする準備ができました。シミュレーション結果を確認し、ボーンのモデルの編集に入ります。この作業は、テスト中に何度も行われ、身体のシミュレーションができていきます。

身体のシミュレーション時間

シミュレーションのコンポーネントを見ると、組織を変形させる四面体メッシュと、シミュレーションを結合するいくつかの接合点を見ることができます。この例では、Ziva VFX の QuasiStatic Integrator を使用していることに注意してください。 

Simulation components
シミュレーションのコンポーネント

目標は組織のデフォーメーションを解くことですが、速い動きから生じる揺れのような二次的な物理的効果については対象としません。これらの効果は QuasiStatic Integrator で除去されますが、(必要であれば)ショットごとのシミュレーションパイプラインを使って後で追加することができます。これはブレンドシェイプの抽出や機械学習が関わるもので、まさにシミュレーションを活用したい動きです。

下の画像を見ると、脚が個別に 130 度前方に回転し、骨盤の組織で激しいデフォーメーションが起こっていることがわかります。デフォーメーションがうまくいっていることがわかります。キャラクターが変形する際に、その構造が感覚的に伝わってくるようになりました。

また、デフォーメーションの最中は、適切なコリジョンとクリーンなジオメトリが存在しています。ボーンのアーマチュア(骨格)の隙間は、シミュレーションが動作するための自由なスペースを残し、回転範囲を広げるのに役立っています。

脚が独立して 130 度前方へ回転し、キャラクターの骨盤の組織が大きくデフォーメーションを起こしている。

ご覧のように、体積が胴体の中に自然な形で移っていくのに合わせ、下半身のデフォーメーションが胸にまで伝播していきます。中腹部では、スライドするアタッチメントが役割を果たしているのがわかります。組織が背骨に沿って滑り、胸の中で圧縮されているのです。これは、どのようにデフォーメーションが表れるべきかを示す良い例です。

動きを付ける

動きを付けると、キャラクターが目指すスタイルにマッチした要素が見えてきます。シンプルなフォルム、きれいなライン、シルエットを持ち、そして程よい体積感が保たれています。

 In motion, you can see some of the goals coming through to match the style.
動かしてみると、スタイルに合った目標が見えてくることがある。

それ以外にも、身体の感覚、幅広いデフォーメーションのフォールオフ、特に腰などの最も変形が激しい部分に見える、素晴らしく美しいデフォーメーションサーフェスなどに気づかれる方もいらっしゃるかもしれません。

手のシミュレーションについて

このキャラクターの手は短くて太く、難しいユースケースに対応したものになっています。解剖学的に正しい骨格のルールに従うのではなく、ボーンの一部を取り除き、複雑さを最小限にして、シミュレーションにゆとりを持たせることにしました。これにより、手に柔らかさとふにゃふにゃした感じを与えることができました。

The hands of the character are short and thick, which makes for a difficult use case.
このキャラクターの手は短く太く、難しいユースケースに対応している。

手のボーンのデザインは、手のひらと指の 2 つに大別されます。手のひらは外皮と同様で、各々の指の付け根がシミュレーションのアンカーポイントとして機能するようになっています。一方、指先は真ん中に何もない、ただの浮いたボーンになっています。

When posing the hand, the position and orientation of the fingers are locked between bone areas, and the transition is handled by the simulation.
手のポーズをとる際、指の位置と向きはボーンエリア間で固定され、変形はシミュレーションで処理される。

ボーンが組織にどのような影響を与えるのか、そしてそれらが動いたときにどのように見えるのか、おわかりいただけたと思います。指では、指先から手のひらへと変形が伝播していく領域で、滑らかな結果が得られています。四面体メッシュは、変形が激しい部分の解像度を上げるためにカスタムマップをいくつかペイントしていますが、この画像でもそれが顕著に表れています。

The bones influence the tissues when moving the character’s hand.
キャラクターが手を動かすとき、ボーンは組織に影響を与える。

ここでは、ボリュームアップするポーズの例をお見せします。圧縮することで、拳が締まり、手全体の形が変化しているのがわかります。横から見ると力強い雰囲気で、正面から見ると漫画のような丸みを帯びた拳になっています。

A pose that shows volume buildup by compression
圧縮によるボリュームアップを表現したポーズ

ポーズの評価

手のポーズは、皆さんが思っている以上にキャラクターの他の部分に影響を及ぼします。下の画像では、指のポーズが変わって、手のひらのパッドが手首まで押し下げられていることがわかります。

この影響により手首の形状が変化し、その影響は腕から肘にまで伝播していきます。前腕全体がつながっているように感じられ、有機的な形がはっきりと見えてきます。

Poses on the hand affect the rest of the character’s deformation.
手のポーズが、キャラクターの他の部分のデフォーメーションに影響する。

シミュレーションに関する数値

シミュレーションを構築してきた過程の全体を振り返ると、手と足を加えても、コンポーネントの数は管理しうる領域にかなり収まってきています。シミュレーションにかかる時間は、全身で 1 フレームあたり 20 秒未満です。

ここまででお見せした腕など部位に限定して評価すると、シミュレーション時間は 1 フレームあたり 2 〜 3 秒となります。つまり、シミュレーション設計と局所的なテストのイテレーションがより素早く行えるようになるのです。

また、QuasiStatic Integrator を使用すると、直接反復積分を行う場合と比較して、シミュレーションが大幅に高速化されます。このキャラクターの場合、デフォルトの積分器とそのダイナミクスを使用した場合と比較して、シミュレーション速度が約 30% 向上しています。

まとめ

要約すると、私たちの目標は、シミュレーションをキャラクターパイプラインの終端から前面に移動させ、キャラクターのデフォーメーションを生成するために使うことです。このシミュレーションは、キャラクターの動き方のライブラリとなります。

シミュレーションを直接機械学習させるか、PSD 修正システムにシェイプを抽出することでポーズデータを採取することができます。キャラクターアーティストは、全身のデフォーメーションを手動で補正する代わりに、従来の方法でアートディレクションシェイプの疎なレイヤーを追加することができます。そのシェイプデータがリグに入ると、関係者全員がその結果から何らかの恩恵を受けることになります。

マテリアル、グルーミング、クロスはきれいなサーフェスで作業できるため、リギングアーティストやキャラクターアーティストは壊れたデフォーメーションを修正する代わりに、アートディレクションに多くの時間を費やすことができます。さらに、アニメーション部門は、組み合わさってまとまりのあるシステムとしてうまく機能する高忠実度のデフォーメーションと補正を備えたアセットを手に入れることができます。

この種のシステムで機械学習を使用すると、あらゆる種類のクールなデフォーメーションエフェクトをキャプチャできるようになります。それは身体の中で相互作用を起こすすべての部位にわたって起こるようなエフェクトで、機械学習を使わない場合は容易にはキャラクターに組み込めないものです。

SIGGRAPH 2022 での私のプレゼンテーションでは、スタイル化されたキャラクターのシミュレーションに使用される技術について、より詳しく説明しています。また、Ziva VFX についてより詳しい情報を知りたい場合は、専門家にお問い合わせください。

2022年12月16日 カテゴリ: Industry | 18 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

関連する投稿