リアルアバターになってUnreal Engine4のバーチャル空間デビューしてみた
Unreal Engine 4(UE4)上のバーチャル空間で骨格検知などのコンピュータビジョンの実験を行う際に、リアルな人間の3Dモデルが必要になります。 できるだけリアルな人間の3Dモデルを、と探し求めた結果、リアルアバター株式会社さんが行われている、生身の人間の3Dモデル化(リアルアバター化)にたどり着きました。
本記事では、自分自身のリアルアバターをリアルアバター(株)さんで作成してもらい、作成された3DモデルをUE4に取り込んで動作確認を行うところまでをご紹介します。
リアルアバターの撮影
リアルアバター(株)さんのホームページにある撮影申し込みフォームから申し込みを行い、申し込んだ時に決定した撮影日時に浅草にあるリアルアバター(株)さんのスタジオを訪問します。スタジオは約束した時間に撮影がすぐ開始できるように準備されています。
撮影が終わったら、Sketchfabにアップロードされた3Dモデルを見せてもらい、仕上がりイメージを確認します。問題なさそうであれば、3Dモデルをファイルに書き出す時のポリゴン数を決定します。使用用途に応じた最適と思われるポリゴン数を提案してもらえるので、特別な理由がなければ提案どおりのポリゴン数で書き出してもらえばよいと思います。
撮影が終わり仕上がりイメージの確認が済んだら、支払いを済ませてスタジオを出ます。リアルアバター(株)さんの方で納品用の3Dモデルファイルの作成が開始されて、出来上がり次第メールでファイルが送付されます。
撮影の段取りの詳細については、リアルアバター(株)さんの公式サイトにわかりやすく紹介されています。
3Dモデルの受け取り
3Dモデルファイル一式はZIPファイルにまとめられてメールで送られてきます。 ZIPファイルを解凍すると以下のようなファイルが展開されます。
3Dモデル作成のみを行った場合に作成される.obj
ファイルとそのテクスチャーの.png
ファイルに加えて、
本記事執筆時は簡易リギング&VRMファイル作成もお願いしたので、.fbx
ファイル(リギング済み3Dモデル)と.vrm
ファイルも入っています。original
フォルダにはポリゴン数の調整等を行う前の状態の.obj
と.png
が入っています。
Mixamoでリアルアバター用のアニメーションを作成する
Mixamoを利用して、リアルアバターの3Dモデル用のアニメーションを作成してみます。
リアルアバターの.fbx
ファイルをMixamoにアップロードして、作成したいアニメーションを選択して「Download」をクリックするだけでリアルアバター用のアニメーションファイルをダウンロードできます。
1つ目のアニメーションをダウンロードする時には「with skin」オプションを選択して(デフォルトで選択済みのはずです)ダウンロードします。これによってダウンロードされる.fbx
にはアニメーションに加えてメッシュも含まれるようになります。2つ目以降のアニメーションをダウンロードする時は「without skin」オプションを選択して、アニメーションのみが含まれる.fbx
をダウンロードすればOKです。
以下の動画では、リアルアバターのFBXをMixamoにアップロードして、スキンありで1つ目のアニメーション("Reaction")をダウンロードしたのち、2つ目のアニメーション("Capoeira")をスキンなしでダウンロードしています。
Mixamoからのアニメーションのダウンロードについてはこちらも参考になるかもしれません。
UE4上で動作確認
Mixamoからダウンロードした2つのFBX("Reaction"と"Capoeira")を例に、UE4上でリアルアバターをアニメーションさせてみます。本記事執筆時のUE4のバージョンは4.20.3です。
テクスチャのインポート
コンテンツブラウザで、リアルアバターのPNGをテクスチャとしてインポートします。
インポートされたテクスチャを右クリックして、マテリアルを作成します。
このような感じで作成されます。
1つ目のアニメーション+メッシュのインポートとスケルトンの作成
最初に、スキンつきでダウンロードした1つ目のアニメーション("Reaction")のFBXをインポートします。
「Import Animations」にチェックを入れて、「Input Uniform Scale」は100に設定して「Import」をクリックします。
メッシュ・アニメーション・フィジクス・スケルトンのアセットがインポートされます。メッシュにテクスチャを設定するために、メッシュのアセットをダブルクリックして、メッシュエディターを開きます。
メッシュエディターが開いたら、マテリアルのスロットにリアルアバターのテクスチャのマテリアルを設定します。
設定画完了すると、メッシュにテクスチャが反映されます。マテリアルを設定し終えたらメッシュエディターを閉じます。
2つ目のアニメーションのインポート
次に、スキンなしでダウンロードした2つ目のアニメーション("Capoeira")のFBXをインポートします。
スケルトンには、スキンつきのFBXインポートしたときに作成されたものを指定します。「Input Uniform Scale」はまた100に設定して、「Import」をクリックします。
アニメーションアセットのみがインポートされます。
3Dモデルの配置とアニメーションの確認
リアルアバターの3Dモデルとアニメーションが一通りインポートできたので、レベルに配置して動作を確認します。コンテンツブラウザからリアルアバターのメッシュをレベルにドラッグして、ウィンドウの右端にある「Details」の「Animation Mode」を「Use Animation Blueprint」に設定してから、「Anim to Play」にインポートしたアニメーションを指定します。
モデルを配置してアニメーションを確認するところまでを動画にしました。
リアルアバターにいろんな動きをさせてみる
最後に、リアルアバターに無駄にいろんなアニメーションをさせてみました。 自分が一生することが無さそうな動きをリアルアバターが軽やかにやってのける様を眺めるのは不思議な感じです。
まとめ
リアルアバター(株)さんが提供する、生身の人間の3Dモデル「リアルアバター」の撮影から動作確認までをご紹介しました。 このリアルな人間(自分)の3Dモデルには、これからバーチャル空間上で行うコンピュータビジョンの実験でガッツリ働いてもらうことになりそうです。
おまけ: .objファイルでMixamoのオートリギングを試してみた
Mixamoには、アップロードされた.obj
ファイルにリギングを施す「オートリギング」という機能があります。
リアルアバター(株)さんから受けとったファイル一式に3Dモデルの.obj
ファイルも含まれていますので、
この.obj
ファイルでオートリギングを試してみました。
見様見真似でやってみましたが、手首の関節など、あまりキレイにリギングできませんでした。 リギングをキレイにできる自信の無い方は、すなおにリアルアバター(株)さんに簡易リギングしてもらったほうが良さそうです。
オートリギングを利用する際の注意点
Mixamoで.obj
をオートリギングして作った.fbx
と、リアルアバター(株)さんに作ってもらった.fbx
をアップロードして作った.fbx
とでは、スケルトンの構造が異なる部分があるようで、どちらか片方の.fbx
用に作成したアニメーションを、もう片方の.fbx
に単純に設定することはできませんでした(スケルトン構造の再マッピングが必要でした)。