RPGツクールMVのプロジェクトをAndroidで実機デバッグするためのTips


どうも、コキチーズです。

Node学園祭で伊予柑さんがやってたLTで興味が湧いてRPGツクールに手を出しました。
なのでツクールは初心者でしてまだゲームを作れてません。
このアドベントカレンダーでゲーム作りを勉強しようと思います。

さて、なんでツクールに興味を持ったのかというと
**マルチプラットフォームに対応** したからです。
ブラウザで動くので気軽に配信もできるしエディターそのものがOSXに対応しているのも魅力的です。
でも一番欲しいと思った理由はスマートフォンでツクールゲームが作れるし遊べるってところでした。
体験版を触らせてもらってデプロイはどんな感じかなと見てみたところzipで固めるかサーバーにアップロードするのが前提なようで
側アプリとして公開するには少し手間が必要そうです。

またデバッグ方法はnw.jsを起動して確認する方法なのでPC前提だけならいいのですが
日本では少し前からWebへのアクセスは半分以上がモバイル端末からのアクセスなようで
せっかくゲームを作るならスマートフォンからもちゃんと遊べるようにしたいところです。
なのでスマートフォンでのデバッグもしたいのでその時にやったことを共有しようと思います。

# 環境

Chrome 32以上
Android 4.0以上

僕の作業環境はOSXです。

# Web Serverを立ち上げる

Web serverの立ち上げ方はなんでも大丈夫です
OSXユーザーならターミナルを立ち上げてプロジェクトのディレクトリに移動して以下のコマンドでサーバーが立ち上がります。

```bash
ruby -run -e httpd . -p 8000
```

Windowsの人用に簡単に起動できるサーバーを用意しました。

https://github.com/k2wanko/go-dev-server/releases

ここからgo-dev-server_windows_386.exeをダウンロードして
プロジェクトフォルダーのindex.htmlと同じ場所においてダブルクリックするだけで起動できます。

後はサーバーを立ち上げたマシンのIPにアクセスするだけで実機で確認できます。

ですがここからはもう一歩踏み込んだことをやろうと思います。

例えば大学やオフィスなどのネットワーク環境では繋がらなかったり
セキュリティポリシーでlocalhostでしか使えないAPIやライブラリを使う場合の方法になります。

# Chromeでポートフォワーディングをする

ChromeにはAndroid Chromeにポートフォワーディングする機能があります。
これを利用することでUSB経由で実機でサーバーを見ることができます。

詳しくは[公式のドキュメント](https://developers.google.com/web/tools/chrome-devtools/debug/remote-debugging/remote-debugging?hl=en)(英語)にあります。

この機能を利用することでAndroidのChromeからはlocalhostとしてアクセスできるようになるし
Consoleを開いたりDOMの構造などを確認することもできます。

まぁConsoleやDOMの確認だけならテストプレイのゲーム画面でF8を押すことで開くことができます。

![スクリーンショット 2015-12-02 22.00.19.png](https://qiita-image-store.s3.amazonaws.com/0/15818/f4fe48ab-92b9-482a-8cd4-aae0ddac6ef8.png)
(こんなやつ)

## 環境について

ポートフォワーディングするにはAndroidの開発環境を構築する必要があります。

インストール方法は以下の記事を参考にしてください
画像付きなのでわかりやすいと思います。

[ゼロからわかるAndroid Studioインストール手順（Mac版）](https://thinkit.co.jp/story/2015/02/25/5644)
[ゼロからわかるAndroid Studioインストール手順（Windows版）](https://thinkit.co.jp/story/2015/02/26/5646)

Android SDKがインストールされた状態で
ターミナルもしくはコマンドプロンプトで

```bash
adb start-server
```

と打ち込んで実行します。

そして確認するためのAndroid端末は開発者モードにします。
やり方は[アプリケーション一覧]->[設定]->[端末情報]を開き
ビルド番号のところを連打すると開発者モードになります。
戻ると[開発者向けオプション]があるのでそこをクリックして
デバッグ欄のUSBデバッグのスイッチをONにします。

USBでパソコンと繋ぐと「USBデバッグを許可しますか？」とAndroidにダイアログが表示されます。
常に許可するにチェックを入れてOKを押しましょう。

再びターミナルかコマンドプロンプトに戻り以下のコマンドを実行してみます

```bash
adb devices
```

このコマンドを実行した後に`List of devices attached`の後にIDとその後にdeviceと表示されていればOKです。

## ポートフォワードの設定

Google Chromeを開き　アドレスバーに`chrome://inspect`と入力してinspectorを開きます。
左のDevToolsからDevicesを選択します。

![スクリーンショット 2015-12-02 23.09.41.png](https://qiita-image-store.s3.amazonaws.com/0/15818/e90fb881-8755-a2e7-0ce6-d26cab7dc801.png)


(この画面)

そして中央上にあるPort forwarding...と書いてるボタンを押すと画像のようなダイアログが出ます。

そしてPort forwarding settingsの欄についてですが
左側にパソコン側のポートを右側にAndroidからのアクセスするアドレスを書きます。

今回は新たに左に`8000`右に`localhost:8000`と追加しました。
Enable port forwardingにチェックをいれて[Done]ボタンを押してください。

![スクリーンショット 2015-12-02 23.09.13.png](https://qiita-image-store.s3.amazonaws.com/0/15818/2c63a2a6-61d2-f787-5b0b-fbe539917afc.png)


赤丸で囲ったテキストボックスに`localhost:8000`と入れて[open]ボタンを押すとAndroid側のChromeが立ち上がり開くことができます。

![スクリーンショット 2015-12-02 23.09.32.png](https://qiita-image-store.s3.amazonaws.com/0/15818/83b15483-1226-2a1d-3866-5b754b90f575.png)

この様にして動作確認ができます。

![Screenshot_20151202-225343.png](https://qiita-image-store.s3.amazonaws.com/0/15818/67d159cc-994d-7a43-b198-35afeb615ca9.png)


# まとめ

やっぱりゲームを作るならスマートフォンで遊べるものを作りたいので
モバイル端末での動作確認はしておきたいです。

ツクールのノウハウを今回はアドベントカレンダーということで書きましたが
今後もアドベントカレンダー関係なく得られた知見や試したことなど書いて共有していこうと思います。