特集
» 2013年08月28日 17時00分 UPDATE

Unity 4.2でBaaSを使って簡単にストアアプリを作るには〜CEDEC 2013「Unity on Windows 8」レポート

開発の概要や、プッシュ通知ができるライブタイルなどWindows特有の機能を追加する方法、事前審査テスト時の注意点なども。

[宮田健,@IT]

 iOS、Android、Webへも書き出し可能なマルチプラットフォーム展開ができる「Unity」は3Dデータを含むゲームを簡単に作れるゲーム開発プラットフォームとして有名だ。UnityをWindows 8でも展開するためのセッション「Unity on Windows 8」がゲーム開発者向けカンファレンス「CEDEC 2013」で行われたので、本稿ではその様子をレポートする。

Unity 4.2でWindows 8に対応 Windowsストアで公開可能に

 マイクロソフトが提供する「Windows 8」にはさまざまな新機能があるが、その中でも特筆すべきは「Windowsストア」の存在だ。デバイスとサービスの会社への変革を進めるマイクロソフトにおいて、さまざまなデバイスで動くアプリを、手軽に全世界に配信できるWindowsストアの存在は、開発者にとって大きなものだ。

unitywin_ohnishi.jpg 日本マイクロソフト デベロッパー&プラットフォーム統括本部 クライアントテクノロジー推進部 テクニカル エバンジェリスト 大西彰氏

 そのWindowsストアに、最新のUnity 4.2を使ったアプリが登録できるようになった。これにより、表現力の高いゲームアプリだけではなく、3Dコンテンツを表示するような図鑑をUnityでオーサリングすることも可能になる。さらに、Windows 8特有のライブタイルや「Windows Azureモバイルサービス」を、Unityコンテンツから利用できるのだ。

 日本マイクロソフト デベロッパー&プラットフォーム統括本部 クライアントテクノロジー推進部 テクニカル エバンジェリストの大西彰氏は、Unityで作ったコンテンツにWindowsならではの機能を組み込む方法をデモを中心に解説した。

デバイス:Unity on Windows 8の開発の流れ

 UnityでWindows 8アプリを作る流れは、他のプラットフォームと変わらない。まずは通常のUnityコンテンツを作成し、ビルドの際にVisual Studioを利用し、その際にWindowsストア向けのビルドを行い、パッケージングの後にWindowsストアへ申請を出せばよい。

unitywin01.jpg 開発の流れ(大西氏の講演資料より)

 大西氏はまず、Unityでの基本コンテンツを作り、Unityから「Windows Store Apps」向けにジェネレートする手順を紹介した。

 基本的にはジェネレートしたものをVisual Studioで開き、ビルドをすればいいのだが、デフォルトの状態では作成されたプロジェクトのターゲットが「ARM」となっているため、それを「x86」向けに変更した後、ビルドすることが必要だとのことだ。これにより、Windows 8デバイスにタッチコントローラがあれば、それを利用して操作が可能となる。もちろん、キーボードでもマウスでも操作が可能だ。

unitywin02.JPG Unityから「Windows Store Apps」向けにジェネレートするデモの様子

 このとき、大西氏は「性能が低いデバイスを用いてデバッグをした方がよい。『Remote Tools for Visual Studio 2012』を使うと、同一ネットワークにあるデバイスでリモートデバッグが可能なので、これを活用してほしい」と述べた。

unitywin03.JPG Windows RTを使ってネットワーク越しにリモートでバッグが可能(大西氏の講演資料より)

プッシュ通知ができるライブタイルなどWindows 8特有の機能を追加する

 ここまでは、基本のUnityコンテンツ開発手法だ。ここから、Windows 8特有の機能を付けて仕上げる。具体的には、ライブタイル対応などのプッシュ通知機能だ。「例えばゲームにおいて、アイテムの特売などのキャンペーンを実施するなどのタイミングで通知を送るような仕組みを用意したい場合、ライブタイルは効果的」(大西氏)。

 これを実現するには、プラグインをいくつか追加する必要がある。このときのポイントとして、Unityエディタ/ストアアプリのクラスライブラリが別バージョンとなっている点を把握する必要がある。

 具体的には、Unityエディタ向けには.NET 2.0のクラスライブラリを、Windowsストア向けには.NET 4.5のクラスライブラリをそれぞれ導入しなくてはならない。これを間違えるとジェネレート時に赤い文字でエラーが出てくる。

  • デスクトップ用のクラスライブラリ
    →.NET Framework 2.0/Assets\Pluginsの下に
  • Windowsランタイムのクラスライブラリ
    →.NET Framework 2.0/Assets\Plugins\Metroの下に
unitywin04.JPG プラグインの配置に注意(大西氏の講演資料より)

 デモではアプリをタップするとメッセージをアップデートし、tile.UpdateTile()で指定した文字列をライブタイルに表示する方法を紹介した。

unitywin05.JPG tile.UpdateTile()を指定するデモの様子
unitywin06.JPG ライブタイルにメッセージ(ここでは日付時間情報)を表示するデモの様子

サービス:BaaSの「Windows Azureモバイルサービス」に情報を保管する

 次に、サービスとしてのマイクロソフトを活用するデモが行われた。Windows AzureモバイルサービスはWindows、Android、iOS、およびWebなどを対象としたアプリケーションのバックエンドを想定したインスタンスで、管理コンソールから登録すると、すぐに使えるサービスだ。

 デモでは、UnityのコンテンツからWindows Azureモバイルサービスへ情報をストアする手順が紹介された。

 UnityでWindows Azureモバイルサービスを利用するためには、OSSで提供されている「Azure Mobile Service for Unity 3D」を使う。プラグインとしていくつかの.dllファイルを追加し、Azureの管理コンソールで指定されたURL、アクセストークンを用い、ソースコードに1行追加する程度で利用が可能だ。

unitywin07.jpg Azure Mobile Service for Unity 3D(大西氏の講演資料より)

 これを用いると、ゲームにおいてハイスコア情報を共有するなどの対応が簡単に行える。デモは文字列を保存するものだったが、JSON文字列にすれば、さまざまなデータが格納可能だという。

unitywin08.JPG Azure Mobile Servicesスクリプト例(大西氏の講演資料より)

パッケージ化して、審査基準の事前検証テストを行い、ストアに登録

 最後の仕上げはWindowsストアへの登録だ。これも難しいことはなく、生成されたパッケージを管理コンソールから登録するだけでOKだ。

 Windowsストアに出店されるには審査を通る必要があるが、Windowsストアアプリ開発には、WACK(Windows App Certification Kit)が用意されていて、事前にローカル環境で審査基準の検証テストが行える。

unitywin09.JPG WACKによる審査基準の事前検証テスト(大西氏の講演資料より)

 しかし、「現時点のUnity 4.2においては、JavaScriptおよびBooスクリプトは検証をパスしないという制約があるので注意しよう」(大西氏)とのことだった。

unitywin10.JPG JavaScriptおよびBooスクリプトは検証をパスしないという制約がある

 3Dコンテンツを容易に扱えるUnityと、マイクロソフトが提供する開発環境、そしてデバイスを使って特徴のあるコンテンツが作れるというセッションの最後に、大西氏は「UnityがWindowsでそのまま使え、さらにはWindowsストアにすぐに登録できる。世界中に配信できるのは大きなチャンス。スタートアップ向けのBizSparkや学生向けのDreamSparkプログラムなどを活用してぜひこのチャンスを生かしてほしい」と述べた。

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。