>   >  時間とコストを超圧縮! Unreal Engineによるツール開発「Avator Generator」が可能にする機械学習の教師データ生成の高効率化
時間とコストを超圧縮! Unreal Engineによるツール開発「Avator Generator」が可能にする機械学習の教師データ生成の高効率化

時間とコストを超圧縮! Unreal Engineによるツール開発「Avator Generator」が可能にする機械学習の教師データ生成の高効率化

リアルタイムCGを用いたビジュアライゼーションのニーズは、エンタープライズ(非エンタメ)領域にも広がりをみせている。そこで、ゲームエンジンを用いたCGコンテンツ開発を精力的に手がけるCUROのシニアテクニカルアーティスト 田所伸一郎氏に、Unreal Engineによるエンタープライズ向けツール開発事例を紹介してもらった。

TEXT_田所伸一郎(CURO)
EDIT_沼倉有人 / Arihito Numakura(CGWORLD)、山田桃子 / Momoko Yamada

  • 田所伸一郎(CURO)
    株式会社CURO シニアテクニカルアーティスト。モデルやモーションなどアセット制作のリード業務を経てテクニカルアーティストに転身し、以降は各種アートアセットの制作やワークフロー整備、ツールやシェーダの開発、ルックや表現手法の提案などで多数のコンシューマタイトル開発やアプリケーション開発に関わる。現在はCUROの社員として、ゲーム開発やエンタープライズ案件の開発に従事しながら、CEDECへの登壇などによる情報発信も精力的に行う。UE使用歴は5年
    curo.co.jp

ゲーム開発のノウハウをエンタープライズ開発へ

品質管理や自動運転など、機械による自動処理が必要なあらゆる分野において、機械学習のための教師データや検証用画像へのニーズが高まっています。特に人物を対象とした実写での教師データの作成には、演者の雇用や撮影に要する時間など、多数のサンプルを得るには撮影に多大なコストがかかります。そういった問題をCGで解決しようという試みはこれまでもされてきましたが、人物モデルを多数作成し、それぞれに表情やポーズをつけてレンダリングするとなると、実際に演者を撮影するより工数がかかるケースもありました。Unreal Engine 4(以下、UE)などのゲームエンジンを利用した高速かつ高品位なプロシージャル画像生成は、そのようなニーズに合致する技術です。

今回紹介する「Avator Generator」(開発元:イグニス・イメージワークス、販売元:シリコンスタジオ)はまさにそのようなニーズに応えるために開発されたツールです。ゲーム開発においてはさほど珍しくもないアバター生成ですが、用途が教師データ生成である場合、目や鼻の位置を数値で出力するための機能など独自の実装が必要になります。とは言え、基本的なしくみはモーフィングやボーンによる変形、マテリアルによる質感制御など、ゲーム開発で馴染みのある手法を用いることがほとんどです。

また、30FPS(あるいは60FPS)を目標とするゲーム開発ほどには描画を最適化する必要はないものの、大量の教師データを生成するためには1つの画像の生成にそれほど時間はかけられないため、結局はゲーム用アセットと同等のアセット制限(ポリゴン数やテクスチャ解像度など)が必要です。つまり、ゲーム開発でアバターを作成した経験があれば、その技術は機械学習用教師データ生成の開発にも活かすことができます。

アバターだけではなく、例えば「物理シミュレーションを利用した部品のランダム配置」「プロシージャルテクスチャを利用した傷画像生成」など、ゲーム開発で培った多くの技術は、実際に多くの教師データ生成に活用されています。コンシューマゲーム業界には苦しい時代になったという話をよく聞きますが、ゲーム業界で身につけたモデル制作やプロシージャル技術、描画の知識などを品質管理や自動運転などの産業開発で発揮できるようになれば、クリエイターの市場価値が上がり、待遇の向上によるクリエイター人口の増加や教育の充実など期待できることも多く、結果的にあらゆる業界の活性化につながっていくのではと考えています。

<1>基本の3人

Avator Generatorの開発にあたり、まずは画像の3種類の人種を基準としました

▲モンゴロイド【上段左】をベースメッシュとし、コーカソイド【上段右】とネグロイド【下段】をモーフターゲットとして作成しています。テクスチャはカラーとノーマルを人種ごとに作成し、モーフィングと同時にマテリアルで線形補間しています。3種類の人種の特徴を線形補間することにより、マルチレイシャルの人物生成にも対応しています。モーフターゲット作成時のルールとして、「眼球の位置と、顎や首の関節の位置は固定」としています
All images rights reserved © Ignis Imageworks Corp.

