オススメ機能
Twitter
お気に入り
記事履歴
ランキング
お気に入りタイトル/ワード

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

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

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

LINEで4Gamerアカウントを登録
[CEDEC 2014]開発支援から成功支援へ。ゲームエンジンを超える「Unity」の未来とは
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2014/09/05 18:05

ニュース

[CEDEC 2014]開発支援から成功支援へ。ゲームエンジンを超える「Unity」の未来とは

 2014年9月2日,Unity Technologiesの日本法人であるユニティ・テクノロジーズ・ジャパンは,「CEDEC 2014」にて「Unity 5からその先の話」と題する講演を行った。講演を担当したのは,同社の大前広樹氏である。
 Unityの次世代版となる「Unity 5」は,まだ正式リリースされていないのだが,すでにその先の展開についても,いろいろと動きがあるようだ。Unity自体の方向性も徐々に変わりつつある。
 Unity Technologiesがなにを考えおり,これからどうしていくのかを大前氏の講演から確認しておこう。

Unity
講演では,次世代版Unity 5とその先に目指すものが語られた(左)。講演を担当したのは,ユニティ・テクノロジーズ・ジャパンの大前広樹氏(右)

 まずは,「パッチリリース」の話題からだ。最近のUnityは,大規模な仕様追加が多いためか,パッチのリリース間隔が長くなりがちだった。もちろんUnity Technologies内ではバグが逐次修正されているのだが,バージョンアップリリースの間隔が開いている影響を受けて,バグ修正の反映も遅れる傾向が続いていたそうだ。

 そのため,それをなんとかしようと始まったのが,任意の時点で最新のバグ修正を盛り込んだビルドを毎週リリースするという,パッチリリースの取り組みだ。一般的なバージョンアップリリースとは異なるが,週単位で最新のパッチ適用版をダウンロードできるようになった。
 この取り組みは,同社のGraham Dunnett氏が頑張って実現しているのだそうで,すでに15週間にわたって継続されているという。今後も続けられる見込みだ。

バグ修正の反映されたビルドを毎週提供するパッチリリースは,15週間に渡って続いているという
Unity


グラフィックス機能の強化:物理ベース&GIに対応


 次はグラフィックス関連の話題だが,このあたりは「Unity 5 β2」を用いたハンズオン中心で進められた。内容を抜粋して,写真中心で紹介してみたい。

Unity 5のエディタ画面。デフォルトで背景に青空がついた
Unity

 Unity 5での大きな変革のひとつに,レンダリングシステムの一新が挙げられる。物理ベースのライティングで描かれ,リアルタイムの大局照明(Global Illumination,GL)に対応するという今時(いまどき)の仕様だ。
 そのオーサリングシステムとして取り入れられたレイトレーシングシステムなどの扱いやすさも革新的で,実際の操作でどのようになるのかが,デモで披露された。

オブジェクトを配置してみたところ。とくに操作はしていないが,建物の影が青っぽくなっていて,Image Based Lighting(IBL)が行われていることが分かる
Unity

Unity
上写真の状態から,背景を夕日に変更したところ。背景の色が影の部分に反映されているほか,屋根や壁の色も微妙に変化している
Unity
背景球からの光の露出を下げたところ。IBLの影響がなくなって真っ暗になってしまった

Unity Unity
平行光線を加えて反射強度を上げると,地面の反射光で影の部分に照り返しが入る

こちらは,新しい素材を作って地面に設定し,ディフューズカラーを赤くしたところ
Unity

Unity Unity
地面の色を変えると照り返しの色も変わる。ダイナミックなGIが行われている証明だ

Unity Unity
鏡面反射は,単にスペキュラーを指定しただけでは反映されない。リフレクションプローブを設定したうえで,オブジェクトを包み込むようなバウンディングボックスを作ってやると,囲んだ瞬間に内部のオブジェクトにスペキュラーが適用される感じだ。なお,シーン内にオブジェクトを追加するといった操作では,自動的にリクレクションマップが更新される

Unity Unity
Smoothnessの値を変えると,鏡面反射の強さが変化する様子も披露された

