Unity Wētā Tools のシニア TD ジェネラリストとして、私はゲームトレーラーやシネマティクス、キャラクターのリギング、クロスのシミュレーション、アニメーションツールなどを定期的に制作しています。ですから、私が空いた時間に素晴らしいアート制作ツールを使って色々試しているのも不思議ではないでしょう。
私の最新の個人プロジェクトである『Balluna』の制作開始から、7 か月が経過しました。
私の大好きな祝日の 1 つがハロウィンということにちなみ、Ziva VFX を筋肉や組織のシミュレーション以外に使用してみようと思い立ちました。ハロウィンパレードのバルーンでできた、魔法仕掛けの動物に命を吹き込んだ方法をご紹介します。
私が探求したデザインコンセプトは 2 つあります。図形の非対称性と並列配置です。
異なる形同士がどのようにコントラストを生み出すのかを試してみたかったのです。例えば、私のキャラクターの右腕と左足は、三角筋、上腕二頭筋、上腕三頭筋、腕の伸筋、ハムストリングス、ふくらはぎの筋肉といった解剖学的な筋肉の構造を持つようにモデリングされています。逆に、左腕と右足はスタイル化されたチューブのような構造になっています。
縞模様のテクスチャを使うと、さまざまな形をうまく結合できることが分かったので、全体的に同じテーマを使用しました。またこれにより、丸い泡のような形のバルーンの集合体に対して、印象的なコントラストを生み出すことができました。
キャラクターの体は、メキシコサンショウウオをベースにしています(あの頭のフリフリからキャンディを連想したからです)。アニメーションの構想を練っていく中で、メキシコサンショウウオの典型的な泳ぎ方を追求するのではなく、もっと流動的で「浮遊感」のある方法でアニメーション化することにしました。この構想を実現するために、カワウソの構造と水中での体の動きを調べました。
まず、鉛筆と紙を使ってスケッチを作成した後、Krita を使ってコンセプトアートを描きました。
モデリングは、Maya でシンプルなプリミティブを使って形状のブロックアウトを作成し、それを ZBrush に取り込んで細部をスカルプトしました。これには、バルーンのしわや、形状を組み合わせて Balluna の体や他のキャラクターの体を作る作業も含まれます。
ZBrush でモデルのスカルプトを終えた後、再度 Maya に取り込んでリトポロジーと UV 作業を行い、ジオメトリをリグ、アニメーション、テクスチャで使用できるようにしました。
次の作業は、Maya のデフォルトのアニメーションツールを使ったリギングとアニメーションです。Balluna の背骨に穏やかなアニメーションをつけるために、nHair を使用してシミュレートされた背骨を設定しました。バルーンカートの紐も nHair を使ってシミュレートしました。
Balluna 自体は、ボリュームを保つために Ziva VFX を使ってシミュレートしています。シーン内のすべての要素に最終的なアニメーションとシミュレーションを適用した後、キャッシュを書き出して Arnold でレンダリングを行いました。最後に、すべてのレンダーパスを Natron で合成しました。
Ziva VFX を使用する目的は、個々のバルーンのボリュームを維持しやすくすること、そして 1 つ 1 つのバルーンにリギングとアニメーションの付与を行うことなく 2 次的な揺れを加えることでした。
キャラクターに Ziva を適用する前に、簡単な RND テストを行い、目的のデザイン言語が実現可能かどうかを確認しました。
まず、プロキシジオメトリをいくつか作成し、バルーンをコンストレインしました。これが内部のシミュレーションジオメトリです。市松模様の球体は、体の内部組織のジオメトリを表しています。最終パスでは、市松模様のジオメトリが Balluna のお腹のボリュームの内部組織になります。この RND ではリジッドですが、ショットではジオメトリもシミュレーションされます。
小さい外側の形状はバルーンの内側にあります。これが開発段階での内部のドライバー組織です。
内部のドライバーバルーンは、頂点が市松模様の球体に緩やかにコンストレインされています。こうすることで、市松模様のバルーンとの相対的な位置を維持しながらも、自由に動くためのゆとりを作ることができます。
内部の仕組みが分かったところで、外側の組織を見てみましょう。
バルーンの主な外部組織は、内部の各ドライバー組織に緩やかにコンストレインされています。ここまでで、いくつかの緩やかなコンストレイントを作成し、内部と外部の組織のシミュレーションを行いました。これによって、外部の組織が衝突し合い内側のドライバー組織の動きに影響を与えたり、あるいは反対方向の影響が発生するため、興味深い相互作用を得ることができます。
外部のレイヤーと内部のレイヤーとの間の相互作用を実現した方法をご紹介します。
zAttachment strength 属性を使うことで、簡単にこの効果を実現し、アタッチメントの強さを指定できました。これにより、オブジェクトがオフセットを維持する強さを設定でき、これらの設定は、ボタンのクリックだけで変更できました。
そして、この属性をキャラクターに適用し、ショットのコンテキストに取り込んでシミュレーションを行いました。
Balluna に重みを与えるために Ziva VFX を使用し、組織シミュレーションによる 2 次的な揺れを加えました。このフェーズは、シミュレーション用のドライバーボーンのキャッシュを書き出した後に実施しました。
このキャラクターの主な課題の 1 つは、バルーンをテーマにしたデザイン言語でした。従来のリギング結果は、メッシュの外面だけを検知して変形させます。もし従来の skinCluster デフォーメーションのアプローチを取っていたら、つまり、メッシュの中心にジョイントを配置し、ジョイントのトランスフォームがトランスフォームにベイクされた頂点をオフセットできるようにマップを描き込む手法であれば、ボリュームを維持することはできなかったでしょう。
Ziva シミュレーションを使用することで、バルーンの個々の形状を維持することができました。
もし Ziva VFX を使わなかった場合、個々のバルーンにジョイントを作ることで従来通りにリギングできたかもしれませんが、リグが非常に重くなり、より多くのアニメーション作業が必要になっていたでしょう。クロスのシミュレーション手法はメッシュの外側だけをシミュレートするので、ジオメトリの内部のボリュームを保持することは考慮されていません。これでは、狭いスペースに入ったときに、バルーンがくしゃくしゃに見えてしまいます。
Ziva VFX を使用することでボリュームを維持できるため、リグを簡素化でき、skinCluster を使った補助ボーンのリギングを行わずに、ボリューム維持のセットアップをシミュレーションに任せることができました。
Ziva VFX は、キャラクターアーティストが現実世界の人体や動物の体の構造に基づく物理的な動きの模倣を可能にしつつ、超現実的なキャラクターやスタイル化されたキャラクターに使用できます。
Is this article helpful for you?
Thank you for your feedback!