イベント
シリコンスタジオが開発中の自動運転シミュレーション環境におけるUnreal Engine活用事例
本稿では,5月24日に行われたセッション「Unreal Engineによる自動運転シミュレーション環境の構築」の模様をレポートする。セッションのスピーカーを務めたのは,シリコンスタジオ 新規事業開発部 担当部長 向井亨光氏と,同 テクニカルアーティスト室 室長 河野駿介氏だ。
シリコンスタジオでは,さまざまな形でUnreal Engineを活用しており,セッションの冒頭ではいくつかの事例が紹介された。
最初に紹介されたシリコンスタジオ製のグローバルイルミネーション(GI)ミドルウェア「Enlighten」は,ゲームエンジンと組み合わせてリアルタイムかつ動的なGI,すなわち間接光表現を実現するミドルウェアだ。Unreal Engineも優れたGI機能を備えているが,Enlightenとは特徴が異なるため,ゲームやアプリによってはUnreal Engine+Enlightenの組み合わせが最適解になることもあるという。
同社が開発した「BENZaiTEN」は,3DCGを活用した画像認識における機械学習向け教師データ(学習データ)生成ソリューションだ。外観検査や運転支援,人物認識などさまざまな用途で,教師データをUnreal Engineによるハイクオリティなリアルタイムグラフィックスで実現できる。
こうしたシリコンスタジオの開発事例を応用して構築されたのが,セッションの本題となるUnreal Engineによる自動運転シミュレーション環境である。
今回,とくに背景アセットに関する説明が行われたが,同社が目指したのは「エディタ上でバリエーションを作る仕組み」とのこと。その理由は背景作成用の学習データには大量のバリエーションを必要とするため,もはや手動で作るには限界があるからだという。とくにバリエーションが必要になるのは,地面や建物,プロップ(配置物),時間帯・天候などだ。同じ路面を使っても,建物や天候などを変更すると景観はガラリと変わるので効果的である。
ただし,こうしたシミュレーション環境の背景作成には,高フレームレートの表示を実現するのは難しい面もある。それはバリエーションを求めるためにデータが大きくなり,各アセットの負荷が大きくなるからだ。とは言え,ゲームのように60fps,もしくは30fpsが求められるわけではないので,あくまでシーン作りのための環境と捉えているという。
また天候・時間帯の変更に関しては,Unreal Engine標準機能の集合体のようなブループリント(BP)を実装して実現したという。具体的には,Unreal EngineのSunSkyに月を追加するといった事例が紹介された。
カメラの露出は,天候を切り替えるときに露出補正の値を変えるという簡単な仕組みを採用している。これは,物理的に正しいライティングをすると,晴れと曇りでは太陽光の明るさが全然違うことを前提としているからだ。リアル環境においても,同じ明るさのランプなのに晴れより曇りのほうが明るく見えるといった現象が起きるが,そうしたシーン全体のライティングを踏まえた露出の調整が必要なのである。
なおUnreal Engineは自動露出機能を搭載しているが,再現性が求められる学習データの生成には不向きとのこと。
天候表現のうち,雨は,雨粒を表現するパーティクル,路面の濡れ具合,水たまりの波紋,クルマのガラス上の雨滴など複数の仕組みを組み合わせて表現する。とくに路面の濡れ具合のバリエーションを多く作るため,路面の端ほど水が溜まりやすくなるコントロールマップを用いたという。またガラスの雨滴を,シンプルに連番法線マップと屈折によって表現していることも示された。
雪も同様に,複数の仕組みを組み合わせて表現する。例えば積雪度合はディスプレイスメントマップ,轍などはコントロールマップでそれぞれ表現している。なお,建物の屋根や信号機の上部の積雪には後日対応予定とのこと。
マテリアルの経年劣化表現も盛り込まれており,講演では,白線を一例として説明していた。白線の劣化にはひび割れ,剥離などがあるが,コントロールマップを使って劣化度合いを変える仕組みになっているという。またワールド座標投影を使うことにより,同じアセットを並べても,隣同士が同じ劣化表現にならないようにしている。
機械学習の教師データにタグを付加する,つまりAIに対して正解データを用意するアノテーションには,社内で開発したプラグインを活用しているという。主な機能は,タグ付けとそれに伴う色の指定,表示切り替え,アノテーション情報各種の出力などである。
配置に関しても,まず白線が例として取りあげられた。白線は路面に合わせて引く必要があるが,実際の地形を再現すると微妙に曲がっていたり,車幅が変わっていたりすることもあり,形状の共通化が難しいという。そこで,アーティスト的な知識がなくとも編集できるようにすることも含めて,エディタ上でスプラインを用いて白線を引く仕組みを採用したそうだ。さらにマテリアルを組み合わせることで,破線や黄色線などにも対応できる。
建物も,白線同様にスプラインを用いて配置できる。また,建物には大都市型,地方都市型,住宅地型といった分類があり,同じスプラインで複数パターンの景観を切り替えられるとのこと。そうした景観の切り替えは,広範囲や区画単位のように範囲を変えることも可能だ。
河野氏によると,Unreal Engineによる自動運転シミュレーション環境は,今後も引き続き開発を続けていくとのこと。その進捗および成果についても,今回のセッションのような場で発表していきたいとのことだった。
「UNREAL FEST EXTREME 2022 SUMMER」公式サイト
- 関連タイトル:
Unreal Engine
- この記事のURL: