お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2014/03/22 17:00

イベント

[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定

画像集#002のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
 北米時間2014年3月20日,スイスのESRI(エスリ)はGame Developers Conference 2014(以下,GDC 2014)にて,同社が開発している都市景観生成ミドルウェア「CityEngine」に関するセッションを行った。

 CityEngineについては,2010年8月に掲載した「SIGGRAPH 2010」でのレポート記事で紹介したことがある。植物をフラクタルで生成するアイデアからヒントを得て作成された,街並みの3Dモデルを自動生成するミドルウェアで,以下に掲載した出力結果を見るだけでも,凄いエンジンであることが理解できるだろう。

映画やゲームでCityEngineが使用された例
画像集#003のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#004のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
画像集#005のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#006のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定

 しかし,これまでのCityEngineは,映像分野での採用例はあっても,ゲームでの採用例はほとんどなかったのだという。そこでGDC 2014に合わせて,CityEngineのSDKを発表し,ゲームでの採用をしやすくしてきたというわけだ。
 今回は,CityEngineを解説したセッションの概要をレポートしたい。説明を担当したのは,ESRIのディレクターであるPascal Mueller氏である。なお,今回のセッションは,CityEngineのツールとしての側面にフォーカスされており,アルゴリズムやエンジン部分の話はまったくなかったことを,あらかじめお断りしておく。

画像集#040のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
Pascal Mueller氏(Director,ESRI)
画像集#007のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
プロシージャル生成なら,作れば作るほどコスト削減になるとMueller氏は主張する

ゲームで使う都市のモデリングデータを作るために必要な作業を示したスライド
画像集#008のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#009のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#010のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定


手軽にリアルな街並みを作り出せるCityEngine


 会場では,ライブデモで実際にCityEngineを使って街並みを作る様子を披露していたのだが,見たところ,確かにとても簡単そうだ。基本的な操作は,地図上で範囲を指定してから,スタイルを定義するだけ。そうすると,指定範囲内を一定の規則で生成された街並みが埋め尽くすというわけだ。生成したデータをもとに,たとえば家の一軒一軒をカスタマイズしていくことも,非常に簡単にできる。

画像集#011のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#012のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
マップ上で範囲を指定すると(左),簡単に街並みが生成される(右)

 エディタ画面の右側を見ると,街の生成についてのパラメータがずらりと並んでいることが分かる。ここを適当に修正すると,出力される建物の種類を変更できる。

建物の高さを変更した例。左は低めで,右は高めに設定されている
画像集#013のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#014のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#015のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定

 エディタ上で空きエリアに適当な線を引くと,次の瞬間にはそれが道となり,続けて建物で埋め尽くされる。道を曲げれば,建物の形も追従して変わるといった具合だ。生成アルゴリズムが優秀なだけでなく,ツールの操作性もなかなかよさそうだ。

画像集#016のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#017のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
適当に線を引くとそれが道路になり(左),それに合わせて建物が生成される(右)

画像集#018のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#019のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
碁盤の目のように整然と並んだ道の一部を曲げてみると(左),建物の形も自動で追従して変化する(右)

OpenStreetMap.org
画像集#020のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
 線を引いていくだけで道ができ,街が作れるCityEngineだが,よりリアルな街を作るには,現実の世界をもとにしたデータを組み合わせるという手が使える。CityEngineの場合,フリーの地図制作プロジェクト「OpenStreetMap.org」のデータを利用できるそうだ。OpenStreetMap.orgは商用利用も可能なので,ゲームで使うにはもってこいといえよう。

 大まかに作成したデータに,後から植生を足したりして,よりリアルな風景に仕立て上げることも可能だ。Mueller氏の講演によれば,ファサード(壁面)用テクスチャとして,400カテゴリ分ものデータがCityEngineに追加されるとのことだった。
 また,E-on Softwareの景観作成ソフト「LumenRT」用に作られた植物のデータ約80種類も,CityEngineで使えるという。
 余談だが,ESRIとE-on Softwareはパートナーシップを結んでいる。植生を中心とした景観作成ソフト「Vue」を有するE-on Softwareと,CityEngineは相性がいいようだ。

画像集#021のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
建物の壁面に使えるテクスチャが400カテゴリも追加された
画像集#022のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
LumenRTの植物データを,CityEngineでも利用できる

スクリプトを作成すれば,街の生成ルールを自前で作成できる
画像集#023のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
 さて,CityEngineでは,街の自動作成に用いるスクリプトをユーザー自身が作成する機能がある。ESRIはこれを「エンコード」と呼んでいたが,スクリプトで独自のルールを作成すれば,個性的な街を作ることも可能になるのだ。スクリプト作成はそれなりに大変そうに思えるものの,ゲームではむしろ現実的でない街のほうが重要な場合もあるので,オリジナリティのある街並みを作るには,避けて通れない。ルールさえ決めれば巨大な都市を作成することも可能なので,スクリプト作成の労力は十分に報われるのではないだろうか。

スクリプトで指定できる要素の例
画像集#024のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#025のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
画像集#026のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#027のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定

 CityEngineで作成したデータは,FBX形式など,さまざまな形式でエクスポートできるし,データサイトにアップロードしてコミュニティ内で共有することもできる。さらに,投稿データをWebブラウザ上で,時間や季節などの条件を与えて3D表示させることも可能だ。「WebGL」を使っているので,対応Webブラウザが限られはするが,投稿データを手軽に見られて,操作性も優秀だ。
 登録データ数は,まだ多いとはいえないが,データの閲覧はユーザー登録も必要ないので,関心のある人は一度見てみるといいだろう。

公開されているデータをFirefox上で表示した様子
画像集#028のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定


SDKの登場でゲーム内にCityEngineを組み込めるように

Unityプラグインなら,生成した建物の中を移動も可能


画像集#029のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
 さて,GDC 2014でのホットトピックであるCityEngine SDKは,CityEngineのデータをゲームなどで使うための開発キットである。

 CityEngineのデータをゲームで使うには,2種類の方法が想定されている。1つめは,モデルデータとして出力し,ゲーム側で使用するという方法だ。この方法は従来から可能であり,別にSDKが必要というわけではない。

 それに対して,SDKの登場で可能となったのが,CityEngineのエンジン部分をそのままゲームに組み込んでしまって,ゲーム内で動的に都市生成を可能にするというものだ。

画像集#030のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#031のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
作成したデータを出力して,ゲームエンジン側で使う従来の手法(左)に加えて,SDKを使ってゲーム内にCityEngineを組み込む手法も可能になった(右)

CityEngine SDKの概要
画像集#032のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
 エンジン利用のライセンスはCityEngineに付属するとのこと。また,エンジン部分とは別に,「Maya」と「Unity」用のプラグインも提供されるそうだ。
 プラグインのデモも披露された。MayaやUnityの中でCityEngineのエディタを使っているかのように,都市モデルを調整できるのは,使い勝手がよさそうだ。とくにUnityでは,簡単な操作で街を出力して,そのままGame View内で街中を移動するといったことが簡単にできる。実行中にInspectorで,建物の仕様を変えることも可能だ。

画像集#033のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#034のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
Maya内で建物を生成した例。建物の高さを変えると,階数が自動的に変わる

画像集#035のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#036のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
Maya上で建物を拡大すれば,その大きさに合わせて生成される

画像集#037のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定 画像集#038のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
こちらはUnityでのデモ。建物各部の大きさを変えると,CityEngineのルールで建物が生成される

Unityで作成した建物の中を歩き回ることも可能だ
画像集#039のサムネイル/[GDC 2014]プロシージャル技術で街並みを作る「CityEngine」最新事情。ゲームに組み込めるSDKが登場し,Maya&Unity用プラグインも予定
 CityEngineは街を丸ごとごと一気に作れるだけでなく,建物のモデリングツールとしても優秀だ。ベースのエンジンが優秀なのは昔からのことだが,それをここまで簡単に扱えるようになると,ゲームでの応用事例も増えていきそうだ。触ってみたいと思った人は,30日間の体験版をダウンロードしてみてはいかがだろう。
 プロシージャル技術の活用は,ゲーム業界での課題でもある。樹木生成用ミドルウェアとして名高い「SpeedTree」と同じように,いずれはCityEngineも,ゲーム開発では必須のツールになっていくのかもしれない。

ESRI 日本語公式Webサイト

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:04月25日〜04月26日