Windows 10、DirectX 12、Kinect、PlayStation 4、VRヘッドセット対応、Unity 5への移行に見るUnityの可能性と課題:Unite 2015 Tokyoリポート(2/3 ページ)
クロスプラットフォーム対応のゲームエンジンとして多くのユーザーを抱える「Unity」。このUnityの開発者向けに、最新動向と技術情報を紹介する公式イベント「Unite 2015 Tokyo」が、4月13、14日に東京お台場で開催された。この記事では、4月13日に行われた、ソニー・コンピュータエンタテインメント、マイクロソフト、コロプラによる各セッションのダイジェストをお伝えする。
VSTU、Kinect、Windows 10、DirectX 12、Unity開発者を支援するマイクロソフトの取り組み
日本マイクロソフトは「Unity on Windows ゲームと開発のエクスペリエンス」と題し、デベロッパーエバンジェリズム統括本部 テクニカルエバンジェリズム本部エバンジェリストの大西彰氏が講演を行った。
同社は近年、WindowsやOfficeといったプロダクト中心のイメージから、「プロダクティビティ(生産性)」と「プラットフォーム」を提供する企業への転換を急速に進めている。子会社であるMicrosoft Open Technologiesによる出資などを通じてオープンソースコミュニティとの協力関係を強めている他、クロスプラットフォームに関する技術を持った企業との協業にも従来以上に力を入れている。Unityの開発を行っているユニティ・テクノロジーズも、そうしたパートナーの一社である。
Visual Studio Tools for Unityで開発生産性が大幅に向上
大西氏はまず、マイクロソフトの統合開発環境である「Visual Studio」の高い生産性を、Unityでの開発作業に生かすことができるプラグイン「Visual Studio Tools for Unity」(以下、VSTU)を紹介した。同プラグインは、以前「UnityVS」の名称で、SyntaxTreeというサードパーティが開発していたものだったが、マイクロソフトでは2015年4月に同社を買収。Visual Studioのオフィシャルなプラグインとして、機能強化とサポートを行っていく方針を示した。
セッションでは、最新の「Unity 5」と「Visual Studio」をVSTU 1.99で連携させ、C#によるコーディングの支援機能や、Visual Studio側で設定したブレークポイントによって、Unity Player上で実行しているプログラムを止め、コードの該当部分を表示するデバッグ支援機能などをデモした。
「VSTUでできることそのものは、わりと地味ですが、実際に使ってみると開発生産性は大きく上がります。VSTUそのものは無料で提供されており、Visual StudioのProfessional版以上で利用できます。Professional版相当の機能を持ち、個人の開発者なら無償で使えるCommunity版でも動かせますので、ぜひ一度試してください」(大西氏)
Unity 5では、無料の「Personal」版でKinectに対応できる
もう一つのトピックは「Kinect for Windows v2」だ。人間のさまざまな動作や音声の入力インターフェースとして利用できる「Kinect」は、ゲーム機であるXbox 360用の周辺機器として登場したが、現在ではゲームだけではなく、その他のエンターテインメントやヘルスケア、教育など、実用分野にも活用の場を広げている。
最新版の「Kinect for Windows SDK 2.0」では、Windows、Windowsストア、Xbox向けの開発で共通に利用できるAPIが整備された他、Unityプラグインのサポートも行われた。Unity 5では、プラグインを含む機能を無料で利用できる「Personal」版が用意されたため、Kinect本体の料金を除けば、ほぼ追加投資なしでUnityで動作するKinectアプリの開発が可能な状況になっている。
大西氏は、Kinect for Windows v2とUnityを組み合わせて作られたプログラムの例として、ヘルスケア企業である「Reflexion Health」によるフィジカルセラピーソフトウエアを実演した。また、実際にUnity 5にKinect SDKをインストールし、VSTUでコードを書き換えながら、認識した動作に対する処理を変更できる様子もデモした。
「KinectとUnity、VSTUを組み合わせれば、サンプルコードを使って、すぐにKinectの機能を生かしたアプリの開発が可能です。今日、会場に来ているUnity開発者の方からも新しいKinectの活用事例が出てくることを期待しています」(大西氏)
UnityでユニバーサルWindowsアプリ
後半は、Unityを使って「ユニバーサルWindowsアプリ」の開発を行う際のコツと注意点がテーマとなった。ユニバーサルWindowsアプリとは、同一のコードから、Windows PCだけではなく、WindowsタブレットやWindows Phone、Xbox Oneといった多様なWindowsデバイスで動作するアプリケーションを開発できる環境を指す。
Unityでは、バージョン4.5.3から、この環境向けの開発に対応しているが、現時点ではUnityプロジェクトの全てをスムーズに変換できる状況にはなっていない。その原因の一つは「コンパイラーとランタイムの相違」にあるという。
Unityの標準IDEであるUnity Editorでは、コンパイラーとランタイムの双方にMonoプロジェクトを利用している。Monoはもともと、オープンソースとして実装された.NET Frameworkのサブセットだが、現時点ではWindowsデバイス側にランタイムとして搭載されている.NET CoreにMonoとの微妙な差異があり、それが問題になる可能性があるという。この状況は、「Windows 10」の登場以降に徐々に改善されることが期待されるが、既存のUnityプロジェクトをWindowsプラットフォーム向けに展開するに当たっては、この差異を考慮した調整が必要になる。
大西氏は、フレームワークの違いを吸収する際の参考情報としていくつかのツールを紹介した。詳細については、それぞれのURLを参考にしてほしい。
- UnityのWinRTLegacy.dll
- MarkerMetroのMarkerMetro.Unity.WinLegacy
- MessagePack for CLI(バイナリのシリアル化)
- prime[31](Windows、Windows Phone向けのビルドとWindowsストア配信に対応するUnityプラグイン。現在無償で利用可能)
また、Windows向けの調整に当たっては、「Unity C# ScriptからWinRT APIの呼び出し」「UnityからのWindowsアプリの呼び出し」「WindowsアプリからUnity Engineへのアクセス」などの機能を活用することで、さまざまな対応が可能になるとした。ここでは、UnityプロジェクトからWindowsストアアプリとしてビルドしたアプリケーション上に、Windows UIのフォームを実装し、その入力内容をUnity Playerで動作しているアプリに反映させるといったデモが行われた。
マイクロソフトでは、Unity開発者が既存のUnityタイトルをWindowsプラットフォーム向けに展開する際の支援プログラムや、不定期な技術相談会である「Unity Porting lab」などを通じて、UnityタイトルのWindowsへの展開をサポートしているという。
Windows 10搭載DirectX 12の表現力
セッションの最後には、今夏以降にリリースされると見られている「Windows 10」に関する情報も一部披露された。デスクトップ、タブレット、スマートフォン、Xbox One向けのプラットフォームが統一され、1つのソースから全てのデバイスに向けたアプリ開発がさらに容易になることに加え、ゲーム開発者にとっては、よりパフォーマンスが向上した「DirectX 12」の搭載が大きなトピックになるという。
Build 2015で披露されたスクウェア・エニックスによるDirectX 12のデモ「WITCH CHAPTER 0 [cry]」(「Day 2 Keynote Presentation | Build 2015 | Channel 9」より引用)
特に、DirectX 12を機能レベル11.0以上に対応したハードウエアで実行している場合に利用できる「ExecuteIndirect」というAPIを用いると、より多くの処理をGPUに割り振ることにより、DirectXアプリケーションのパフォーマンスが大幅に向上するという。セッションでは、Intel NUCのIntel HD Graphicsを利用し、DirectX 11から12への切り替えによって、フレームレートが大幅に向上すること、さらには ExecuteIndirectによりCPU使用率が大幅に下げられる点などをデモで示した。加えて、Unity 5ではDirectX 12への最適化が行われており、複数のスレッドをより効率的に処理できるという。
「Windowsユニバーサルアプリへの展開を行うことで、手持ちのUnityタイトルをグローバルに向けてリリースすることが容易になります。マイクロソフトでは、VSTUの提供に加え、複数の支援プログラムを通じて、Unity開発者がWindowsプラットフォーム向けに作品をリリースしやすい環境を用意していますので、ぜひ利用してください」(大西氏)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- UnityアプリをWebGL、UWP、Android、iOS用としてビルドしてみた
Unityで3Dゲームを作るまでのいろいろな処理を解説する連載。最終回はアプリをWebで実行できるように書き出す方法やWindows上でUWP、Android、iOS用などにビルドする方法について解説する【Windows 10、Unity 5.6に対応】。 - ハッカソン、デバイス、海外展開、人材育成――ゲーム開発で私たちは今何をすべきか
2015年1月23〜25日、世界中で同時に行われた48時間にわたるゲーム開発ハッカソンの模様と、ゲーム開発がテーマのトークセッションをいくつかダイジェストでお届けする。 - ゲーム嫌いも知っておきたい3D CG/VRのエンタープライズ活用事例〜Unity Solution Conference 2014まとめ
ゲーム開発で有名なUnity。医療や建築、ヘルスケア、観光などゲーム以外の活用事例をイベントリポートでお届けする。 - Oculus Rift、Unity、Openframeworks...感覚器官フル稼働の仮想空間を実現する
学生のアイデアを具現化するツールの進化・普及と、感覚器官をフルに使う人工現実感。表現とインターフェースについての学生の挑戦から「思い付き」を実現する環境のいまを知ろう。 - Unity 4.2でBaaSを使って簡単にストアアプリを作るには〜CEDEC 2013「Unity on Windows 8」レポート
開発の概要や、プッシュ通知ができるライブタイルなどWindows特有の機能を追加する方法、事前審査テスト時の注意点なども。