[CEDEC 2016]カーナビ開発にはゲームエンジンを活用する時代
ゲームエンジンがゲーム開発目的以外に応用されていることを知っている人は多いと思う。
グラフィックスやサウンド,各種シミュレーション,AI。そして,高度なアルゴリズムを構築できるノードベースのビジュアルプログラミング機能など,さまざまなテーマを総括的に,なおかつ容易に扱えるゲームエンジンは,ある種,アプリケーション開発プラットフォームの究極形と言えるかもしれない。
最近では,ゲームではないCGアニメーションなどの映像制作にゲームエンジンを活用する事例も多数出てきているが,CEDEC 2016では,また別の活用に関する話題が出てきた。それが,本稿で紹介するセッション「車載インフォテイメントUIのアジャイル開発とゲームエンジン活用」だ。
このセッションで登壇したのは,さまざまな自動車パーツを開発している自動車パーツサプライヤーの最大手,デンソーで,カーナビゲーション(以下,カーナビ)などソフトウェア部門に所属する,細川健児氏である。
自動車業界では,カーナビというか,車載情報端末的な機能を「IVI」と呼んでいる。
IVIは「In-Vehicle Infotainment」(インヴィークル インフォテインメント)の略で,「In-Vehicle」は車載,Infotainmentは情報(Information)と娯楽(Entertainment)を組み合わせた造語。カーナビはいまや,道路や周辺情報を提供する車載コンピュータであると同時に,音楽や映像の再生などにも対応した「娯楽を提供する装置」でもあることから,こういう呼び名が定着しているわけだ。
さて,デンソーではこれまで,10年以上の歴史を持つ内製ツールでIVI向けユーザーインタフェース(以下,UI)を開発してきたそうだ。そしてこの開発においては,開発途上版を顧客(=クライアント)である自動車メーカーに見せて評価してもらい,それに基づいて開発を進めるサイクルは,半年単位だったという。
この状況を改善していこうと考えた細川氏は,3年前に初めてCEDECに参加したとのこと。そこで,スピード感あるゲーム開発の文化に驚かされたのだそうだ。
IVIの開発プラットフォーム(≒ハードウェア)は,その時代のスマートフォンやゲーム機と比べると性能がかなり低い。それでいて,搭載予定の機能は多く,動作検証の時間もきっちり取る必要があるため,その開発期間は長くなりがちである。細川氏によると,5年くらい掛かる場合も多いという。
結果,最終製品が登場したときには,デザインや機能の流行が変わってしまっている場合がある。そこで,内製した開発環境の利用をやめて,ゲームエンジンをIVIの開発に使うことで,よりスピード感のある開発スタイルに移行してこうという挑戦が,デンソー内で始まったのだ。
挑戦に当たって,細川氏らのチームが当面の目標として掲げたのは,これまでは半年単位だった自動車メーカーとの評価サイクルを3週間単位にするというものだった。この3週間という日数は,クライアントである自動車メーカーとデンソー側の都合から設定されたものだそうで,深い理由はないらしいが,圧倒的に短くなっているのは確かである。
ゲームエンジンを導入するにあたっては,デンソー側の開発体制(=チーム構成)を変革する必要があった。
というのも,デンソーが持っていた過去のIVI開発体制を引き継いでいた関係で,UI――自動車業界ではUIのことを「HMI」(Human Machine Interface)と呼ぶが,本稿ではUIと表記する――の開発チームと,機能そのものの実装チームが,水平分業的に分断されていたからだ。細川氏は「これをまずは何とかしたい」と考えた。
具体的には,UI開発と機能実装の全チームを垂直統合し,「ある機能を開発するチームは,その機能のUIも開発する」よう,チームを再編することにしたのだ。
ここまできて,やっと「どんなゲームエンジンを導入するか」の検討フェーズに入れるのだが,そこにはデンソーならではの条件がいくつかあったようだ。
1つ,自動車で採用するには,動作の信頼性が高くなければならず,言い換えれば十分に枯れた技術であることが求められる。裏を返せば,歴史のないエンジンは使えないということだ。
そして2つめは,前述したようにIVIのハードウェアはスペックが高くないため,高いプロセッサ性能を要求するものは選択できないというものである。
そこで,最終的に選んだのが,「Flash」の実質的な後継である「Adobe AIR」だ。実質的には,グラフィックスエンジンとして「Stage3D」を活用するアプローチということになる。
ただし,現状のデンソーが開発を手がけるIVIでは,3Dグラフィックス機能の積極活用は避け,2Dベースのゲーム開発フレームワークである「Starling」を利用することにした。Starlingには,2DのUI開発コンポーネント「Feathers」あるので,UI設計にはこのFeathersを活用したそうだ。
ゲームエンジンの採用決定後は,いきなり本番の開発に挑戦するとなると不安要素が多いため,最初は練習開発に取り組んだという。
細川氏が「素振り」と称した,その練習開発に選んだテーマは「ハンズフリー通話」だったそうだ。
ハンズフリー通話だと,着信のお知らせグラフィックス表示や応答ボタン操作の評価を行えるだけでなく,無線の送受機能も評価できる。「そこそこ複雑」で「そこそこ手軽」,なおかつテストもしやすいということで都合がよかったのだとか。
かくして,その練習開発はうまくいったが,これを経たことで同時に課題も見えてきたと,細川氏は振り返る。
具体的には,ゲームエンジンの汎用性が高すぎて,IVI開発にあたって「機能をどう使っていいか」がエンジニアから分かりにくいというものだった。
そこで開発チームは,ゲームエンジンとIVI機能モジュール(=アプリ)との間の中間層に,オリジナルのUI(HMI)開発用のライブラリ「HMIフレームワーク」を開発・導入して,開発難度を下げることにした。
そうすることで,IVIの各機能はゲームエンジンベースで動作することになる一方,開発時はUI(HMI)ライブラリを使うだけで済むようになる。これなら,ゲームエンジン上での開発に慣れていないエンジニアも開発しやすいというわけである。
ただ,ここでも新たな問題が浮上する。
開発に便利なHMIフレームワークだが,今度は,その機能拡充につれて規模が肥大化し,その使い方が分かりにくくなってしまったのだという。
その問題への対策としては,HMIフレームワークのチュートリアルやサンプルコード,説明書などをまとめた「HMIコンシェルジュ」をチーム内で共有できるようにした。さらに,このHMIフレームワークのメンテナンス要員として社外から技術コンサルタントをチームに参加させたそうだ。
細川氏は,最終的にゲームエンジンを活用して完成したIVIの機能の事例を紹介したのだが,そのグラフィックス自体は撮影禁止だったので,残念ながらここで紹介することはできていない。
ゲームエンジン採用前の従来版は撮影OKだったので,下にその写真を示すが,正直,静止画として見た場合は,ゲームエンジン採用版でも大差はなかった。
ただ,グラフィックス描画にGPUを活用するため,その性能はゲームエンジン採用版で一気に向上している。具体的には,フレームレートが従来は6fps程度だったものが,ゲームエンジン版は30fpsに劇的に向上しているというからすごい。
細川氏によれば,現在は当初の目的だった「3週間サイクルの評価」が行えるようになり,開発レベルも向上し,満足度,納得度の高い開発ができるようになっているそうだ。
セッションタイトルに「ゲームエンジン」という文字があったので,筆者はてっきり,「Unity」か「Unreal Engine」でも流用したのかと思ったが,そうではなかった。
ただそれは,そうしたゲームエンジンを動作させられるハードウェア性能が,現在のIVIハードウェア側になかったという話である。これから数年して,IVIのハードウェアの性能も向上すると,今度はいま主流となっているゲームエンジンの活用が始まるかもしれない。
グラフィックスやサウンド,各種シミュレーション,AI。そして,高度なアルゴリズムを構築できるノードベースのビジュアルプログラミング機能など,さまざまなテーマを総括的に,なおかつ容易に扱えるゲームエンジンは,ある種,アプリケーション開発プラットフォームの究極形と言えるかもしれない。
ゲーム開発のスピード感をカーナビの開発にもたらす
自動車業界では,カーナビというか,車載情報端末的な機能を「IVI」と呼んでいる。
IVIは「In-Vehicle Infotainment」(インヴィークル インフォテインメント)の略で,「In-Vehicle」は車載,Infotainmentは情報(Information)と娯楽(Entertainment)を組み合わせた造語。カーナビはいまや,道路や周辺情報を提供する車載コンピュータであると同時に,音楽や映像の再生などにも対応した「娯楽を提供する装置」でもあることから,こういう呼び名が定着しているわけだ。
この状況を改善していこうと考えた細川氏は,3年前に初めてCEDECに参加したとのこと。そこで,スピード感あるゲーム開発の文化に驚かされたのだそうだ。
IVIの開発プラットフォーム(≒ハードウェア)は,その時代のスマートフォンやゲーム機と比べると性能がかなり低い。それでいて,搭載予定の機能は多く,動作検証の時間もきっちり取る必要があるため,その開発期間は長くなりがちである。細川氏によると,5年くらい掛かる場合も多いという。
結果,最終製品が登場したときには,デザインや機能の流行が変わってしまっている場合がある。そこで,内製した開発環境の利用をやめて,ゲームエンジンをIVIの開発に使うことで,よりスピード感のある開発スタイルに移行してこうという挑戦が,デンソー内で始まったのだ。
IVIの開発期間は長くなりがち。5年掛かることも |
搭載機能数は多いのにハードウェア性能は低いのがIVI |
採用したゲームエンジンは「Adobe AIR」!?
ゲームエンジンを導入するにあたっては,デンソー側の開発体制(=チーム構成)を変革する必要があった。
というのも,デンソーが持っていた過去のIVI開発体制を引き継いでいた関係で,UI――自動車業界ではUIのことを「HMI」(Human Machine Interface)と呼ぶが,本稿ではUIと表記する――の開発チームと,機能そのものの実装チームが,水平分業的に分断されていたからだ。細川氏は「これをまずは何とかしたい」と考えた。
具体的には,UI開発と機能実装の全チームを垂直統合し,「ある機能を開発するチームは,その機能のUIも開発する」よう,チームを再編することにしたのだ。
1つ,自動車で採用するには,動作の信頼性が高くなければならず,言い換えれば十分に枯れた技術であることが求められる。裏を返せば,歴史のないエンジンは使えないということだ。
そして2つめは,前述したようにIVIのハードウェアはスペックが高くないため,高いプロセッサ性能を要求するものは選択できないというものである。
そこで,最終的に選んだのが,「Flash」の実質的な後継である「Adobe AIR」だ。実質的には,グラフィックスエンジンとして「Stage3D」を活用するアプローチということになる。
ただし,現状のデンソーが開発を手がけるIVIでは,3Dグラフィックス機能の積極活用は避け,2Dベースのゲーム開発フレームワークである「Starling」を利用することにした。Starlingには,2DのUI開発コンポーネント「Feathers」あるので,UI設計にはこのFeathersを活用したそうだ。
ゲームエンジンの採用決定後は,いきなり本番の開発に挑戦するとなると不安要素が多いため,最初は練習開発に取り組んだという。
細川氏が「素振り」と称した,その練習開発に選んだテーマは「ハンズフリー通話」だったそうだ。
ハンズフリー通話だと,着信のお知らせグラフィックス表示や応答ボタン操作の評価を行えるだけでなく,無線の送受機能も評価できる。「そこそこ複雑」で「そこそこ手軽」,なおかつテストもしやすいということで都合がよかったのだとか。
かくして,その練習開発はうまくいったが,これを経たことで同時に課題も見えてきたと,細川氏は振り返る。
具体的には,ゲームエンジンの汎用性が高すぎて,IVI開発にあたって「機能をどう使っていいか」がエンジニアから分かりにくいというものだった。
そこで開発チームは,ゲームエンジンとIVI機能モジュール(=アプリ)との間の中間層に,オリジナルのUI(HMI)開発用のライブラリ「HMIフレームワーク」を開発・導入して,開発難度を下げることにした。
そうすることで,IVIの各機能はゲームエンジンベースで動作することになる一方,開発時はUI(HMI)ライブラリを使うだけで済むようになる。これなら,ゲームエンジン上での開発に慣れていないエンジニアも開発しやすいというわけである。
ただ,ここでも新たな問題が浮上する。
開発に便利なHMIフレームワークだが,今度は,その機能拡充につれて規模が肥大化し,その使い方が分かりにくくなってしまったのだという。
その問題への対策としては,HMIフレームワークのチュートリアルやサンプルコード,説明書などをまとめた「HMIコンシェルジュ」をチーム内で共有できるようにした。さらに,このHMIフレームワークのメンテナンス要員として社外から技術コンサルタントをチームに参加させたそうだ。
ゲームエンジン導入の効果はいかほど?
細川氏は,最終的にゲームエンジンを活用して完成したIVIの機能の事例を紹介したのだが,そのグラフィックス自体は撮影禁止だったので,残念ながらここで紹介することはできていない。
ゲームエンジン採用前の従来版は撮影OKだったので,下にその写真を示すが,正直,静止画として見た場合は,ゲームエンジン採用版でも大差はなかった。
ただ,グラフィックス描画にGPUを活用するため,その性能はゲームエンジン採用版で一気に向上している。具体的には,フレームレートが従来は6fps程度だったものが,ゲームエンジン版は30fpsに劇的に向上しているというからすごい。
細川氏によれば,現在は当初の目的だった「3週間サイクルの評価」が行えるようになり,開発レベルも向上し,満足度,納得度の高い開発ができるようになっているそうだ。
セッションタイトルに「ゲームエンジン」という文字があったので,筆者はてっきり,「Unity」か「Unreal Engine」でも流用したのかと思ったが,そうではなかった。
ただそれは,そうしたゲームエンジンを動作させられるハードウェア性能が,現在のIVIハードウェア側になかったという話である。これから数年して,IVIのハードウェアの性能も向上すると,今度はいま主流となっているゲームエンジンの活用が始まるかもしれない。