Yuta Watanabe's Blog

開発周りと、その他諸々

Unity で生成する Windows アプリの中身とデバッグ

こんにちは。

マイクロソフトの渡辺です。

前回は、「 Unity で Windows アプリをビルドしてみよう 」ということで、Unity Editor からビルドを行い、Visual Studio 上でアプリを実行してみるまでの流れをご紹介しました。今回は、この仕組みをもう少し詳しく見ていくとともに、Visual Studio 上でもゲームをデバッグしてみたいと思います。

※下記記事も合わせてご覧ください

Unity で Windows ストア アプリをビルドする流れ

まず前回 Unity で Windows アプリをビルドした流れをおさらいすると、Unity でのWindows ストア アプリ開発はざっくり、

  1. Unity Editor でゲームを開発
  2. Unity Editor から Windows ストア アプリをビルド
  3. 生成された Visual Studio のソリューションを開く
  4. Visual Studio で Windows ストア アプリのプラットフォーム固有機能を実装
  5. Visual Studio で最終的な Windows ストア アプリのバイナリをビルド

という流れで進みました。しかしなぜ、2回もビルドを行うのでしょうか。

f:id:yuwata:20141021195451p:plain

少し細かい話になりますが、今後 Windows ストア アプリを開発する上で頭の片隅には置いておいた方がいい内容ですので、上記の流れを少し詳しく見ていきましょう。

Unity Editor から Visual Studio、Mono から .NET へ

( 1 ) 通常 Unity Editor 上で開発されるゲームは、.NET Framework のオープンソース実装である Mono でコンパイルされ、Mono ランタイム上でゲームが実行されます。( 5 ) 一方、Windows ストア アプリは、.NET でコンパイルされ、.NET/WinRT ランタイムの上で動作します。

この違いを乗り越えるため、Windows ストア アプリの開発では、Unity Editor でビルド -> もう一度 Visual Studio でビルド、というステップを踏みます。

具体的には、Unity Editor が Windows ストア アプリをビルドする際に、( 2 ) .NET コンパイラを利用してゲームをビルドし、Visual Studio のソリューションを生成します。この時は、.NET のサブセットである .NET Core プロファイルが使われます。

その後で、( 3 ) 生成されたソリューションを開き、( 4 ) Visual Studio 上で、Windows ストア アプリ固有の機能を .NET/WinRT API を使って開発。最終的には ( 5 ) アプリを .NET コンパイラでビルドし、.NET/WinRT ランタイム上で動かします。

Mono と .NET の違い

上述の通り、Unity Editor 上で動作するゲームと、最終的に Windows プラットフォーム上で動作するアプリでは、コンパイルに使われるプロファイルが違います ( Mono と .NET Core ) 。そのため、Mono にはあっても .NET Core プロファイルにはない API ( またはその逆 ) がいくつかあり、コンパイル時にエラーが発生することがあります。

ただ、これらの API の多くには、.NET API や WinRT API に代わりになるものがありますし、UnityEngine.WindowsUnityEngine.WindowsPhoneWinRTLegacy の下にいくつか替わりになる API も提供されています。

コードの修正ポイントは追って、このブログでご紹介します。また、「 Unity による Windows ストアへの移植のヒント 」にも詳しい API の実装方法やサンプルが示されていますので、ぜひご参照ください。

Unity Editor と Visual Studio での編集

実際のゲーム開発では、多くの場合、Unity Editor 上でのゲーム開発と、Visual Studio 上での Windows ストア 向けの開発は並行して進みます。

Unity Editor から Windows ストア アプリをビルドした際に、Visual Studio ソリューション内で変更が加えられるのは

  • プロジェクト内の Data フォルダー
  • プロジェクトの参照アセンブリ

の 2つです。

f:id:yuwata:20141022151401p:plain

そのため、Visual Studio から加えたプロジェクトへの変更やプラットフォーム固有機能の実装、マニフェストファイルや構成ファイルの修正は、Unity Editor からの Build でソリューションを上書きしても失われることはありません。

