イベント
実写並のリアルなキャラクターを自在に操れる「MetaHuman」解体新書
本稿では,今回のUNREAL FEST初日に配信されたゲーム分野での最初の講演となる「MetaHumanサンプル解体新書」の模様を紹介したい。
講演を行ったのはエピックゲームズジャパン デベロッパリレーション テクニカルアーティストの斎藤 修氏とデベロッパリレーション ソフトウェアエンジニアの岡田和也氏だ。まず,最初に斎藤氏からMetaHumanとはなにかについて紹介された。
MetaHumanとは,近年Epic Gamesが力を入れていたリアルな人間キャラクターを扱うためのシステムの総称だ。2021年2月に発表されている(関連記事)。かつてはDigital Humanとして紹介されていた時期もあったが,その完成版といった位置付けだろう。精細にキャプチャされた人体データと,これまた精細なリグ付けによって自然な人体の動きを生成してやろうという試みは以前から行われており,それらのデータを蓄積して,精細にキャプチャされたキャラクターデータと,同水準の自然な独自キャラクターを誰にでも扱えるようにしたものがMetaHumanだと思っていい。
こういった高品質なキャラクターは,ゲームでのリアリズムを向上させ,その生産性を高めるだけではなく,映画や映像制作で革命的な役割を果たしうるほか,各種アバターシステムでの活用など多用途での利用が期待されている。昨今のZoomなどを使ったテレカンなどでも,本人そっくりなモデルデータと本人の身体や表情の動きをリアルタイムキャプチャで忠実に再現してやれば,実写映像に代わる媒体としての利用が期待できる。そんなの実写でいいじゃないかという説もあるだろうが,高解像度になると映像データより各種パラメータの変位データのほうが格段に軽く,さまざまなキャラクターへの適用などといった応用も利くというのは簡単に想像できるだろう。
こういった実写レベルのキャラクターをゲームに登場させるようなことは,実は以前から行われていた。実在の俳優から詳細な3Dデータをキャプチャし,本人の顔の演技のキャプチャなどによって動かすパフォーマンスキャプチャの話題などは目にしたことのある人も多いだろう。
もちろん,MetaHumanでもキャプチャデータと同期してキャラクターを動かすことは可能で,その用途も大きな柱となっているのだが,今回中心的に説明が行われたのは,プログラム上からControl Rigを使ってキャラクターを動かす方式だった。ゲーム内でキャラクターを自在に動かすにはそちらのほうが現実的だろう。
さて,MetaHumanで使用するキャラクターデータは,MetaHuman CreatorというWebベースのクラウドアプリで作成される。現在早期アクセスが行われており,誰でも利用可能だ。クラウド上で動作するため,非力なノートPCでも軽々実行できる。
従来は,超精細な3Dスキャンやフェイシャルキャプチャを駆使して1体1体手作りされていたような,まさに人間そのものの非常に高品質なキャラクターを,用意されたキャラクターデータのブレンド比率を変えたり,各種パラメータをいじったりすることで,手軽に作成できるようになったのだ。これまで数週間,数か月かかっていたものが数分で済んでしまうという。なにより重要なのは,そうしてエディットされた独自キャラクターも,実写キャプチャのキャラクターと同等の自然な動作や表情をするということだ。
現実の人間の表情をゲームキャラクターにリターゲットするというのは,以前からよく行われていた手法である。パフォーマンスキャプチャをして,ゲームキャラクターに迫真の演技をさせるわけだ。
ただ,多くの場合(過去のEpic GamesのDigital Humanでさえ)リターゲットされた表情は少し不自然なものだった。人間の目は人間の表情にはとてつもなくシビアで,不自然な動きには敏感に反応する。顔の違いすぎるものからの表情データではうまく適合しなかったり,本人の表情データで不自然なものはリグがおかしかったりしていたのだろう。
MetaHumanにはいくつかの特徴がある。とくに,実際のスキャンデータをベースにしたシステムであり,パラメータの変化を既存のデータの範囲内に留めるようにしているため,上記のような破綻が起きにくいという点が重要である。
また,高精細でリアルなキャラクターに注目が集まっているが,MetaHumanはUE上で動作するものであり,それはハイエンドPCに限らない。MetaHumanのデータはPCやゲーム機,スマートフォンなど,UEが動く環境すべてで(一応)使えるものとなっていることにも留意すべきだろう。もちろん,データの精細度などは異なるが,負荷に応じてさまざまな表示方法が選択されるようになっているのだ。
分かりやすい髪の毛でいうと,ストランド(房)ベースのリアル髪の毛をUEがサポートするというのは以前紹介したとおりだが(現在はHair Groomと呼ばれている),それを使った最高品質のものと,髪の塊をカードの集合体として表現する手法,さらに,髪の毛の輪郭をまとめてポリゴン化したようなメッシュによる表現方法などが負荷や表示距離などによって選択される。
このようなLoD(Level of Detail)は標準で8段階用意されており,8Kテクスチャを使った高精細モデルからモバイル端末で表示できる軽量モデルまで揃っている。8Kモデルではだいたい2GBのデータ量になるとのことだったが,2Kテクスチャにすれば半分で済むという。最高精細度では頭部の表現に2万4000頂点ほどが使用されるが,最低精細度ではこれが130頂点ほどになるそうだ。その間を8段階で指定できるわけである。
そして前述のように,これらの高精細なデータを人体として自然に動かすためのリグ付けが行われている。リグとは,特定の複数の頂点をまとめて制御するための仕組みだが,膨大な頂点数を持つ高精細データを自然に動かすことは簡単なことではない。頂点を動かすときは,ボーンという構造が頂点間に設けられて柔軟な動きをサポートする。ボーンの1つ1つを制御するのは非常に手間がかかるので,複数のボーンを機能ごとにまとめて扱えるようにしたものがリグである。
たとえば,右手の人差し指を伸ばすときに,第1関節,第2関節,第3関節それぞれの角度を少しずつ変えていくよりも,人差し指で定義されたリグの曲げ具合というパラメータを変えるだけのほうが簡単に扱える。モーションキャプチャなどでも制御の要となるリグ付けは,非常に手間のかかる作業だったのだが,MetaHumanでは(少なくともサンプルをベースにする限りは),そういったものが不要となり,各種アニメーションシステムでの制御ができるようになる。
このMetaHuman Creatorで作成したデータをUE4で使うには,無料のQuixel Bridgeというツールを使用する。MetaHumanのタグを開くと,作成されたデータ一覧が出てくるので,あとはエクスポートボタンを押すだけでUE4に読み込まれるという簡単さだ。読み込み時にエラーが出てくるものの,基本的には「Enable Missing...」といったボタンで足りない要素を有効化してやれば大丈夫とのことだ。インポートされたMetaHumanのブループリントをレベル上に配置すれば,それだけで作成したキャラクターが表示される。
また,作成したデータはQuixel Bridgeを使用することでFBXファイルに変換でき,Mayaなどでの編集が可能となっているという。当然ながら,角を生やしたり,耳を尖らせたりといった,現実にはないことはそちらで行うことになるのだろう。
日本の文化的には,自分の顔データを使うよりもFaceRigやVTuberののようなアニメ顔を使いたいという人も多いだろうが(実際,講演後の質問でいくつか見かけた),リアルキャラクターがきちんと再現できて全体的なキャラクターシステムの構成が決まれば,そのあたりは今後どうにでもなる部分ではあろう。
顔だけでなく,身体についても規格化されているが,頭部に比べるとかなり単純化されている。手や足首,ベルトといったボディ周り一般,上半身,下半身,足部分といった4種で表現されており,LoD(Level of Detail)は4段階となっている。ただ,テクスチャについてはLoDが適用されないので少し注意が必要だと斎藤氏は語っていた。
MetaHumanのキャラクターをよりリアルなものとしている毛髪については6種類に分けられており,髪,眉毛,産毛,睫毛,口髭,顎鬚で制御されている。女性などで髭がない場合には,該当のGroomアセットは生成されない。
毛髪は,アフロヘアなどのいくつかのものについては,LoDデータが生成されないので注意が必要とのことだった。また,Groomで生成されたストランドベースの毛髪は,現状では形状のエクスポートもできないようで,こちらも気を付ける必要がありそうだ。
顔の構造は非常に複雑で,多くのマテリアルやモーフターゲットが用意されている。こちらについては,MetaHumanの前身となるDigital Humanのドキュメントが参考になるとのことだった。まったく同じではないそうだが,多くの部分で同じ構造が取られているそうで,そちらのドキュメントで詳細に技術解説が行われているという。
とくに重要な肌のマテリアルは「容赦ない複雑さ」となっているが,大まかにベースカラー,スペキュラ・ラフネス,ノーマル,肌の赤味や雀斑・化粧など,毛穴,ベイクされた毛髪類という6ブロックに分かれている。これで各種LoDやモバイル端末にも対応するなど,複雑な処理がされており,命令数は約700でテクスチャサンプルは最大30におよぶ。とくに最大LoDで使用するときは重くなるので注意が必要だとしていた。
斎藤氏の概要に続いて,岡田氏からMetaHumanをControl Rigで扱う際の注意点などについての紹介が行われた。
Control Rigとは,先に紹介したようなアニメーション制御用のリグをUE4から制御できるようにする仕組みである。ゲーム内の状況に応じてアニメーションをいじることで,より自然で複雑な挙動ができるようになるのだ。
UE4からMetaHumanを使うためのControl Rigには,ボディ用とフェイシャル用の2種類があるという。それぞれを制御するためのギズモが示されたが,とくにフェイシャル用は非常に複雑だ。とはいえ,もっともっと複雑なものを簡単に制御できるように用意されているものなので,これらを適切にいじっていけば,より多彩な表情なども引き出せるだろう。
扱い方としては,これらのギズモで動かしたものをSequencer上にキーとして打ち込んでいくことで,手動アニメーションをさせられる。
続いて,MetaHumanのControl Rigを扱うためのTipsが紹介されていった。
岡田氏がまず紹介したのは,UE4.26に追加された新機能だ。Skeletal MeshをSequencerに追加すると,設定されているControl Rigが自動的に追加されるようになったのだという。
またEditor Utility WidgetのMH_CR Pickerは,肘や膝の中間関節についてはIKとFKの切り替えができ,関節の先の部分の動きに沿って角度を自動調整するか,自分で関節の角度を指定するかが選べる。これはかなり便利とのことだ。
フェイシャルのControl Rig操作用のギズモはスタティックメッシュ(faceboard_2x)だそうで,自分のオリジナルのギズモも作成可能だという。ただ,アーティストでないとスタティックメッシュを作ること自体が困難な場合もあり,そういうときは3D文字をスタティックメッシュにして利用することを推奨していた。
次に紹介されたのはTwistボーンによる捻じれの補正処理についてだ。MetaHumanでは,Twistボーンを利用して,たとえば手首の角度に応じて捻じれを追加して,手首のつながりが不自然にならないようにControl Rigで自動調整しているという。肩などの捻じれが起きる部分でも使われているそうだ。
さらに身体の動きによる衣類の補正処理もControl Rigで行っており,首を傾げたときに襟の部分が開いたり,脚が動いたときのスカートの突き抜けを防ぐといったことにも応用できるとのことだった。
こういった補正処理は,ポストプロセスとして定義されているため,モーションに手を加えることなく,衣類ごとの挙動を定義できるので非常に扱いやすいという。また,MetaHumanのアニメーションは,空のスケルタルメッシュに対してモーションを適用したあとで,その動きをそれぞれのキャラクターにコピーして実現しているのだそうだ。こうすることで,キャラクターごとにアニメーション制御BPを持つようなことをしなくて済み,メモリ的にも有利になるとのこと。
そのほか,MetaHumanではMaterial Curveという機能を使って,表情ごとに使用するマテリアルのブレンドを変えるなど,多彩な表現ができるようになっている。MetaHumanでは,ベースとして4種類のテクスチャとノーマルを持っており,表情などで使い分けるような処理が行われているのだ。
補正処理以外でも,Pose Driver機能でPoseアセットのブレンド比率を動きによって切り替えるようなことができ,より複雑なモーションを実現できるという。
このような機能はMetaHuman特有のものではなく,既存のアニメーション処理でも活用できるものである。岡田氏は,MetaHumanというとリアルな見た目やアニメーション編集機能に目が行きがちだが,このようなControl Rigを使った補正機能や生産性を上げるための工夫が随所に凝らされているので,MetaHumanを使う予定がない人にも参考になる部分が多いと語り,講演のまとめとしていた。
なお,講演動画は公式サイトやYouTube上にアーカイブされているので,より詳細な情報や参考情報などについてはそちらを参照してほしい。
「UNREAL FEST EXTREME '21 SUMMER 2021」公式サイト
- この記事のURL:
キーワード