24.6K Views
June 14, 24
スライド概要
Unreal Engine Meetup in Osaka Vol.02にて弊社 関口が登壇した際に利用したスライドです。
https://indie-us-games.connpass.com/event/312840/
株式会社Indie-us GamesのDocswell公式アカウントです。
揺れものとコントロールリグ UEを使用したバーチャルライブでの実例
はじめに ● 本スライドについて ○ 2024年4月28日に開催された「Unreal Engine Meetup in Osaka Vol.02」で講演に使用したスライドを公開用に編集、 削減をしています。 ○ UE4を使用したプロジェクトからの知見となります。 ご了承ください。
はじめに ● 内容 ○ 全体的なお話は、下記を参照。 「UEなんでも勉強会 - バーチャルライブ編 - vol.1」 セットアップ周りを少しだけ深堀り。 ● こんな人見てほしい ○ UEで髪やスカートを揺らしてみたいけど何を使用すればいいか分からない ○ UEでのセットアップ実例を知りたい ○ 動いたけど、モデルが崩れる…などなど
自己紹介 ● 名前 ○ 関口 健斗 https://twitter.com/CG_Sekki ● 職業 ○ CGアーティスト ● 経歴 ○ 映像制作会社にて、CGアニメーション制作などを経験後、 株式会社Indie-us Gamesに入社。アニメーション関連の制作に 関わりつつ、講師業やセットアップ業務にも従事。
揺れもの編
揺れもの バーチャルライブにて使用した揺れものは2種。 「Kawaii Physics」と「Nv Cloth」 (プロジェクトによって変動)
Kawaii Physics 髪の毛に使用。 元々の形状を生かしたまま揺れを付与 する事が出来る。 モデル制作段階でシルエットが形成さ れるアニメ系やVtuberとは相性〇 いわゆる「それっぽい」動きへの近道 ノード例
Kawaii Physics 主な調整は下記。ただ、一つのパラメータを調整すればいいわけではなく、 組み合わせて、理想に寄せていくようなイメージで制作を行った。 ● Damping ○ 「減衰度」揺れの強さにまつわるパラメータ。 上げると揺れて、下げると揺れなくなる。 ● Stiffness ○ 「柔軟度」抵抗度の強さにまつわるパラメータ。 上げると固く、下げると柔らかくなる。
Kawaii Physics ● Collision ○ 「衝突」 揺れる骨に対して、干渉するコリジョンを特定の骨に割り当てる。 左の画像では、足にコリジョンカプセ ルを割り当てることで、互いに衝突さ せてめり込みを避けている。
Kawaii Physics ● Curve Asset ○ ジョイントに対して揺れの強さを変動させる為に使用。 カーブを設定することで、本来は出来ない根本の減衰を強くし、 先端の減衰を弱くするようなコントロールを実現出来る。 。
NvCloth 主に布地に使用 全て「Kawaii Physics」にする事もできたが、リッチな表現として、一部バー チャルライブに試験的に取り入れた。試行錯誤はあったが、ボーン基準では難 しいリアリティのある布を表現することが出来た。ただ、ポリゴンの密度など が影響するので、プリプロ段階で取り込みを考慮しながら制作する事を推奨。 ※Nv Clothは、UE4時代のクロスシミュレーションツールであり、UE5では、撤廃されています。 UE5では、「Chaos Cloth」というものがメインのツールとして使用されています。より詳細で精度 の高いパラメータ調整を行うことができます。 近いパラメータも存在しますので、参考物として記載しています。
NvCloth UEに限った話ではないが、Clothのパ ラメータに関する資料は非常に少な い。コツとしては、想定より値の影響 を受けるので、ざっくりとした基準値 を決めて、細かく良いものに寄せてい くイメージで制作していくと良い。 パラメータでの調整が難しい場合は、 ペイント自体の値を下げるのも有用。 →次ページ参照
NvCloth ● Tips ○ Clothの影響を受ける箇所を絞る為 に、メッシュを分けたり、最大値100 のところを1~10という小さな値でペ イント値を入れるなどして、工夫をし 0 10 ている。
NvCloth 最終的には、目的の生地や布地 に見えるかどうかが、重要。
揺れもの つまり…
揺れもの パラメータは、 数値でしかなく、答えではない。 素材感が伝わるか、重力を感じるか 自身としては、アニメーション制作経験が 生きた部分でした。
コントロールリグ編
コントロールリグ Unreal Engineのコントロール リグは、ブループリントに基づくスクリプト 可能なリギング システムであり、アニメーションを動かすプロパティの制御 を主な目的としています。コントロール リグ | Unreal Engine ドキュメント ※公式ドキュメントより引用
コントロールリグ 何に使ったの?
コントロールリグ 動的可動
コントロールリグ 後付けで骨の制御が可能であり、 親子関係などの制御をノードで組む事が出来る
コントロールリグ ● 動的可動 ○ 骨同士を関連付けさせる。条件付けなどの設計が必要で、初めて 触る場合は、EpicGames様から配布されている機能別サンプルプ ロジェクトを参照すると良い。
コントロールリグ 使用例
コントロールリグ 揺れもの編で前述したコリ ジョンのみの判定衝突では、 シミュレーションに任せてい るため、過度な接触が発生す るとオブジェクト同士がめり 込んでしまうことがある。
コントロールリグ 足に入る回転値をスカートのボー ンに渡すことで、コリジョン同士 の過度な接触を避けることが可能
コントロールリグ ● ツイストボーン ○ CGにおいて手首などを捻ると、捻じれが発生する。 モーションキャプチャの精度によっても極端な捻じれが発生し、 見た目としては手首が千切れたようにも…。 ○ ツイストボーン自体は、何年も前からある捻じれ対策だが、UEな どのリアルタイムレンダリングでは、デュアルクォータニオンや デルタマッシュ※1が使えない為、現状はツイストボーンを 組む必要がある。 ※1メッシュの極端な可動を避ける機能
コントロールリグ ・手首に120度の回転を加えたもの ・回転をツイストボーンで分散したもの
コントロールリグ ● 破綻の回避 ○ 題材とさせていただいたPJでは、発生しなかったが、腕が上着に大き くめり込む問題などもあった。考えとしては同じだが、関連付けを行 い、ボーンの特定値に対して、逃げる用のボーンをDCC上で差し込 み、動作させるような対策もした。ボーンとシェイプを関連付けする 事も出来るので、時間はかかるが、様々なめり込み問題に対処するこ とが可能。
最後に ここまでスライドをご覧いただき、ありがとうございました。 今回ご紹介した事例はほんの一部です。実際には、多種多様なモデルに対応し たイレギュラーなノードを組み合わせたり、さまざまな対応を行っています。 私自身も、一度で上手くいくことはなく、試行錯誤を重ねていますが、やはり 初めて触れたときが一番苦労しました。 このスライドが、同じように初めてセットアップを行う方の助けやきっかけと なれば幸いです。