リフレクションマップ画像を適当に指定したところ
Unity

 ダイナミックライティングがエディタ上でもリアルタイムに実現されていることが分かるのだが,これをそのままゲームでも使うとなると,それなりのグラフィックス性能を持つマシンでなければつらそうだ。
Lightmappingの設定を「Static GI」に変えるだけで,動的なGIから静的なGIに切り替えられる
Unity
 そうなると,少し古いスマートフォンのように非力な環境では,こういったグラフィックス要素の強化による恩恵を得られないのかというと,大前氏は「そうでもない」という。従来のライトマップとほぼ同等の表現にはなるが,ダイナミックライティングではなく静的(スタティック)なGIも使えるのだ。使い方も簡単で,単にLightの設定にある「Lightmapping」のリストボックスから,「Static GI」を選ぶだけでいい。

右下に出ている青いプログレスバーが,ライトマップの更新状況を示している
Unity
 従来型のライトマップとはいうものの,編集中はその違いをあまり意識することはないかもしれない。オブジェクトやライトの配置を変えると自動的にライトマップを更新してくれるからだ。
 ちなみに,Unity 5発表時に披露されたバージョンでは,光源やオブジェクトを動かすたびにノイズっぽいものが描画されていたが,それはなくなった。ライトマップの自動生成などもバックグラウンドで処理されるようになり,画面ではプログレスバーが伸びるだけとなっている。

とはいえ,静的ライトマップなので,シーンに新しいオブジェクトを追加しても自動では影が出ない(左)。オブジェクトの周りにライトプローブを追加してやると(中央),影が表示されるようになる(右)
Unity Unity Unity

メニューからライトプローブを追加すると,複数個が結合された状態で提示されるので,あまり難しいことを考えなくてもいいのは楽だ
Unity

 このように,難しいことを考えなくてもいい感じの絵を表現できる物理ベースライティングとリアルタイムGIの効果には,素晴らしいものがある。だが,開発者側が自由にシェーダを拡張するのは難しくなるかもしれないと,懸念を抱く人がいるかもしれない。
 大前氏はその懸念を否定し,すでに一部で公開されているβ版を使って,自動車の表現用にシェーダを拡張してみた例を紹介した。

Unity Unity
大前氏が披露した自動車用シェーダのサンプル画像

 「Carpaint」というそのシェーダでは,通常は素材ごとに設定されているRoughness(※表面の状態,Unity 5ではSmoothness)を,車体部分(金属部分)と塗装面のRoughnessで個別に設定できるうえに,塗装面の薄膜効果や金属光沢の調整,汚れの付き方,さらには凹凸部のアンビエントオクルージョン強度やラメ入り塗装の強度(?)なども,それぞれ設定できるようになっていた。

左は薄膜効果の,右はラメ入り塗装の例
Unity Unity

 グラフィックス編の最後に紹介されたのは,人体のスキャンデータをUnity 5でレンダリングして,光源環境を変えて確認するようなデモだった。どんな光源でも,適切に見えるように処理してくれているのが分かる。

光源環境を変えて人物をレンダリングするデモの例。どれも自然な感じで表現できている
Unity Unity
Unity Unity


オーディオシステムの強化:ミキサー処理が可能に


ミキサー機能が導入されるオーディオシステムの画面
Unity
 デモは省略されたが,サウンドに関する改良点も説明された。Unity 5では,サウンドソースに対してサウンドリスナーを設定し,サウンドソース単位でエフェクトをかけるなどしかできなかった従来の処理が一新され,ミキサー処理が追加された。
 これにより,トラック単位での処理やマスターボリューム操作など,一般的なゲームで使われそうな処理が,そのままUnity 5だけでできるようになるそうだ。


WebGL対応と「IL2CPP」


 プラグインを使わずに直接Webブラウザ上で3Dグラフィックスアプリケーションを実行する規格「WebGL」にUnity 5が対応することは,2014年3月掲載の記事でもお伝えしているとおり。CEDECの講演では,これに関する新しい情報も公開された。
 WebGLというのは,基本的にJavaScriptから使用するグラフィックスライブラリであり,もっぱらグラフィックス描画処理を担当するものだが,Unityから出力されたゲームはグラフィックスだけでなく,ゲームロジックもWebブラウザ上で実行できるという。簡単に言えば,ゲーム自体がJavaScriptに変換されているわけだ。
 講演の中では,こうして変換されたゲームが,リアルタイムで問題なく動作する様子などが示された。

Unity Unity
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コンパイラの性能や恐るべしといったところか。

マンデルブロ集合の演算プログラムでの速度比較。左から順に,従来のUnityでの実行時間(32bit/64bit),IL2CPPでネイティブコンパイルしたコードでの実行時間(32bit/64bit),JavaScriptに変換した場合の実行時間(FireFox,Chrome,Safari),同等のコードを最初からC++で書いた場合の実行時間となっている
Unity

 また,ランタイムを差し替えることになるため,これまではライセンスの問題でバージョンアップできなかった.NET FrameworkやC#を最新版にアップデートできるのではないかとも期待されていると,大前氏は説明していた。

ランタイムをIL2CPPに切り替えることで,.NET FrameworkやC#のアップグレードも可能になる……かも
Unity


フレームデバッガとマルチスレッドプロファイラ


 Unity 5では新しいツールの導入によって,デバッグ環境が拡充される。
 「フレームデバッガ」は,グラフィックス描画時のドローコール単位で,どんな処理が行われてどんな絵が描かれているか,それによってどれくらいの負荷がかかっているかを表示できるツールだ。レンダリングの流れを順に追って見ることができるので,動作の異常やとくに処理が重い部分などを簡単に切り分けられるようになりそうだ。

フレームデバッガの画面。写真の左上側がドローコールの一覧で,描画部分はその右に,その段階での描画結果は下に表示されている
Unity

 もう1つの「マルチスレッドプロファイラ」は,スレッド単位でコードの実行状況をチェックできるツールとなる。スマートフォンもマルチコアCPUが当たり前になってきた昨今では,その性能を引き出すためにこのツールが役立ちそうだ。

マルチスレッドプロファイラを使って,物理演算でのマルチスレッド化の状態を確認しているデモ
Unity


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 5についての紹介が終わると,大前氏はより大きな話題として,Unity Technologiesがどこへ向かっていくのかという話を披露した。
 「Unityはどうなっていくのか?」という問いに対しては,「ゲームエンジン以上のものになる」という驚くべき答えが用意されていた。これまでのUnityは,ゲーム制作をサポートする存在だったわけだが,昨今ではゲームを開発したらそれで終わりというわけではなく,もっと先の展開まで狙える――あるいは狙う必要がある――ようになっている。
 作ったゲームをどう告知するか,どう収益を上げるかなど,ゲームをリリースしてからも考え続けるべきことも多い。そういった部分までサポートしようというのが,Unityの新たな目標であるというわけだ。

開発だけでなく,広告宣伝やマネタイズといった分野もUnityはフォローしていこうとしている
Unity

 ゲームエンジン本体以外にサポート範囲を広げつつあるUnityのサービスを,大前氏はいくつか紹介した。

 「Unity Cloud Build」は,その名のとおり,Unityプロジェクトのビルドをクラウド上でできるようにするサービスだ。Webベースのインタフェースで管理されており,「GitHub」などとも連携が可能で,各プラットフォーム用にビルドすると,端末向けにダウンロードアドレスがメールで通知される仕組みだ。

Unity Cloud Buildの仕組みを説明したスライド
Unity

 たとえばiOSデバイスやAndroidデバイスの場合,受信したメールからインストールしてテスト実行ができるという。Webブラウザ用に出力すれば,実行ボタンでそのまま実行可能だ。
 現在はオープンβテスト中だが,正式サービス時には無料の利用プランも用意される予定とのこと。

Unity Unity
Webベースのプロジェクト管理画面。ここからビルドされたゲームをインストールしたり,共有したりできる(左)。Webブラウザ用に出力すれば,そのまま実行も可能だ

 「Unity Analytics」もWebベースの新サービスだ。ゲームを登録しておけば,開発者側では何もしなくても,ゲームのアクティブセッション数やユーザー推移,収益などを調べてくれる。

