ニュース
[CEDEC 2014]開発支援から成功支援へ。ゲームエンジンを超える「Unity」の未来とは
Unityの次世代版となる「Unity 5」は,まだ正式リリースされていないのだが,すでにその先の展開についても,いろいろと動きがあるようだ。Unity自体の方向性も徐々に変わりつつある。
Unity Technologiesがなにを考えおり,これからどうしていくのかを大前氏の講演から確認しておこう。
講演では,次世代版Unity 5とその先に目指すものが語られた(左)。講演を担当したのは,ユニティ・テクノロジーズ・ジャパンの大前広樹氏(右) |
まずは,「パッチリリース」の話題からだ。最近のUnityは,大規模な仕様追加が多いためか,パッチのリリース間隔が長くなりがちだった。もちろんUnity Technologies内ではバグが逐次修正されているのだが,バージョンアップリリースの間隔が開いている影響を受けて,バグ修正の反映も遅れる傾向が続いていたそうだ。
そのため,それをなんとかしようと始まったのが,任意の時点で最新のバグ修正を盛り込んだビルドを毎週リリースするという,パッチリリースの取り組みだ。一般的なバージョンアップリリースとは異なるが,週単位で最新のパッチ適用版をダウンロードできるようになった。
この取り組みは,同社のGraham Dunnett氏が頑張って実現しているのだそうで,すでに15週間にわたって継続されているという。今後も続けられる見込みだ。
グラフィックス機能の強化:物理ベース&GIに対応
次はグラフィックス関連の話題だが,このあたりは「Unity 5 β2」を用いたハンズオン中心で進められた。内容を抜粋して,写真中心で紹介してみたい。
Unity 5での大きな変革のひとつに,レンダリングシステムの一新が挙げられる。物理ベースのライティングで描かれ,リアルタイムの大局照明(Global Illumination,GL)に対応するという今時(いまどき)の仕様だ。
そのオーサリングシステムとして取り入れられたレイトレーシングシステムなどの扱いやすさも革新的で,実際の操作でどのようになるのかが,デモで披露された。
上写真の状態から,背景を夕日に変更したところ。背景の色が影の部分に反映されているほか,屋根や壁の色も微妙に変化している |
背景球からの光の露出を下げたところ。IBLの影響がなくなって真っ暗になってしまった |
平行光線を加えて反射強度を上げると,地面の反射光で影の部分に照り返しが入る |
地面の色を変えると照り返しの色も変わる。ダイナミックなGIが行われている証明だ |
鏡面反射は,単にスペキュラーを指定しただけでは反映されない。リフレクションプローブを設定したうえで,オブジェクトを包み込むようなバウンディングボックスを作ってやると,囲んだ瞬間に内部のオブジェクトにスペキュラーが適用される感じだ。なお,シーン内にオブジェクトを追加するといった操作では,自動的にリクレクションマップが更新される |
Smoothnessの値を変えると,鏡面反射の強さが変化する様子も披露された |
ダイナミックライティングがエディタ上でもリアルタイムに実現されていることが分かるのだが,これをそのままゲームでも使うとなると,それなりのグラフィックス性能を持つマシンでなければつらそうだ。
ちなみに,Unity 5発表時に披露されたバージョンでは,光源やオブジェクトを動かすたびにノイズっぽいものが描画されていたが,それはなくなった。ライトマップの自動生成などもバックグラウンドで処理されるようになり,画面ではプログレスバーが伸びるだけとなっている。
このように,難しいことを考えなくてもいい感じの絵を表現できる物理ベースライティングとリアルタイムGIの効果には,素晴らしいものがある。だが,開発者側が自由にシェーダを拡張するのは難しくなるかもしれないと,懸念を抱く人がいるかもしれない。
大前氏はその懸念を否定し,すでに一部で公開されているβ版を使って,自動車の表現用にシェーダを拡張してみた例を紹介した。
大前氏が披露した自動車用シェーダのサンプル画像 |
「Carpaint」というそのシェーダでは,通常は素材ごとに設定されているRoughness(※表面の状態,Unity 5ではSmoothness)を,車体部分(金属部分)と塗装面のRoughnessで個別に設定できるうえに,塗装面の薄膜効果や金属光沢の調整,汚れの付き方,さらには凹凸部のアンビエントオクルージョン強度やラメ入り塗装の強度(?)なども,それぞれ設定できるようになっていた。
グラフィックス編の最後に紹介されたのは,人体のスキャンデータをUnity 5でレンダリングして,光源環境を変えて確認するようなデモだった。どんな光源でも,適切に見えるように処理してくれているのが分かる。
オーディオシステムの強化:ミキサー処理が可能に
これにより,トラック単位での処理やマスターボリューム操作など,一般的なゲームで使われそうな処理が,そのままUnity 5だけでできるようになるそうだ。
WebGL対応と「IL2CPP」
プラグインを使わずに直接Webブラウザ上で3Dグラフィックスアプリケーションを実行する規格「WebGL」にUnity 5が対応することは,2014年3月掲載の記事でもお伝えしているとおり。CEDECの講演では,これに関する新しい情報も公開された。
WebGLというのは,基本的にJavaScriptから使用するグラフィックスライブラリであり,もっぱらグラフィックス描画処理を担当するものだが,Unityから出力されたゲームはグラフィックスだけでなく,ゲームロジックもWebブラウザ上で実行できるという。簡単に言えば,ゲーム自体がJavaScriptに変換されているわけだ。
講演の中では,こうして変換されたゲームが,リアルタイムで問題なく動作する様子などが示された。
「Dead Trigger 2」をベースにしたWebGL対応ゲームのリアルタイムデモが披露された |
ゲームロジックをJavaScriptに変換してリアルタイムに動作させる鍵となっているのが,Unity Technologiesが開発した「IL2CPP」というツールだ。
現在のUnityは,C#(やJavaScriptなど)でソースコードを記述して,「IL」という中間コードにコンパイルしたうえで,「Mono」という.net Framework互換の実行環境上で動作させる仕組みになっている。アプリケーションの実行時にネイティブコード化するJust In-Time(JIT)コンパイル技術も使われているのだが,中間コードを介している分だけ,実行速度はネイティブコードで記述されたものに劣るという状況だという。
そこで,Unity Technologiesは長い時間をかけてIL2CPPを開発した。
これはもともと,中間コードとして出力されたILをC++のソースコードに変換して,各プラットフォームでそれぞれコンパイルすることで高速化しようというプロジェクトだったという。
ところが,そういうツールを開発していたところに,Webブラウザ「Firefox」の開発元であるMozillaが,高速簡易版JavaScriptである「asm.jp」を作ってしまったので,コンバータを作って一気にasm.jpに乗ってみた,ということのようだ。
Unity 5ではIL2CPPにより,ゲームをネイティブコードにコンパイルできるほか,WebGL用にも出力できる。C#で書かれたプログラムが中間言語ILを介してC++に変換されたうえで,さらにJavaScriptに変換されているわけだが,それでちゃんとゲームが実用的な速度で動くというのがすごい。
しかも,あろうことか,元のUnityでビルドしたプログラムよりも,Webブラウザ上のJavaScriptで動かしたほうが高速になるというミラクルな展開になっていると大前氏は述べる。とくにFirefox上での動作は図抜けて速いそうで,Mozilla製JITコンパイラの性能や恐るべしといったところか。
また,ランタイムを差し替えることになるため,これまではライセンスの問題でバージョンアップできなかった.NET FrameworkやC#を最新版にアップデートできるのではないかとも期待されていると,大前氏は説明していた。
フレームデバッガとマルチスレッドプロファイラ
Unity 5では新しいツールの導入によって,デバッグ環境が拡充される。
「フレームデバッガ」は,グラフィックス描画時のドローコール単位で,どんな処理が行われてどんな絵が描かれているか,それによってどれくらいの負荷がかかっているかを表示できるツールだ。レンダリングの流れを順に追って見ることができるので,動作の異常やとくに処理が重い部分などを簡単に切り分けられるようになりそうだ。
もう1つの「マルチスレッドプロファイラ」は,スレッド単位でコードの実行状況をチェックできるツールとなる。スマートフォンもマルチコアCPUが当たり前になってきた昨今では,その性能を引き出すためにこのツールが役立ちそうだ。
PhysXアップデートで実用的なクロース処理を実装
UnityでサポートされているNVIDIAの物理演算ライブラリ「PhysX」も,バージョンアップされる予定である。Version 2.8.3から3.3へのアップデートということなので,かなり大きな変更となりそうだ。従来比で倍くらいの性能向上が図られ,とくにクロース(布)の処理が強化されるという。
アップデート後には,従来2つに分かれていたクロース処理が1本化されて,ゲーム内の衣服で使えるようにすることを目指した実装になるとのこと。なお,既存のPhysXとは挙動が変わる部分も多いようなので,プロジェクトの移行には注意が必要になると,大前氏は警告していた。
そのほかにもUnity 5では,いろいろなアップデートが行われる予定である。全体的にかなりパワーアップされたゲームエンジンとなりそうだ。
ちなみに,新しいGUIはUnity 5からの導入ではなく,「Unity 4.6」からサポートされる予定だ,Unity 4.6はオープンβテストが行われているので,ユーザーは利用できる状況にある。正式リリースもまもなくとのことだ。
今後のUnityはどこに向かうのか
「Unityはどうなっていくのか?」という問いに対しては,「ゲームエンジン以上のものになる」という驚くべき答えが用意されていた。これまでのUnityは,ゲーム制作をサポートする存在だったわけだが,昨今ではゲームを開発したらそれで終わりというわけではなく,もっと先の展開まで狙える――あるいは狙う必要がある――ようになっている。
作ったゲームをどう告知するか,どう収益を上げるかなど,ゲームをリリースしてからも考え続けるべきことも多い。そういった部分までサポートしようというのが,Unityの新たな目標であるというわけだ。
ゲームエンジン本体以外にサポート範囲を広げつつあるUnityのサービスを,大前氏はいくつか紹介した。
「Unity Cloud Build」は,その名のとおり,Unityプロジェクトのビルドをクラウド上でできるようにするサービスだ。Webベースのインタフェースで管理されており,「GitHub」などとも連携が可能で,各プラットフォーム用にビルドすると,端末向けにダウンロードアドレスがメールで通知される仕組みだ。
たとえばiOSデバイスやAndroidデバイスの場合,受信したメールからインストールしてテスト実行ができるという。Webブラウザ用に出力すれば,実行ボタンでそのまま実行可能だ。
現在はオープンβテスト中だが,正式サービス時には無料の利用プランも用意される予定とのこと。
Webベースのプロジェクト管理画面。ここからビルドされたゲームをインストールしたり,共有したりできる(左)。Webブラウザ用に出力すれば,そのまま実行も可能だ |
「Unity Analytics」もWebベースの新サービスだ。ゲームを登録しておけば,開発者側では何もしなくても,ゲームのアクティブセッション数やユーザー推移,収益などを調べてくれる。
「Unity Ads」は,Unity Technologiesが買収した企業,Applifierがサービスしていたビデオ広告配信を取り込んだものだ(関連記事)。アプリにビデオ広告配信機能を持たせることで,アプリ開発者に広告料を還元するサービスである。有料広告だけでなく,開発者同士がバーターでお互いに宣伝しあうようなこともできるという。
このサービスは,すでにunityads.unity3d.comで利用可能となっていて,2014年は現時点で20億円以上の広告収入をゲーム制作者に還元しているという。ゲームの売り上げからライセンス料を徴収するゲームエンジンが多いなかで,「開発者に利益を還元する初めてのゲームエンジン」(大前氏)となっているそうだ。
ゲームに広告配信機能を組み込む代わりに,広告収入を開発者にも還元するというUnity Ads。すでに今年だけで20億円を還元したそうだ |
そのほかにも,Applifierの動画配信プラットフォーム「Everyplay」を使うプレイ動画配信機能を提供したり,Unity Technologies自体がゲームのパブリッシングを始めたりするなど,“ゲームを作ったあと”のアクションに対しても,多くのサービスを提供するように拡充しつつあることが,大前氏から説明された。
プレイ動画配信機能の導入(左)や,Unity採用ゲームの宣伝をUnityが行うなど(右),サービスを拡充しつつある |
また大前氏は,公式マスコットである「ユニティちゃん」の展開についても,いろいろ考えがあって進めていることであるという。キャラクター展開によってファンベースを共有すれば,ゼロからUnityやアプリケーションをアピールするよりも有利な展開が期待できるということらしい。そうしたプロモーションの面からもゲーム制作者を支援しているわけだ。
ユニティちゃんの展開も,ファンベースを共有するという狙いに基づいたものであるという |
このようにUnity Technologiesでは,今後ゲームエンジンの開発と提供だけでなく,それ以外の面でも開発者の支援を強化していくという。大前氏いわく,「Unityは開発支援から成功支援の方向に舵を切っていく」とのことだった。
ゲームを「作るサポート」から,開発者とユーザーを「つなげるサポート」へと,Unityのサービスは広がっていく(左)。それを大前氏は「開発支援から成功支援へ」と表現した |
Unity Technologiesが目指す方向性というのは分かったが,ゲームエンジンの将来像が出てこないことに,「ゲームエンジンビジネスには力を入れないのか」と不安に思う人がいるかもしれない。
大前氏は,それを否定したうえで,ゲームエンジン開発についても「倍プッシュ」で進められていると訴える。
1つめは,「コラボレーションの強化」だ。共同作業時のプレファブ(Prefab)やシーン管理が改良され,1つのプロジェクトを複数人で開発していても,コンフリクトが発生しにくくなるという。
マルチシーン編集のデモより。別々に作られたシーンA(左)とシーンB(右)を…… |
2つのシーンを混在させて表示したり(左),構成要素を一部入れ替えて,片方だけを表示したり(右)も可能になるという |
それらに加えて,ようやく日本語IMEの動作がまともになるとか,日本語エディタも作ってるよとか,最新のUnity 5β2では,パス名に日本語が入っていても大丈夫とか,日本語環境での不具合もどんどん修正されつつあるとのことだった。日本の開発者にとっては,少しホッとする話題ではないだろうか。
Unityの日本語対応がようやくまともになるらしい。「ようやくか!」と言いたい人もいるだろうが,改善が進められていることは歓迎したい。 |
Unity Technologies 日本語公式Webサイト
CEDEC 2014 公式Webページ
- 関連タイトル:
Unity
- この記事のURL: