検索
特集

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

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

Share
Tweet
LINE
Hatena

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

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

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


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

 その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ストアへ申請を出せばよい。


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

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

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


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

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


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の下に

プラグインの配置に注意(大西氏の講演資料より)

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


tile.UpdateTile()を指定するデモの様子

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

サービス: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行追加する程度で利用が可能だ。


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

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


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

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

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

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


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

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


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

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

Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る