ただし、Unity Editor にて新しいプラグインや参照の追加等、プロジェクトファイル自体に影響する変更を行った場合は、Visual Studio 上でプロジェクト ファイルを手動で変更を加える必要がある点にご注意ください。

Windows ストア アプリのデバッグ

Unity Editor から Windows ストア アプリをビルドする際に、Build Settings にて " Unity C# Projects " にチェックをつけました。このオプションによって、生成されるソリューション内に Assembly-CSharp-* プロジェクトが含まれ、Unity スクリプトを Visual Studio 上でもデバッグ&編集することが出来ます。ただし、このソースコードはコピーされたわけではなく、Unity Editor で見ているのと同じ、元のファイルを編集することになる点にはご注意ください。

f:id:yuwata:20141021121612p:plain

Unity スクリプトの確認

それでは、ソリューションに含まれる Assembly-CSharp-* プロジェクトの中身を確認してみましょう。Assets/Scripts 以下に Unity Editor 内と同じようにスクリプトファイルが置かれています。

f:id:yuwata:20141021201016p:plain

ブレークポイントを置いてデバッグしてみる

ここでは、Enemy.cs を開いてスコアの更新部分にブレークポイントを置いてみます。

f:id:yuwata:20141021201059p:plain

そしてアプリをデバッグしてみて敵を倒すと...

f:id:yuwata:20141021201213p:plain

ブレークポイントで処理がとまり、変数の状態等を確認することができます。

Unity Editor 上でのデバッグ

参考として Unity Editor 上でのデバッグについても触れたいと思います。

Unity Editor にはデフォルトの IDE として MonoDevelop が付属しています。なので、Unity Editor でゲームを開発しているときは MonoDevelop を使ってデバッグ。Windows ストア アプリとしてビルドした後は、Visual Studio 上でデバッグという形に通常はなります。

しかし、Unity Editor でゲームを開発している時も ( しいて言えば、iOS/Android 向けアプリを開発している時も )、Visual Studio の機能を使ってデバッグする方法があります。それを可能にするのが Visual Studio Tools for Unity という Visual Studio 向けの拡張機能です。こちらを利用していただくと、Visual Studio で Unity ゲームを開発/デバッグすることが出来ます。

詳しいインストール方法や使い方は下記記事をご覧ください。


Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog

このあとは

今回は、Unity での Windows ストア アプリをビルドする流れとデバッグ方法について、ご紹介しました。既存ゲームの移植のポイントや、Windows プラットフォーム固有機能の実装方法については、追ってこのブログで解説していきたいと思います。

次回移行は、アプリのリリースに向けた準備と、アプリ申請の流れや、Windows プラットフォーム固有機能の実装方法についてご紹介していきます。

関連リソース


Unity 開発者のための Windows ストア概要 - Yuta Watanabe's Blog


Unity で Windows アプリを開発する環境を整える - Yuta Watanabe's Blog


Untiy で Windows アプリをビルドしてみよう - Yuta Watanabe's Blog

Unity で Windows アプリをビルドしてみよう

こんにちは。

マイクロソフトの渡辺です。

「 Unity 開発者のための Windows ストア概要 」に続き前回は「 Unity で Windows アプリを開発する環境を整える 」ということで、Unity で Windows アプリをビルドするのに必要な環境を確認しました。

今回は、Unity Asset Store でダウンロードできるサンプルを利用して、実際に Windows アプリをビルドする流れをご紹介していきます。

準備

この記事では、Unity Asset Store で提供されているサンプル「 2D Platformer 」を例に、Windows アプリをビルド/デバッグしてみます。

f:id:yuwata:20141021155139p:plain

まずは、準備として 2D Platformer を Asset Store からダウンロードし、インポートしてください。

f:id:yuwata:20141021155238p:plain

f:id:yuwata:20141021155312p:plain

Unity でビルドできる Windows アプリの種類

