こんにちは@dan5yaです。この投稿はRPGツクールMVアドベントカレンダー20日目の記事です。
RPGツクールMVではiOS、Android向けのゲームを作れるようになりました。つまりRPGツクールで作ったゲームをApp StoreにリリースしてiPhoneで遊んでもらうなんてことができるようになりました。他のスマホアプリ同様、App StoreやGoogle Playでゲームを公開すれば個人でもマネタイズができてしまうわけです。
マネタイズの方法はいくつかありますが、導入が容易で効果の高い方法として動画広告があります。動画広告とRPGツクールMVを組み合わせれば、無料ゲームをストアに公開して、広告で収入を得るということが可能になります。

人気のある動画広告サービスのひとつにUnity Adsがあります。
Unity Adsは扱いやすくて収益性の高い動画広告として注目されています。Unity AdsはUnity向けの動画広告であると同時に、Unity以外のアプリにも組み込む手段が用意されています。

というわけで、RPGツクールMVでUnity Adsを使うiOS用プラグインを書いてみました。
ここではRPGツクールMVで作ったiOSアプリにUnity Adsを組み込む方法を紹介します。
#プラグイン「UnityAdsMV」のダウンロード
UnityAdsMVというプラグインを作成しました。GitHubで公開しています。ライセンスはMITにしてあるので商用アプリでも自由に使うことが可能です。
iOSにのみ対応しています。
#UnityAdsMVプラグインをMVのプロジェクトに追加
上記URLからダウンロードしたUnityAdsMV.jsをRPGツクールMVで作成したプロジェクト内のjs/pluginsにコピーしてください。
コピーしたら「プラグイン管理」からUnityAdsMVを有効にします。
#UnityAdsMVを呼び出すイベントを作成する
サンプルとして、プレイヤーにリワードビデオ広告を見せて、見終わったら100ゴールドをプレゼントするというイベントを作ってみましょう。
こんな感じでイベントを組みます。


リワードビデオが読み込まれていればそれを表示し、ない場合は「Adはありません。」というメッセージを表示して終わります。
試しにエディタ環境でゲームを起動して配置したNPCに話しかけてみてください。「Adはありません。」と表示されます。これはiOSやAndroidでゲームを起動しないと広告を読み込むことができないためです。
とりあえずはこれでOKです。iOSアプリとして起動する手順を以下に示します。
#iOSアプリビルド環境のセットアップ
RPGツクールMVに付属するヘルプの「iOSアプリへの変換」にしたがって、iOSアプリの作成環境を準備してください。以降は準備が終わっていることを前提にします。
手元の開発環境は以下の通りです。
- ツクール ... RPG Maker MV 1.0.1(英語版)
- node ... v0.12.0
- cordova ... 5.4.0
- Xcode ... 7.1.1
#cordovaでプロジェクト作成
ターミナルで下記を実行します。
cordova create UnityAdsSample com.example.UnityAdsSample UnityAdsSample
cd UnityAdsSample
cordova platform add iOS
#cordova-plugin-ad-unityadsをインストール
cordova上にUnity Adsを組み込むためのプラグイン、cordova-plugin-ad-unityadsが公開されています。
ターミナルで下記コマンドを実行するだけでcordova-plugin-ad-unityadsをインストールできます。
cordova plugin add cordova-plugin-ad-unityads
#cordovaプロジェクトをビルド
あとはヘルプの「iOSアプリへの変換」にある手順でcordovaプロジェクトをビルドするだけです。念のためその手順を書いておきます。
ツクールMVからゲームをAndroid / iOS向けにデプロイメントします。UnityAdsSampleのwwwフォルダをデプロイメントしたwwwフォルダと差し替えます。
RPGツクールMVヘルプにしたがって下記2ファイルを編集します。
- www/index.htmlに追記
- config.xmlに追記


上記をファイルを編集したのち下記コマンドでビルドします。
cordova build
#動作確認
シミュレータでAdsの表示テストを行うことができます。以下のコマンドでシミュレータを起動できます。
cordova emulate iOS




Xcodeを開いてビルドするには以下のコマンドを実行します。
open platforms/ios/UnityAdsSample.xcodeproj
#UnityAdsMVプラグインに設定するパラメータ
実際にリリースする前に下記パラメータをプラグイン管理から設定してください。各パラメータの意味についてはUnity Adsのドキュメントを確認してください。
- gameId
- videoAdPlacementId
- rewardedVideoAdPlacementId
- isTest ... テスト時はtrueを本番環境ではfalseを設定
#UnityAdsMVプラグインで使えるAPIについて
UnityAdsMVプラグインで使えるAPIには以下のものがあります。下記APIをイベントからスクリプトとして実行できます。
- UnityAdsMV.loadedRewardedVideoAd() ... リワードビデオ広告の有無をチェック
- UnityAdsMV.showRewardedVideoAd() ... リワードビデオ広告を表示開始
- UnityAdsMV.isShowing() ... 広告表示中かどうかをチェック
今回はサンプルをシンプルに示すために使用しませんでしたが、厳密にリワードの取得を管理する場合は下記APIを用いて取得の有無を確認した上、プレイヤーに報酬を与えたのちリワードをクリアしてください。
- UnityAdsMV.hasReward() ... リワードを得ているかどうかチェック
- UnityAdsMV.clearReward() ... リワードをクリア
またリワードではない動画を再生するには次のAPIを使います。
- UnityAdsMV.loadedVideoAd() ... 広告の有無をチェック
- UnityAdsMV.showVideoAd() ... ビデオ広告を表示開始
#動作サンプル
ストアにアプリをリリースできたら公開します。