UnityアプリをXbox Oneで動かす方法

Xbox Oneで自作のUnityアプリを動かす方法を書いていきます。
全部で 5 ステップですが、 1 ～ 2 時間程度はかかると思います。

1. 開発者アカウント登録をする
2. Xbox One を開発モードに切り替える
3. Unity でアプリをビルドする
4. Unity でビルドしたアプリを Visual Studio 2015 で開く
5. Visual Studio 2015 でビルド後、 Xbox One 上で実行する

## 必要なもの
- Xbox One
  - Kinect なし版だと、少し安いです
  - 2016/10/16 現在、数量限定ですが 2.4 万円くらいで買えます
  - ([Amazon.co.jp： Xbox One 500GB (Halo: The Master Chief Collection 同梱版) 5C6-00098: ゲーム](https://www.amazon.co.jp/dp/B01ASNPZKS))
- Windows 10 の PC
  - 対応している OS は、 Windows 10 のみのようです。
- 新しめの Unity
  - 手元では Unity 5.4.2f1 を使っています。
  - 無料のパーソナルライセンスで大丈夫です。
- Visual Studio 2015 Update 3 (今のところは Update 3)
  - 追加で "ユニバーサル Windows アプリ用 Visual Studio Tools" をインストールしておく必要があるそうです。 (Visual Studio 2015 のインストーラで、カスタムインストール時に選択)
  - 無料のコミュニティエディションで大丈夫です。
- クレジットカードまたは PayPal アカウント
  - マイクロソフトの開発者アカウントに登録をするために、 1,847 円必要になります (1 年間)

### 注意点
- 個人アカウントだと、登録できる Xbox One の台数は 3 台までの制限があるようです。
- 企業アカウントの方は調べられていませんが、もう少し台数制限は緩いかもしれません。



## 1. 開発者アカウント登録をする

※ すでにマイクロソフトの開発者アカウント (有料) を持っている場合は、 2. まで読み飛ばしてください。

次の URL を開いて、アカウント登録をします。

- https://developer.microsoft.com/Xboxactivate

アカウントを作るか、既存のアカウントでログインしてください。

> ![b1d0a638d5157fc4146f10bcc1e0be87.png](https://qiita-image-store.s3.amazonaws.com/0/28292/cf368d3a-5044-f548-6ad3-cf3ca8f15008.png)

次の画面が表示されたら、国を選んでください。

> ![9c30f4d9fa3c9fa08e8e96f6b084f37c.png](https://qiita-image-store.s3.amazonaws.com/0/28292/0ceb319b-3a9a-5e10-8de9-c3ea3055b421.png)

日本語で登録するときは、次の URL に移動すると良いようです。

- https://developer.microsoft.com/ja-jp/dashboard/registration/AccountInfo
  - URL の en-us を ja-jp に書き換えるか、 Web ページの画面左下から "English (United States)" と書かれたところをクリックして、言語を切り替える

ここから先は、日本語設定にした上で進めていきます。

国を選んで、下のほうにスクロールすると次のような画面になります。
この記事では個人用を選びます。

> ![d462960fb5b8d465e67486ea9e0c21c5.png](https://qiita-image-store.s3.amazonaws.com/0/28292/741ae0f0-9696-8633-e3fd-912d96ef0aa7.png)

アカウントの種類を選ぶと、アカウント情報を入力する画面が出てきます。
連絡先等を入力して、次へボタンを押してください。

> ![38bc97511a20e4d6ae374c473b17acd7.png](https://qiita-image-store.s3.amazonaws.com/0/28292/a057a72a-1eaa-69c6-7781-0efd9c2e9502.png)

支払方法を決定して、次へボタンを押してください。

> ![0a8cfa64f303040d9b78f171b877b2c0.png](https://qiita-image-store.s3.amazonaws.com/0/28292/5fd2c639-d8e6-1a94-af90-4d4f3ce9113d.png)

ここからはスクリーンショットが取れていませんが、登録できたら 3 通ほどメールが届きます。

- Windows デベロッパー センターへようこそ (microsoftdevcenter＠microsoft.com)
- Microsoft からのご購入のご確認 (billing＠microsoft.com)
- 操作が必要です: Microsoft でのメール アカウントを確認してください (emailver＠microsoft.com)

3 通目の "操作が必要です" のメールを開いて、 "メールアドレスを確認" ボタンを押してください。
アカウント登録はいったんここで完了です。

## 2. Xbox One を開発モードに切り替える

まず、 Xbox One 上へ開発用のアプリをインストールします。
Xbox One を起動して、ストアタブへ移動してください。

> ![159112973c98788feed2f63c7740e492.png](https://qiita-image-store.s3.amazonaws.com/0/28292/213da52c-30a9-a691-ff67-537df78addf2.png)

検索ボタンを押して "dev" で検索します。
"Dev Mode Activation" というアプリが出てくるので、インストールしてください。

> ![5c1b4d648fe8a6c0460f242de2b2bb25.png](https://qiita-image-store.s3.amazonaws.com/0/28292/0ab7aa69-6f7b-a4ef-599f-33c864c0d9da.png)

Dev Mode Activation アプリを起動すると次のような画面が表示されます。
とりあえず次へを押してください。

> ![b7034a62ba7878cf2d096f30aff69725.png](https://qiita-image-store.s3.amazonaws.com/0/28292/c6d36194-eda4-db34-101a-891e7965e286.png)

ここも次へで。

> ![a2f285ee52203ef26828b4bf4a336168.png](https://qiita-image-store.s3.amazonaws.com/0/28292/f4056eb6-55dc-f748-5092-3b994081f6e8.png)

この画面が表示されたら、 PC で次の URL を 開いてください。

- https://developer.microsoft.com/Xboxactivate

> ![e65fca40702fc9559a7f4c9390e7512f.png](https://qiita-image-store.s3.amazonaws.com/0/28292/484a773a-efd4-d4e6-3a3d-21f6f16d4162.png)

PC 上で次の画面が開いたら、 Xbox One に表示されているコードを入力します。

> ![791ba82ad3acbf182ab1ff1fa889e2eb.png](https://qiita-image-store.s3.amazonaws.com/0/28292/5809a20f-6038-0d3d-de39-b3e6345b3f55.png)

PC でコードを入力して、 "Agree and activate" をクリックすると、 Xbox One の画面が自動的に次のように切り替わります。

> ![bb79b1025eb2a014bc649421a10aad83.png](https://qiita-image-store.s3.amazonaws.com/0/28292/b8e91cc7-8947-421b-b887-72cedb5486d0.png)

有効化できたら、 Xbox One 側で次の画面が表示されます。 "切り替えて再起動" を押してください。
(開発モードへ切り替える時の再起動は少し時間がかかるようです)

注意点: 開発モードに切り替えると、通常モードでインストールされたゲームやアプリが使えなくなります。開発モードを再度無効に切り替えると、元に戻ります。

> ![b2053c584f0f1c8b5b31c864214e6c1c.png](https://qiita-image-store.s3.amazonaws.com/0/28292/fa6d13a8-d63c-c095-e39d-30c6309f9b93.png)

開発モードで起動できたら、ホーム画面の右に表示されている "DEV HOME" を起動します。

> ![73235f43f6cb6ec6211423eab95b1be8.png](https://qiita-image-store.s3.amazonaws.com/0/28292/22351ee7-f1d7-96cd-6141-dc97b9311511.png)

次の画面が表示されたら、 Xbox One の準備はいったん完了です。

> ![bdcc046ab46a2d7827c82b8256cfc0ab.png](https://qiita-image-store.s3.amazonaws.com/0/28292/1e5bf422-7855-b60e-ad1d-12ed11b61ce2.png)

## 3. Unity でアプリをビルドする

Unity で適当なプロジェクトを開いてください。
複雑な Unity アプリは動かすのに苦労する可能性もあるため、ここではいったん、なるべく簡単なものを開く方が良いと思います。

プロジェクトが開いたら、メニューから File -> Build Settings を開きます。

- Platform: Windows Store
- SDK: Universal 10
- UWP Build Type: D3D
- Build and Run on: Local Machine

上記のように設定後、 Switch Platform をクリックしてください。
また、 Build Settings の "Scenes In Build" に、シーンファイルをドラッグしておいてください。
(注意点: UWP Build Type は XAML でも動かすことができますが、 Xbox One 上で表示する時、画面端に少し隙間が表示されてしまうようです。)

Player Settings の方は、追加の設定なしで動くと思います。
通信許可等の設定が必要な場合は、チェックをしておいた方が良いかもしれません。
(スマホアプリのように、許可された機能だけが動くようになっているようです。)

> ![adf61929df8b8909a43e633fa18b0133.png](https://qiita-image-store.s3.amazonaws.com/0/28292/a01ffe60-5f62-7d65-ae79-07eca78cdeba.png)


ここまで設定できたら、 Build Settings の画面で "Build" ボタンを押してください。
出力先のフォルダの名前はなんでもいいですが、ひとまず XboxOne にしておきます。

> ![21bbfae1f066b02f41bb0edb7f88ff31.png](https://qiita-image-store.s3.amazonaws.com/0/28292/dfc96389-0d8a-6c1b-956f-541d58646314.png)

しばらく待つと、上で選択したフォルダの中に Visual Studio 用のプロジェクトファイル等が作成されます。
出力されるファイルとフォルダの構成は、おおよそ次のような感じになります。

- XboxOne
  - [Project Name]/
  - Players/
  - Unity/
  - [Project Name].sln
  - UnityCommon.props
  - UnityOverwrite.txt

## 4. Unity でビルドしたアプリを Visual Studio 2015 で開く

Unity で出力先に設定したフォルダの中の、 [Project Name].sln のファイルを Visual Studio で開きます。
Visual Studio が起動したら、メニューから "プロジェクト" -> "[Project Name] のプロパティ" を開きます。
デバッグタブを開き、 ARM になっているところを x64 に切り替えます。

> ![2fde9fcdbcf608664b6193b10789c22c.png](https://qiita-image-store.s3.amazonaws.com/0/28292/fb4b37c7-4e53-2566-92b6-334ac3a46f85.png)

次に、開始オプションのターゲットデバイスを、 "ローカルコンピューター" から "リモートコンピューター" へ切り替えます。
その後、検索ボタンをクリックしてください。

> ![0d97f9a846e037ac783ed5c132ddcd50.png](https://qiita-image-store.s3.amazonaws.com/0/28292/8946ca6e-b081-80c8-d0eb-1988ab11565e.png)

自動的に LAN 内から Xbox One が見つかった場合は、次のような画面になります。
選択をクリックしてください。

"自動検出" のところに何も表示されない場合は、"手動で構成" のところに Xbox One の IP アドレスを入力します。
(Xbox One の IP アドレスは、 DEV HOME の左上に表示されます。)

> ![21c6889caa55436e6c424a8fcbbabe57.png](https://qiita-image-store.s3.amazonaws.com/0/28292/1e561670-1f80-dd05-609d-72b99d08dfbb.png)

## 5. Visual Studio 2015 でビルド後、 Xbox One 上で実行する

"x64"、 "リモートコンピューター" になっていることを確認して、実行ボタンをクリックしてください。

> ![2c9f568979222890ee3d07f274b6b76e.png](https://qiita-image-store.s3.amazonaws.com/0/28292/40f54e13-b793-52c3-671b-8aafe3001894.png)

次のダイアログが表示されたら、今度は Xbox One の画面の方を操作します。

> ![ab5b1773c65b564cb05c4c86de2bed6b.png](https://qiita-image-store.s3.amazonaws.com/0/28292/12653443-bb03-3779-6910-3720e59fc2ba.png)

DEV HOME の画面から、 "Pair with Visual Studio" を押してください。

> ![ff72f51cd241f15a3c2c7e33e166d32d.png](https://qiita-image-store.s3.amazonaws.com/0/28292/a6f26072-f55f-7ac7-6fee-399d950642a8.png)

Xbox One の画面に表示されているコードを PC のダイアログに入力して、 OK をクリックしてください。

> ![f7ebef94ebaa01ff680c79b6bc778b36.png](https://qiita-image-store.s3.amazonaws.com/0/28292/ac7b5ce1-2d88-a438-5237-d810594952da.png)

問題が発生しなければ、そのまま PC でビルドが進んでいきます。
Xbox One の方は "Close" を押しておいてください。

初回ビルド時は 2 ～ 3 分待つと Xbox One 上に転送され、実行されます。
Xbox One の画面上で、 Unity アプリが表示されたら完了です！

> ![b59e188d5c5964c79f435ddae088fe79.png](https://qiita-image-store.s3.amazonaws.com/0/28292/0d0fcea4-315b-e4be-caa6-7da13c051de8.png)

Xbox One のコントローラで、 真ん中の大きい X ボタンを押すとホームに戻ります。
Visual Studio で停止ボタンを押しても止めることができます。

※ 問題が発生して先に進めない場合は、コメント頂けると解決案を提示できるかもです。

## 参考 URL

- [Xbox の開発環境に UWP を設定する](https://msdn.microsoft.com/ja-jp/windows/uwp/Xbox-apps/development-environment-setup)
- [Xbox One 開発者モードのアクティブ化](https://msdn.microsoft.com/ja-jp/windows/uwp/Xbox-apps/devkit-activation)
- [Xbox One 開発者モードの非アクティブ化](https://msdn.microsoft.com/ja-jp/windows/uwp/Xbox-apps/devkit-deactivation)
- [Unity ゲームの Xbox One への移行](https://msdn.microsoft.com/ja-jp/windows/uwp/Xbox-apps/development-lanes-unity)