Unity からビルドできる Windows アプリには次の 4つがあります。これらは、Windows ストア アプリの Build Setting の " SDK "のプルダウンから選択できます。

  • 8.0 ( Windows 8 の ランタイムで動く Windows ストア アプリ )
  • 8.1 ( Windows 8.1 のランタイムで動く Windows ストア アプリ )
  • Phone 8.1 ( Windows Phone ストア で公開するアプリ )
  • Universal ( 1つのソリューションで、Windows 8.1 ストア アプリ & Windows Phone 8.1 アプリの両方をターゲットとすることができる ユニバーサル Windows  アプリ )

f:id:yuwata:20141021121612p:plain

Windows 8.1 および Windows Phone 8.1 へのアップグレードが順調に進んでいることを見ると ( 参考:「Windows & Windows Phone ストア アプリ ダウンロード数トレンド ( 2014年9月 ) 」)、今あえて 8.0 アプリとしてビルドする理由はほぼありません。

f:id:yuwata:20140929131439j:plain

Windows 8.1 および Windows Phone 8.1 向けのストア アプリは、それぞれ別々にビルドすることもできます。

また、ユニバーサル Windows アプリとしてビルドすると、1つのソリューション内で共通コードを共有し、Windows 8.1 ストア アプリ、Windows Phone 8.1 ストア アプリの両方をターゲットしてビルドすることが出来ます。Windows 10 の発表でも言及されている通り、ユニバーサル Windows アプリの基盤は Windows 10 へと引き継がれます。より多くのユーザにリーチしながら、Windows 10 に備える最良の方法は、ユニバーサル Windows アプリの開発です

また、Type として、XAML C# Solution と XAML C++ Solution を選択できます。特に C++ で書きたい!というわけでなければ、C# Solution を選びましょう ( C++ ソリューションには対応していないプラグインもあるので注意 )。

Windows アプリをビルド

ではいよいよ、Unity から Windows アプリをビルドしてみます。

File > Build Setting を開き、Windows Store にプラットフォームをスイッチ。

  • Type:XAML C# Solution
  • SDK:Universal 8.1
  • Build and Run on:Local Machine
  • Unity C# Projects:チェック
  • Development Build:チェック

という設定で、Build ボタンを押します。保存先を聞かれますので指定しましょう。ここでは、Builds フォルダを作成し、その下に Universal フォルダを作り保存することにしました。

f:id:yuwata:20141021160437p:plain

ビルドが進んで、

f:id:yuwata:20141021160258p:plain

完了すると、Visual Studio のソリューションが生成されます。

f:id:yuwata:20141021160541p:plain

Visual Studio でソリューションを開く

生成されたソリューションをダブルクリックして、開いてみます。まずはソリューションエクスプローラーからソリューションの中身を見ていきましょう。

f:id:yuwata:20141021160848p:plain

今回は、Build Settings にて SDK を Universal としたので、ユニバーサル Windows アプリが生成されています。

1つのソリューションの中に、

  • Windows ストア アプリをターゲットとするプロジェクト ( _2D v3.Windows (Windows8.1) )
  • Windows Phone アプリをターゲットとするプロジェクト ( _2D v3.WindowsPhone (Windows Phone8.1) )
  • 共有コードである Shared Project ( _2D v3.Shared )

の 3つが含まれているのが分かります。

※参考「 Windows と Windows Phone を対象とするユニバーサル Windows アプリの構築

Package.appxmanifest ( アプリの設定をするマニフェストファイル ) や、各種素材等のプラットフォーム固有ファイルは、Shared Project ではなく、それぞれのプロジェクトに含まれます。

Build Settings にで SDK を " 8.1 " または " Phone8.1 " とした場合は、Shared Project がなくなり、Windows 8.1 のプロジェクトまたは Windows Phone 8.1 のプロジェクトのいずれかがソリューション内に含まれる形となります。

Windows ストア アプリを実行してみる

さて、さっそくですが Windows ストア アプリを実行してみましょう。

まずご確認いただきたいのが、構成マネージャーです。

f:id:yuwata:20141021161619p:plain

Unity でのビルドで生成されたソリューションは、デフォルトで ARM がアクティブソリューション プラットフォームが指定されています。x86 マシンでデバッグする場合は、こちらを x86 に変更する必要がありますのでお忘れなく。

f:id:yuwata:20141021162035p:plain

