UE4なら「実質無料」でVTuberになれる! 最新機能で実現するモーションキャプチャ環境
その中で,UE4の最新機能を紹介する,自称UE4エバンジェリスト系VTuber水瀬ツバキことEpic Games Japanサポートエンジニアの岡田和也氏による講演が行われた。なお講演の冒頭部はツバキちゃんによる進行だったのだが,当日の音声の調子が悪く,途中から岡田氏による講演となった。
GDC2018で公開された「Siren」に代表されるデジタルヒューマンはUE4での将来的なターゲットともなっている。また,SIGGRAPH 2018のReal Time Live!で最優秀賞を受賞したリアルタイムモーションキャプチャデモ「BEBYLON:BATTLE ROYALE」もUE4を使っているとのこと。これらの動きに伴って,UE4でのモーションキャプチャ,フェイシャルキャプチャなどへのサポートが非常に充実してきているらしい。
ちなみに,Sirenさんなどは海外でのVTuberの事例として挙げられていた。
SirenとVTuberでは,目指しているところはかなり違うように思われるとはいえ,やっていることの規模は違っても基本的なところはだいたい同じであり,バーチャルヒューマンをサポートするための各種機能の拡充はVTuber用としても非常に有益なものとなっている。今回は,そういった機能をうまく使ってUE4でVTuberを「可愛く」実現しようというのが趣旨となっている。
なお,講演では個人で同様なことを行う手法としてはFaceRigとLive2Dを用いるものも挙げられていたが,そちらについてはこちらの記事が参考になるだろう。
4Gamer:こんな俺でもWebカメラがあれば美少女になれる! BRZRKが贈る「FaceRig」+「Live2D」利用ガイド
ORIONは体の各部にViveトラッカーを取り付けて身体全体の動きを取ってやろうというシステムだ。ちょっと同人ぽい発想ではあるが,開発しているIKENIMAは,IK(インバースキネマティクス)ミドルウェアの大手で有名ゲーム会社がこぞって採用するようなテクノロジーを持っており,簡易モーションキャプチャシステムといった体のORIONの評価も高い。ちなみに,IKINEMAはUnreal Engine対応製品を多く扱っているが,ORION自体はUnityでも使えるモノではある。
日本でよく使われている(らしい)「バーチャルキャスト」が,Viveトラッカー最大7個を使う(両足/両肘/両膝/腹)のに対し,ORIONでは3個か5個のViveトラッカーを使用する。言い換えるとバーチャルキャストがすべての主要な関節でデータを取るのに対し,ORIONでは同社のノウハウで関節の推定を行うわけだ。
なお,今回(少なくとも前半で)想定されているVTuberというのは,キズナアイとかミライアカリのような全身を動かす(というか全身を表示する)タイプではなく,上半身だけのものである。分かりやすく言えば,ゲーム実況の画面端に女の子が出てきてしゃべるタイプのストリーミング配信が可能になるシステムのことだと思っておくといいだろう。
ということで,今回想定されている環境は,VRヘッドセットとハンドコントローラを使ったシステムとなる。PC用でVRヘッドセット+ハンドコントローラを持つ機種,すなわち,Rift,Vive,そしてWindows MRデバイスが対象となっている。
これらのデバイスでは,頭の位置と向き,手の位置と向きが取得できるので,とりあえず頭と両手を表示するのは簡単だ(指の動きはともかく)。UE4ではそれらのVRヘッドセットをサポートしているので,BluePrintでアニメーション部分に適用してやるだけで手と頭は動くようになる。
人体などを動かす際に,個別に関節を動かして最終的なモーションを付ける方法がフォワードキネマティクス(FK)であり,逆に最終的なモーションを先に指定してそこから関節の位置と角度を割り出していくのがインバースキネマティクス(IK)となる。
今回は頭と手の位置と角度だけ獲得できるので,肩や肘の動きを割り出してアニメーションさせていくことになる。
UE4ではIKを実装するための仕組みも備えており,次のようなものが使えるという。
FABRIK
複数の関節群の両端の位置と角度から途中のものを推定していく
TWO BONE IK
3つの関節の両端の位置が分かっているときに真ん中の関節を推定する
SPLINE
一連の関節群を曲線に沿って滑らかに補間する
LEG IK
脚専用
HAND IK Retargeting
体型が違う場合の手の補正用
今回は肘の動きと身体の軸となる背骨の動きについて,それぞれに適したIKが使われており,肘の動きではTWO BONE IKが使いやすいという。これは計算する関節が一つなので処理が速いということと,外的制御を加えやすいことが理由だそうだ。肩の位置などは比較的簡単に推定できるという前提なのだろう。
講演ではFABRIKとTWO BONE IKの双方で実装した動画を比較していたが,TWO BONE IKのほうでは制御点(Joint Target Location)を加えて,肘の位置を内側になるようにコントロールされていた。岡田氏は可愛い女の子を表現するうえで「脇を締める」ことがとても重要であることを力説した。
前提として補足しておくと,IKでは必ずしも条件を満たす解が1つとは限らない。どの解を使うか,人体特有の制限を加えて自然な動きを出すノウハウが,IKINEMAのORIONやAutodeskのHumanIKなどのIKシステムでの特徴でもある。今回使っているシステムはそういうものを使っていないので,制御点を加えて多少の誘導をしてやろうというわけだ。ここで使われているJoint Target Locationは,関節をその方向に引っ張る役目をしていると考えておけばいいだろう。
頭から腰にかけての背骨などの制御では,FABRIKを使うのが自然だったとのこと。TWO BONE IKでは多数の関節を扱うのは大変で,SPLINEだと上半身に使うと捻ったときに自然な感じになるといった話も出ていたのだが,基本的に制御が大変すぎるようだ。素直にFABRIKがよいらしい。
VRヘッドセットからの頭と両手の情報をアニメーションに入れて,肘と上半身の関節を補間してやる。これだけですでにかなりVTuberらしいことの大枠はできてしまうと岡田氏は語る。BluePrintではだいたい以下のようになるとのこと。
これですでに身体の動きの基本的な部分はできているのだが,今回は「可愛く」というのがもう一つのテーマでもあるため,より可愛くなるように改良が加えられた。導入されたのは身体の捻り要素だ。
日本舞踊の資料が持ち出されて,女らしさは身体の捻りによって表現されるといったことが示された。男性はものを見るときに首だけを動かすのに対して,女性の場合は肩のあたりまで動かすのだそうだ。実際にそれを導入することになった。ここで使われたのはSPLINE IKだ。
頭の向きによって,肩と上半身に少し捻りを加える。これでより可愛くというか,上半身の表情が豊かになった感じになる。ちょっとした工夫を重ねることで「可愛さは作れる」と岡田氏は強調していた。
表情はどうやって変えるのか
この手のVTuberの多くは,表情を手動で切り替えることが多い。カメラを使ってアクターの表情を反映するようなものもないではないが,最近増えているVRヘッドセット+ハンドコントローラという簡易的なシステムではそういうことは難しい。VRヘッドセットを着けていると,カメラでは表情が見えないからだ。
ということで,コントローラで表情を切り替えるわけだが,これにはMorphターゲットを使用するのがよいとのこと。Morphターゲットは,メッシュ自体をモーフィングで変形させていく手法で,Morphターゲットに対応したデータであれば,スライダーで目や口の開き具合を変えたり,それらをブレンドしつつ微妙な表情を作ったりもできる。
BluePrint上でMorphターゲットを扱うには,アニメーションエディタ上で動作を確認しやすいModify Curveノードがおすすめとのこと。あとは,いろんな表情になるデータを用意しておいて,コントローラの入力に応じてその表情に移り変わるようにするわけだ。
Poseアセットは1フレームだけのアニメーションファイルだそうで,姿勢だけを指定するものとなる。ターゲットとなる動きを指定して現在の状態から遷移していく。ちゃんとしたモーションではないのだろうが,この方法でかなりよい結果が得られるとのこと。アニメーションのブレンドでやると,制御が大変になるのだが,Poseアセットであれば非常にシンプルに実現できるという。
また,アニメーションエディタで一時停止しているポーズをそのままPoseアセットとして出力してやることもでき,自分でアセットを簡単に作れることもお勧めの理由として挙げていた。
リップシンクの導入
一般的に,リップシンクには2つの手法がある。音声をフォルマント解析し,母音子音を判定して口の形を割り当てるような手法と,カメラで口の動きを撮影してそれをアバターに反映させる方法の2種類だ。
VTuberでは,Oculus VRが提供しているOVRLipSyncが多用されているようで,ここでもそれを利用していた。これは音声から口の動きを作ってくれるライブラリである。使い方も簡単でクオリティもよいようだ。気になる遅延については,OBSでのオフセットは「100で十分」とのことだった。
OBSで配信するためのクロマキー合成
頭とか手の位置は?
→ 直接取れるので,アニメーションに入れましょう
肘とかの動きは?
→ TWO BONE IKを使いましょう
胴体の動きは?
→ FABRIKを使いましょう
表情は?
Morphターゲットで切り替えましょう
指の動きは?
Poseアセットで切り替えましょう
リップシンクは?
OVRLipSyncを使いましょう
→ 直接取れるので,アニメーションに入れましょう
肘とかの動きは?
→ TWO BONE IKを使いましょう
胴体の動きは?
→ FABRIKを使いましょう
表情は?
Morphターゲットで切り替えましょう
指の動きは?
Poseアセットで切り替えましょう
リップシンクは?
OVRLipSyncを使いましょう
あとはこれをどのように配信するのかだ。
今回の講演では,配信で定番ツールのOBS(Open Broadcaster Software)が前提とされている。それに対してどのような出力を行えばよいのかなどが岡田氏から解説された。
VR用の映像を普通にディスプレイに出力すると,それはプレイヤー側からの視点のものとなる。自分の手だけ見えていてもしかたないので,第3人称視点での映像を作るためカメラを追加し,その映像をテクスチャとしてOBSに渡してやるといった処理が行われる。UE4で第3人称視点を実現するのがVR Spectator Screenだ。
このとき,キャラクター以外の要素を写さなくするオプションも用意されており,Show Only Actorsを使えばキャラクターだけ抜き出せる。至れり尽くせりだ。
シーケンスレコーダーは凄かった
これでクロマキー合成もできるようになり,いつでもVTuberデビューができるようになった。
しかし,岡田氏はUE4を使ってさらなる提案をしている。UE4のシーケンスレコーダーを使用して,VTuberでの活動を丸ごとリプレイデータにして保存し,編集を加えたうえでそこから動画ファイルを生成するという手法が紹介された。
シーケンスレコーダーは,ゲーム動画配信のために作られた機能で,ゲームのリプレイデータを録画しておき,カメラ位置を変えたりエフェクトを加えながらのリプレイ再生や動画出力ができるというツールだ。リプレイデータに対して,ムービーオーサリングソフトのような感じでさまざまな編集を加えることができる。
これを使えば,配信映像にあとからエフェクトを加えたり,4K@60fpsといったリアルタイムにはレンダリングできないような解像度で動画ファイルを作成することもできる。オフライン処理なので,負荷によるコマ落ちなどの心配もないのだ。ライブ配信でない場合なら考慮してよい手法だろう。
また,1コマずつ画像ファイルとしても出力できるので,AfterEffectなどでさらなる加工を行うこともできる。シーケンスレコーダーを使って映像をアセット化しておけば,VR配信などのさらなる可能性も広がるという。
簡易VTuberシステムかと思いきや,下手をするとハイエンドな出力もできそうなのだ。
番外編:個人レベルでどこまでできるのか?
ここまでの内容で,UE4の機能を使えばVTuberが簡単に実現できることが示されたのだが,あまりに簡単にできてしまったそうで,残り時間では岡田氏が個人的に私財を投入し,個人でできるところの限界まで突き詰めるとどこまでいけるのかが示された。なんでも書籍の印税が入ったので勢いでやってしまったらしい。
スライドでは投入された機材などが挙げられていたが,映っているのは,
Rift,Vive Pro,Viveトラッカー8個,LeapMotionコントローラ,iPhone X,Hi5 VR Glove,ORION,ウェブキャスティングミキサー ヤマハAG03,ボイストランスフォーマー ローランドVT-3
となる。
これらの機材を使って試みられたのは,
フェイシャルキャプチャ
指のモーションキャプチャ
全身のモーションキャプチャ
だという(声の変換もやってそうだが)。
●フェイシャルキャプチャ
その代わり必要になるのがApple製のフェイシャルキャプチャデバイス「iPhone X」だ。日本でもかなり導入台数の多いキャプチャデバイスなので,すでに導入している人は無料でフェイシャルキャプチャ機能を追加できる。
実際のところ,iPhone XのFacial Shift機能をフェイシャルキャプチャに利用するというのは,前述のSIGGRAPH 2018で受賞したBEBYLONや市販ツールでいうとiCloneのLIVE FACEなどでも使われているアイデアだが,実際のところ使いモノになるレベルで精度があるらしい。
デバイスの入手性が高いというのもメリットだが,なによりよいのはLiveLinkに対応していることだ。LiveLinkは,MayaやMotion Builderなどのツールや各種デバイスからアニメーションデータを直接送信してリアルタイムにアニメーションを確認できる機能で,iPhone XからWi-Fi経由で送られたデータをそのまま利用できる。UE4からBluePrintのノード1個で非常に簡単に使えるのだ。Epic Games LauncherからダウンロードできるFace AR Sampleを導入すると,すぐに試すことができるとのこと。
ただし,アニメ絵の場合はあまりリアルな情報を送るのも考えもので,滑らか・リアルすぎるとよくないようだ。動く範囲やフレームレートなど,情報が少ないほうがよいこともあるという。また,微妙な目の開き具合などは調整して閉じる処理にしたほうが可愛くなることなどが示された。デモを見ている限りだと口もきっちり閉じておいたほうがいいように感じられた。
●指のトラッキング
LeapMotionコントローラは手の動きを取得するデバイスとして有名で,The MILLのデモでも使われていたが,センサーの検知範囲に手を置いておくことが前提なので腕を動かすVTuberでは少し使いにくいところもあるだろう。
結局,岡田氏が導入したのは,Hi5 VR Gloveだった。低価格なモーションキャプチャデバイスで知られるNoitomの製品だが,同社の従来製品でも一応指の動きは取れるのでこれが最安というわけではない。個人で手が届くギリギリのレベルといったところだろうか。もちろんUE4をサポートしているので,BluePrintで扱えるのだが,LiveLinkには対応していないので岡田氏はそこを残念がっていた。
指の動きが再現されることで,キャラクターの動きにはかなり表情が加わってくるようだ。また,指の動きが簡単に取れるようになれば,手のアニメーションデータを手軽に作れるようにもなり,VTuber以外での活用もできる。
今年のOculus ConnectでMichel Aburash氏は「指の動きまで対応するのは4年後」と語っていたので,こういったデバイスが一般化するにはもう少し時間がかかりそうだが,開発用機材としては少し早めに手ごろなものも出回るようになるかもしれない。もう数年の我慢か。
●全身のトラッキング
ORIONでは,Steam VRのポジショントラッキングシステムを使用し,6個ないし8個のトラッカーで身体全体の動きを計測する。この場合のトラッカーには,Viveヘッドセット自体と両手のViveコントローラも含まれるので,Viveトラッカーを3個ないし5個導入することになる。装着箇所は,両足の先,胴体(腰)と両肘だ。膝の動きはIKINEMAのソフトウェア技術で算出される。簡易型の方式では両肘の位置も同様に算出される。
ORIONはUE4との親和性も高く,LiveLinkにも対応済みで,BluePrintの1ノードで扱える。値段も手ごろ,精度も上々とのことで,かなりお気に入りのようだった。
これにiPhone Xでのフェイシャルキャプチャなどを加えたフル装備の姿も公開された。
VRヘッドセットをかぶっているので,フェイシャルキャプチャがあまり意味を成してない気はするが,これは(いまさらな気はするが)顔出しを少なくするためにかぶっていたとのことだった。実際にはVRヘッドセットを使わずにフェイシャルキャプチャを行っているそうだ。Viveトラッカーをつけた帽子をかぶれば,顔全体のキャプチャと同時にORIONでのモーションキャプチャも可能になるのだ。
また,iPhone Xを固定してあるカメラリグも海外から購入したものとのこと。「ハンズフリーカメラリグ」などで検索すれば日本のAmazonでもいくつかは似たようなものは出てくるので参考までに。
なお,デモで使われたツバキちゃんはマーケットプレイスで販売予定とのことなので,そちらも注目しておこう。