<2>表情

表情は、目周辺、鼻周辺、口周辺に対し、それぞれ「微笑み」「怒り」のモーフターゲットを作成しています。モーフィングだけでは十分な見た目にならないため、表情ごと、部位ごとにノーマルマップを作成し、マテリアルでブレンドしています


  • ▲ノーマルマップなし


  • ▲ノーマルマップあり

All images rights reserved © Ignis Imageworks Corp.

<3>加齢の表現

加齢の表現は、モンゴロイドをベースにモーフターゲットとシワ用のノーマルマップを作成し、ブレンドしています。どの人種の場合でも同じモーフターゲットとノーマルマップをブレンドすることで加齢を表現しています。人種ごとに作成した方が精度の高い加齢表現ができると思いますが、Avator Generatorでは最小限のリソースで加齢を表現することで、加齢以外の表現にもバリエーションを出すことを優先しています

All images rights reserved © Ignis Imageworks Corp.

<4>目の特徴付け

目の特徴付けのために3種類のモーフターゲットを作成し、それぞれウェイト値を変えてブレンドすることでより多くのバリエーションに対応しています。モーフターゲットは皮膚だけではなく、まつ毛や涙のメッシュでも作成しています。さらに、まつ毛や涙のモーフターゲットは、目の特徴付け用だけでなく、人種や加齢の表現用にも作成しています。目の特徴付けにはモーフィングだけではなくボーンも使用し、併用しています。ボーン変形による特徴付けは、目の大きさ、高さ、左右の幅などです。瞳の色はマテリアルにより色相や明るさの変更に対応しています


  • ▲形状1


  • ▲形状2


  • ▲形状3


  • ▲形状4

All images rights reserved © Ignis Imageworks Corp.

<5>口の特徴

口の特徴付けも基本的には目や口と同様です。口の開閉のために入れている顎の関節を前後や左右に少しズラすことで、人間味のある口を表現できるようにしています



  • ▲形状1



  • ▲形状2

▲形状3

All images rights reserved © Ignis Imageworks Corp.



<6>眉の特徴

眉毛は3種類のマスクテクスチャと3種類のモーフターゲットの組み合わせで特徴付けを行なっています。眉毛は人物の特徴を強く印象付けるパーツですが、そこにもあまり多くのリソースを使わず、組み合わせでバリエーションを出すようにしています。モーフィングによる形状変化は他のパーツと同様にウェイトを変えてブレンドしているため、テクスチャとの掛け合わせで実際にはかなり多くのバリエーションを生み出せるようになっています



  • ▲テクスチャ1



  • ▲テクスチャ2



  • ▲テクスチャ3



  • ▲形状1



  • ▲形状2



  • ▲形状3

All images rights reserved © Ignis Imageworks Corp.



Avator Generatorの概要

Avator Generatorは人物の生成が基本的な機能です。生成した人物(以降、アバター)は多数のパラメータを備えており、それらのパラメータの変更によりあるゆる見た目のアバターをつくり出すことができます。変更可能なパラメータは、年齢や性別、目鼻口などのパーツの特徴、髪型、肌の色、メガネやマスクの有無など、50種類ほどあります。ユーザーはそれらのパラメータを任意の値に、あるいはランダムな値に変更する人で、ニーズにあった見た目の人物を生成することができます。生成したアバターは、任意のポーズや表情を取らせて、任意の背景アセット内に置いてライティングを施した上で撮影(レンダリング)したり、レンダリングした画像内の目や鼻や口などの特徴点の座標や、視線や首の向きなどを数値化してJSONやCSV、XMLなどの外部ファイルに書き出すことができます。

また、生成したアバターをフリーズしたメッシュデータとしてFBXで書き出すことができるため、MayaなどのDCCツールに読み込んでレンダリングしたり、別のゲームエンジンで利用するといったことも可能です。生成したアバターのパラメータは外部ファイルに書き出しと読み込みができるため、一度つくったアバターは別の機会に再現することができ、それらを複数用意しておくことでプリセットのように扱うこともできます。また、アバター自体のパラメータだけではなく、カメラやライトの設定、SkydomeとCubemapによる環境なども書き出しと読み込みが可能なので、撮影時の環境を再現することができ、それによって例えば同じ条件で別の人物を撮影したいなどのニーズにも応えることができます。

教師データや検証用画像の作成を目的としてAvator Generatorを利用する場合、多数のバリエーションの画像を生成する必要があります。そのため、