構成マネージャーでの設定変更を行った後は、さっそくデバッグ ボタン ( または F5 ) を押して実行してみましょう。すると、ビルド & アプリの配置と進み、アプリが起動してきます。

f:id:yuwata:20141021162451p:plain

ちなみに、デフォルトではローカルコンピューターでのデバッグが選択されていますが、シミュレータでデバッグすることもできます。

f:id:yuwata:20141021161640p:plain

タッチ操作やセンサーの値等のシミュレート、画面のキャプチャー等を行う際はこちらをご利用ください。

f:id:yuwata:20141021162629p:plain

Windows Phone アプリを実行してみる

続いて Windows Phone アプリも実行してみます。

Windows Phone 8.1 のプロジェクトを右クリックして、" スタートアップ プロジェクトに設定 "を選びます。ソリューションエクスプローラー内で太字表示されているプロジェクトが、現在のスタートアップ プロジェクトです。

f:id:yuwata:20141021162940p:plain

Windows ストア アプリの実行時と同様にエミュレータで実行することができます。既定では Device ( 実機 ) が選択されている場合があるので、エミュレータを選択しましょう。

f:id:yuwata:20141021162927p:plain

あとの流れは、Windows ストア アプリの時と同じです。Unity アプリが立ち上がり、

f:id:yuwata:20141021163311p:plain

ゲームが始まります!!

f:id:yuwata:20141021163319p:plain

このあとは

今回は、Unity から Windows アプリをビルドし、Visual Studio で実行するまでの流れをご覧いただきました。次回は、もう少し詳しく、ビルドで生成されたソリューションの中身やデバッグの流れについてご紹介していきます。

関連リソース


Unity 開発者のための Windows ストア概要 - Yuta Watanabe's Blog


Unity で Windows アプリを開発する環境を整える - Yuta Watanabe's Blog

 

 

開発者支援プログラム Dev Center ベネフィットの日本語ガイドを公開

こんにちは。

マイクロソフトの渡辺です。

先日、Windows ストア & Windows Phone アプリの開発者登録年間更新料が無料になったことに加え、「 Dev Center Benefits 」という新しい開発者支援プログラムが発表されました。

この Dev Center Benefits の日本語ガイドが公開されましたので、お知らせします。


Dev Center ベネフィット | MSDN

f:id:yuwata:20141023104238p:plain

開発時の技術支援 ( もちろん日本語です ) が無料で受けられる他、開発者登録費が無料になり、さらにアプリの宣伝支援等様々な特典をゲットできるチャンスもあります。

プログラム登録の方法から各特典の利用方法のガイドも日本語で用意されていますので、ぜひご利用ください。

 

Unity で Windows アプリを開発する環境を整える

こんにちは。

マイクロソフトの渡辺です。

前回の、「 Unity 開発者のための Windows ストア 概要 」ではUnity で Windows アプリを開発する際に押さえておきたい概要をご紹介しました。開発者支援プログラム等のご案内もありますので、ぜひ一度ご覧ください。

今回は、Unity で Windows ストア アプリをビルドする準備として必要な環境や情報をご紹介していきます。

必要な環境

最新の Windows アプリを Unity でビルドするために必要な環境は下記になります。

  • Unity 4.5.3 以上
  • Windows 8.1
  • Visual Studio 2013 Update 2 以上
  • Windows & Windows Phone の SDK
  • 開発者アカウント ( マイクロソフト アカウント )

Unity 4.5.3 以上

最新の Unity をダウンロードしましょう。Unity 無料バージョンおよびUnity Pro に関わらず、すべての Unity ユーザは、Windows ストア および Windows Phone アプリをビルド/公開できます! ( 必要なアドオンは、どちらのバージョンにも含まれています )。

f:id:yuwata:20141021122706p:plain

Windows 8.1

この機会にぜひ Windows 8.1 ライセンスまたは PC のご購入をご検討ください。Windows 8.1 Enterprise の90日間の評価版で開発環境を構築いただくことも出来ます。

スタートアップの方々は、BizSpark プログラムを利用して、Windows 8.1 ライセンスを含むソフトウェアを開発用途で無料ダウンロードしていただけます。