Unity Analyticsは,Unityで制作したゲームがどのように利用されているかを分析するサービスとなる
Unity

 「Unity Ads」は,Unity Technologiesが買収した企業,Applifierがサービスしていたビデオ広告配信を取り込んだものだ(関連記事)。アプリにビデオ広告配信機能を持たせることで,アプリ開発者に広告料を還元するサービスである。有料広告だけでなく,開発者同士がバーターでお互いに宣伝しあうようなこともできるという。
 このサービスは,すでにunityads.unity3d.comで利用可能となっていて,2014年は現時点で20億円以上の広告収入をゲーム制作者に還元しているという。ゲームの売り上げからライセンス料を徴収するゲームエンジンが多いなかで,「開発者に利益を還元する初めてのゲームエンジン」(大前氏)となっているそうだ。

Unity Unity
ゲームに広告配信機能を組み込む代わりに,広告収入を開発者にも還元するというUnity Ads。すでに今年だけで20億円を還元したそうだ

 そのほかにも,Applifierの動画配信プラットフォーム「Everyplay」を使うプレイ動画配信機能を提供したり,Unity Technologies自体がゲームのパブリッシングを始めたりするなど,“ゲームを作ったあと”のアクションに対しても,多くのサービスを提供するように拡充しつつあることが,大前氏から説明された。

Unity Unity
プレイ動画配信機能の導入(左)や,Unity採用ゲームの宣伝をUnityが行うなど(右),サービスを拡充しつつある

 また大前氏は,公式マスコットである「ユニティちゃん」の展開についても,いろいろ考えがあって進めていることであるという。キャラクター展開によってファンベースを共有すれば,ゼロからUnityやアプリケーションをアピールするよりも有利な展開が期待できるということらしい。そうしたプロモーションの面からもゲーム制作者を支援しているわけだ。

Unity Unity
ユニティちゃんの展開も,ファンベースを共有するという狙いに基づいたものであるという

 このようにUnity Technologiesでは,今後ゲームエンジンの開発と提供だけでなく,それ以外の面でも開発者の支援を強化していくという。大前氏いわく,「Unityは開発支援から成功支援の方向に舵を切っていく」とのことだった。

Unity Unity
ゲームを「作るサポート」から,開発者とユーザーを「つなげるサポート」へと,Unityのサービスは広がっていく(左)。それを大前氏は「開発支援から成功支援へ」と表現した

 Unity Technologiesが目指す方向性というのは分かったが,ゲームエンジンの将来像が出てこないことに,「ゲームエンジンビジネスには力を入れないのか」と不安に思う人がいるかもしれない。
 大前氏は,それを否定したうえで,ゲームエンジン開発についても「倍プッシュ」で進められていると訴える。

将来のUnityでは,共同作業をスムーズにする改良が加えられる
Unity
 そうしたエンジン開発の一環として,最後にUnityの最新動向についても紹介された。
 1つめは,「コラボレーションの強化」だ。共同作業時のプレファブ(Prefab)やシーン管理が改良され,1つのプロジェクトを複数人で開発していても,コンフリクトが発生しにくくなるという。

Unity
 また,以前から予告されていた「マルチシーン編集」機能も,日本で初披露された。実際に複数のシーンを扱うデモが実演され,別々に作られたシーンAとシーンBを重ね合わせて表示する様子などが示された。シーン間でオブジェクトの移動なども可能であり,片方だけ非表示にするいったことも簡単にできるようになっている。

Unity Unity
マルチシーン編集のデモより。別々に作られたシーンA(左)とシーンB(右)を……

Unity Unity
2つのシーンを混在させて表示したり(左),構成要素を一部入れ替えて,片方だけを表示したり(右)も可能になるという

 それらに加えて,ようやく日本語IMEの動作がまともになるとか,日本語エディタも作ってるよとか,最新のUnity 5β2では,パス名に日本語が入っていても大丈夫とか,日本語環境での不具合もどんどん修正されつつあるとのことだった。日本の開発者にとっては,少しホッとする話題ではないだろうか。

Unity Unity
Unityの日本語対応がようやくまともになるらしい。「ようやくか!」と言いたい人もいるだろうが,改善が進められていることは歓迎したい。

Unity Technologies 日本語公式Webサイト

CEDEC 2014 公式Webページ

  • 関連タイトル:

    Unity

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