Windows マシンは持っていない!という方は、「 Mac への Windows および開発者ツールのインストール 」にて環境構築の方法をご覧いただけます。

Visual Studio 2013 Update 2 以上

無料の Visual Studio Express 2013 for Windowsで開発することもできますし、学生の方は DreamSpark プログラムから Visual Studio Professional 、スタートアップの方は BizSpark プログラムから Visual Studio Ultimate エディションをダウンロードできます。

その他の方々も、90日無償評価版がありますので、ぜひ最新の上位エディションをお試しください。

また、Professional 版以上では、拡張機能 Visual Studio Tools for Unity を利用すると、Visual Studio で Unity アプリの開発 & デバッグを行うこともできます。詳しくは、下記記事をご覧ください。


Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog

Windows & Windows Phone のSDK

アプリ開発に必要な SDK は、Visual Studio と一緒にインストールされますので、特に追加の作業は必要ありません。

開発者用ライセンス & アカウント ( マイクロソフト アカウント )

Windows アプリを開発し、公開する過程でマイクロソフト アカウントは必ず必要になりますので、あらかじめ取得しておきましょう ( 新しくユーザ名を取得することもできますし、既存のアドレスで取得することもできます )。

このマイクロソフト アカウントに紐づけて、

  • 開発者ライセンス
  • 開発者アカウント

の 2つ取得をすることになります。

開発者用ライセンスは、ストアに提出する前の開発中のアプリをインストールしてテストするために必要です。無料で取得でき、Visual Studio 2013 を起動したタイミングで取得を促されますので、マイクロソフト アカウントでログインして進んでください。

また、開発者アカウントはアプリの申請/公開に必要なアカウントです。個人用または会社用を選んで取得します。開発者アカウントに使うマイクロソフトアカウントは、取得後変更できませんので、特に会社用の場合は開発者アカウント用のマイクロソフトアカウントを取得するようにしましょう

f:id:yuwata:20140918091800p:plain年間の更新料は無料になりました。初期の取得費用も開発者支援プログラムで無料になりますので、ぜひご活用ください。

技術情報リソース

Unity で Windows アプリの開発を行うにあたって活用できる、技術情報リソースをご紹介します。今後適宜ご参照ください。

このあとは

今回は、Unity で Windows ストア & Windows Phone アプリを開発していく上で必要となる環境をご紹介しました。次回は、整えた環境で実際にアプリをビルドする流れを見ていきたいと思います。

関連リソース


Unity 開発者のための Windows ストア概要 - Yuta Watanabe's Blog


Visual Studio Tools for Unity ( UnityVS ) で Unity 開発/デバッグの生産性を上げよう - Yuta Watanabe's Blog

 

 

 

Unity 開発者のための Windows ストア概要

こんにちは。

マイクロソフトの渡辺です。

Unity 開発者の皆様、お手持ちのアプリ、またはこれから開発するアプリを Windows ストアにも公開してみませんか?今回は、Unity アプリを Windows プラットフォーム向けにビルド & リリースする際に押さえておきたい Windows ストアの概要をご紹介します。

Windows のアプリ市場

Windows のアプリ市場は拡大し続けています。既に、50万以上のアプリが公開され、アクティブユーザは 1億ユーザ以上、登録開発者数は 64万を超えています。そして特に 38の市場、65のパートナーで可能となっているキャリア決済が開発者にもたらされる収益の増加を加速させています ( キャリア決済対応前と比べ、先進国で 3倍、新興国では 8倍の課金トランザクションが発生 )。

f:id:yuwata:20141015193639p:plain

Windows ストア と Windows Phone ストア

Windows には 2つのアプリ ストアがあります。1つは、タブレット、ノートブック、デスクトップ PC 向けのアプリ ストアである Windows ストア ( Windows 8 以降利用可能 )。そしてもう1つが Lumia をはじめとする Windows Phone 向けのアプリ ストア である Windows Phone ストアです。

どちらのストアでも、マイクロソフトの課金プラットフォームを利用した場合の収益は、開発者 7: 3 ストア の割合でレベニューシェアとなります。3rd Party の課金システムを利用した場合にはマイクロソフトに手数料を支払う必要はありません。

また、現在では、ユニバーサル Windows アプリという仕組みで、Windows ストア、Windows Phone ストアの両方に対応したアプリをビルドできるようになりました ( Unity では、4.5.3 以上で対応 )。

Windows ストア & Windows Phone ストア アプリの関連付け

Windows ストアおよび Windows Phone ストアそれぞれにリリースされた同一のアプリは、関連付けを行うことができます。これによって、ユーザの購入がどちらのプラットフォームでも有効となる他、アプリの利用頻度やユーザとのエンゲージメントの向上を促すことが出来ます。

f:id:yuwata:20141020174842j:plain

 

Windows ストアでのマネタイズ

では、Windows ストアではどのようなマネタイズ手段が、より多くの収益をもたらしているのでしょうか。アプリのマネタイズ手段には主に、有料アプリの公開、アプリ内での広告掲載、アプリ内課金の導入がありますが、現状事実としては、アプリ内課金、アプリ内広告が有料アプリに比べて非常に多くの収益を開発者にもたらしています。

f:id:yuwata:20140929131752j:plain

特に、アプリ内課金からの収益は、Windows Phone ストアで急激に伸びていて、Windows ストアでも同様に大きな伸びを見せています。ちなみに、Windows Phone ストアで最も高い収益を上げている上位20アプリすべてでアプリ内課金が使われているとのこと。

Windows ストアでのアプリダウンロード、マネタイズのトレンドの詳しい内容については下記の記事をご覧ください。


Windows & Windows Phone ストア アプリ ダウンロード数トレンド ( 2014年9月 ) - Yuta Watanabe's Blog


Windows & Windows Phone ストア マネタイズのトレンド ( 2014年9月 ) - Yuta Watanabe's Blog

アプリ内での広告掲載

アプリ内での広告掲載には、マイクロソフトが提供する Ads in Apps をはじめ、AdMob, inmobi, adduplex, MediaBrix, LEADBOLT 等の主なアドネットワークをご利用頂けます。Unity アプリ内での実装の際には、現在は無料で提供されている prime[31] プラグインや、オープンソースの Adrotator プラグインもご利用頂けます。

アプリ内課金の実装

マイクロソフトのプラットフォームを利用するアプリ内課金アイテムには、ゲームレベルのアンロックといったような永続的なアイテム ( 期限を設けることもできます )と、100コインというような購入と消費が繰り返されるアイテムの2つがあります。先にご紹介した通り、3rd Party の課金プラットフォームを利用してアプリ内課金を実現した場合は、マイクロソフトに対して手数料を支払う必要はありません。

Windows アプリ開発者向けの支援プログラム

Unity を使って Windows アプリを開発される際にご活用いただける開発者支援プログラムが現在は 2つあります。

まず1つ目は、Windows Unity Developer Offer です。Level 1, 2とステップがあり、それぞれ条件をクリアすると開発端末や Unity アセットストア、Windows ストアで使えるバウチャー、アプリの宣伝枠等がもらえます。

f:id:yuwata:20141015194508p:plain

そして2つ目は、Dev Center Benefits です。こちらも Explore, Expert, Master とステップが3段階に分かれていて、条件を満たすことで様々な特典が得られます。開発し始めの Explore の段階でも技術&デザイン相談の窓口 ( 日本語で対応します ) が使えますので、ぜひご活用ください。

※10/23 日本語ガイドを公開しました!


開発者支援プログラム Dev Center ベネフィットの日本語ガイドを公開 - Yuta Watanabe's Blog

f:id:yuwata:20141015195030p:plain

このあとは

今回は、Unity 開発者の皆様向けの、押さえておきたい Windows ストアの概要をご紹介しました。

繰り返しになりますが、お手持ちのアプリまたは、これから開発するアプリを Windows ストアにも公開してみませんか?次回は、実際に Unity を使って Windows ストア アプリをビルドする流れをご紹介します!

関連リソース