この記事は Andrew Giugliano による Google Play の記事 "Creating an instant game with Google Play Instant and Unity" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。
![]()
2018 年 3 月に Google Play Instant が初めて発表されてから、ゲーム デベロッパーの皆さんはすぐにプレーヤーをゲームに引き込めるエクスペリエンスを作れるようになりました。インスタント ゲームを見つけてアクセスする方法は、Google Play の 「今すぐ試す」 ボタンから、共有リンクまで、たくさんあります。新しいプレーヤーを見つけてゲームを見てもらうのは、ますます簡単になっています。このブログ投稿では、Unity を使って本番環境で利用できるインスタント ゲームをゼロから作る方法を紹介します。それと合わせて、インスタント ゲームを利用するメリットについても説明します。
Google Play Instant を使うと、次の理由によりゲームのレベルを引き上げることができます。
![]()
1. 見つけやすくなる
Google Play Instant を使うと、プレーヤーが皆さんのゲームを見つけやすく、そして試しやすくなります。「インストール」ボタンの横に「今すぐ試す」 ボタンが表示されるので、クリック 1 回だけで Google Play ストアからゲームを起動できます。モバイルサイトのウェブバナーも直接インスタント ゲームにリンクしているので、それをタップして起動することもできます。
![]()
それだけではありません。ユーザーは、Google 検索、ソーシャル メディア、メッセージ、メールなどの他のプラットフォームで共有したリンクからインスタント ゲームを試すこともできます。
![]()
インスタント ゲームは、さまざまなメディアから起動可能です。 ![]()
2. インストール数が増える
プレーヤーはインストールしなくてもゲームを試せるので、気軽にプレイしてみることができます。インスタント ゲームのユーザーは、ゲームがダウンロードされるのを待ったり、端末のストレージ領域を使うのに値するゲームかを判断したりする必要はありません。その代わり、ゲームの一番いい部分を試してもらい、ゲームを離れることなく完全版をインストールできるようにします。
![]()
3. 継続率が長くなる
Google Play Instant では、プレーヤーにゲームに触れてもらうことで、インストールする価値があることを納得してもらえるようになります。そのため、アプリをダウンロードした直後にアンインストールするプレーヤーは減るはずです。ダウンロードしたユーザーがゲームを楽しむ可能性も高くなり、ゲームをダウンロードするプレーヤーの数が増える助けにもなるでしょう。
ゲーム デベロッパーは、インスタント ゲームと既存のインストール版ゲームの違いを既に目の当たりにしています。
![]()
ステップ 1: 作業環境をセットアップする
インスタント ゲームを作り始める前に、チェックリストを使って必要なものがすべてそろっているかを確認します。
![]()
ステップ 2: インスタント ゲームをビルドしてテストする
次に、既存のゲームをインスタント ゲームに変換します。サイズの削減など、今後のインスタント化について心配する必要はまだありません。ここでは、処理の具体例を見ることが目的です。
![]()
1: Play Instant の [Build Settings] の場所
2. ビルド設定のポップアップで、[Android Build Type] を [Instant] に設定します。
![]()
2: Play Instant Build Settings の設定
3. [PlayInstant] → [Player Settings]を選択します。プレーヤー設定のポップアップで、以下の手順を実行します。
![]()
3: Play Instant Player Settings の設定
4. インスタント アプリの設定が完了したところで、[PlayInstant] → [Build and Run]を選択し、接続している端末で起動します。
![]()
ステップ 3: 内部テストトラックにアップロードする
直前のステップで作成したインスタント ゲームを内部テストトラックにアップロードします。内部テストトラックでは、最大 100 名の選択した内部ユーザーが Play ストアからインスタント ゲームをテストできます。繰り返しますが、内部テストトラックにアップロードする場合、インスタント ゲームが 13.5 MB の制限を下回っている必要はありません。
![]()
Google Play Console でインスタント アプリのリリースを管理
注: アプリにアクセスできるように、内部アプリ テスターのリストは正しく設定してください。この設定は、[App releases] → [Instant app internal test] → [Manage Testers]で変更できます。
![]()
ステップ 4: 13.5 MB の制限に収まるようにサイズを減らす
インスタント ゲームを構築する技術的側面については理解していただけたと思います。次は、どのような外観になるのかを考えつつ、サイズを減らすことに着手します。ゲームのサイズが大きくても、心配することはありません。350 MB 以上のゲームでも、インスタント ゲームとして起動できます。以下では、サイズを 13.5 MB 未満に減らす際に役立つテクニックを紹介します。
プレーヤー設定を最適化する
先ほども見たように、[PlayInstant] → [Player Settings]では、ゲームのサイズを減らすために推奨されるたくさんの変更点が提案されます。ゲームのサイズを減らすために、次のようなアップデートを行います。
ゲーム全体をインスタント アプリに収めようとしてはいけません。インスタント ゲームでは、チュートリアルやいくつかのおもしろいレベルなど、プレーヤーに完全な体験のほんの触りだけを提供するようにします。テクスチャ、モデル、イメージ、オーディオ クリップなど、ゲームのプレイに重要ではない不要なコンテンツは削除します。
最後に、以下を減らすことでアセットをさらに圧縮します。
Asset Bundle を使う
Asset Bundleを使うと、インスタント ゲームの実行中にアセットを動的に読み込めます。アセットが実行時までダウンロードされないようにすれば、13.5 MB の制限には含まれなくなります。これは、ゲーム デベロッパーがインスタント ゲームのサイズを減らす際に使う一般的な手法です。そのために必要になる主なコンポーネントは、以下の 3 つです。
注: Asset Bundle はいくつでも使えますが、それぞれの Asset Bundle のサイズは 15 MB 未満である必要があります。
1. [PlayInstant] → [Quick Deploy]を選択します。
2. [Bundle Creation] タブを選択し、動的に提供するシーンを選びます。選び終えたら、下の [Build AssetBundle] を選択し、結果のファイルをウェブサーバーや CDN にアップロードします。
![]()
2: AssetBundle に含めるシーンの選択
3. [Loading Screen] タブを選択し、Asset Bundle に関連付ける URL と、読み込み画面で使用する背景テクスチャを設定します。(デフォルトのものも、よくできています。)完了したら、[Create Loading Scene] を選択します。
![]()
3: AssetBundle URL と読み込みシーンの設定
これで、Asset Bundle を読み込む画面ができたはずです。どうやって実現しているのかを知りたい場合や、カスタマイズしたい場合は、Unity が自動生成したカスタム スクリプトをご覧ください。新しい読み込み画面シーンの中にあります。
![]()
ステップ 5: ユーザーをインスタント版からインストール版にコンバージョンする
最後に、プレーヤーがインスタント ゲームから完全版のゲームにコンバージョンできる仕組みを構築する必要があります。必要であれば、コンバージョンの際にプレーヤーのデータを転送することもできます。これには、Google Play Instant Plugin for Unity に含まれている Cookie API を使います。
インスタント アプリからインストール版アプリにアップグレードする
インスタント ゲームは、プレーヤーが完全版のゲームをインストールする方法を提供する必要があります。これには、操作の邪魔にならないようなプロンプトやボタンなどを使います。プレーヤーが完全版のゲームをインストールするときは、Play Instant Plugin が提供する ShowInstallPrompt メソッドを呼び出し、Google Play にインストール操作を任せます。
状況によっては、プレーヤーがインストール版のアプリにコンバージョンする際に、インスタント版の情報を引き継ぐ必要があるかもしれません。たとえば、次のような場合が考えられます。
1. CookieApi.SetInstantAppCookie を呼び出し、インスタント ゲームに文字列データを書き込みます。
2. インストール版のゲームで CookieApi.GetInstantAppCookie を呼び出し、文字列データを取得します。
今回紹介した手順で、Google Play Instant でゲームを作成する過程がおわかりいただけたかと思います。さらにサポートが必要な方は、インスタント ゲームに関するその他のリソースやドキュメント、よくある質問をご覧ください。インスタント アプリについての詳しい情報は、こちらから参照できます。
Reviewed by Hak Matsuda - Developer Relations Team
2018 年 3 月に Google Play Instant が初めて発表されてから、ゲーム デベロッパーの皆さんはすぐにプレーヤーをゲームに引き込めるエクスペリエンスを作れるようになりました。インスタント ゲームを見つけてアクセスする方法は、Google Play の 「今すぐ試す」 ボタンから、共有リンクまで、たくさんあります。新しいプレーヤーを見つけてゲームを見てもらうのは、ますます簡単になっています。このブログ投稿では、Unity を使って本番環境で利用できるインスタント ゲームをゼロから作る方法を紹介します。それと合わせて、インスタント ゲームを利用するメリットについても説明します。
Google Play Instant を使うと、次の理由によりゲームのレベルを引き上げることができます。
1. 見つけやすくなる
Google Play Instant を使うと、プレーヤーが皆さんのゲームを見つけやすく、そして試しやすくなります。「インストール」ボタンの横に「今すぐ試す」 ボタンが表示されるので、クリック 1 回だけで Google Play ストアからゲームを起動できます。モバイルサイトのウェブバナーも直接インスタント ゲームにリンクしているので、それをタップして起動することもできます。
それだけではありません。ユーザーは、Google 検索、ソーシャル メディア、メッセージ、メールなどの他のプラットフォームで共有したリンクからインスタント ゲームを試すこともできます。
2. インストール数が増える
プレーヤーはインストールしなくてもゲームを試せるので、気軽にプレイしてみることができます。インスタント ゲームのユーザーは、ゲームがダウンロードされるのを待ったり、端末のストレージ領域を使うのに値するゲームかを判断したりする必要はありません。その代わり、ゲームの一番いい部分を試してもらい、ゲームを離れることなく完全版をインストールできるようにします。
3. 継続率が長くなる
Google Play Instant では、プレーヤーにゲームに触れてもらうことで、インストールする価値があることを納得してもらえるようになります。そのため、アプリをダウンロードした直後にアンインストールするプレーヤーは減るはずです。ダウンロードしたユーザーがゲームを楽しむ可能性も高くなり、ゲームをダウンロードするプレーヤーの数が増える助けにもなるでしょう。
ゲーム デベロッパーは、インスタント ゲームと既存のインストール版ゲームの違いを既に目の当たりにしています。
- Hothead Gamesは、Mighty Battles というゲームでのユーザー獲得数を 19% 以上増やしました。
- Kingは、Bubble Witch 3 Saga というゲームでユーザー獲得数を増やしました。
- Jam Cityは、Panda Pop で質の高いプレーヤーを見つけることができました。
- Playtikaは、新しいプレーヤーを見つけ、ユーザーの維持率と収益を向上させました。
Unity ゲームに Google Play Instant を組み込むのは、どのくらい簡単ですか?
インスタント ゲームを開発して内部テストトラックに公開するのは、ほんの数時間でできる作業です。内部トラックでは、Unity で構築したゲームの制限である 13.5 MB を超えていても、インスタント ゲームのテストや内部公開が可能です。Play ストアに「今すぐ試す」 ボタンも表示されます。内部トラックで公開した後、デベロッパーは次のようなことに重点を置いています。- インスタント ゲームの見栄えを決める
- インスタント ゲームのサイズを減らし、13.5 MB(Unity で構築したインスタント ゲームの制限)を超えないようにする
- ユーザーの安全を守るためのサンドボックス要件やパーミッションにうまく対応できることを確認するため、インスタント ゲームのテストや QA を行う(違うバージョンの Android OS、少なくとも Nougat と Oreo でテストすることをお勧めしています)
次にやることは何ですか?
インスタント ゲームは、5 つのステップで作成します。ステップ 1: 作業環境をセットアップする
インスタント ゲームを作り始める前に、チェックリストを使って必要なものがすべてそろっているかを確認します。
- Unity 5.6 以降(リリース 2017.4 以降を推奨)
- Google Play Instant Plugin for Unity(アセットストア)(ソース)
- Android 5.0(Lollipop)以降を実行しており、デベロッパー モードと USB デバッグを有効にした Android 端末(物理端末または仮想端末)
- 会社の APK ソースコードへのアクセス(デバッグおよびリリースバージョンをビルドするため)
- Google Play Console の内部テストトラックの設定
- Unity Development Betaへの登録(本番リリースに必須)
ステップ 2: インスタント ゲームをビルドしてテストする
次に、既存のゲームをインスタント ゲームに変換します。サイズの削減など、今後のインスタント化について心配する必要はまだありません。ここでは、処理の具体例を見ることが目的です。
- [PlayInstant] → [Build Settings]を選択します。
2. ビルド設定のポップアップで、[Android Build Type] を [Instant] に設定します。
- 既に Digital Asset Linkを設定している場合を除き、[Instant Apps URL] フィールドは空欄のままにします。
- 必要に応じて、[Override Scene] フィールドに使いたい別のシーンを指定することもできます。
- Asset Bundleを使っている場合は、[AssetBundle Manifest] フィールドで適切なマニフェスト ファイルを指定します。
- 設定が終わったら、[Save] をクリックします。
3. [PlayInstant] → [Player Settings]を選択します。プレーヤー設定のポップアップで、以下の手順を実行します。
- インスタント アプリを実行する前に、[Required changes] リストの項目の横にある [Update] ボタンをクリックして設定を修正します。
- [Recommended changes] にある設定も更新することをお勧めします。ここには主に、サイズを減らすための項目があります。
- 完了したら、ポップアップを閉じます。
4. インスタント アプリの設定が完了したところで、[PlayInstant] → [Build and Run]を選択し、接続している端末で起動します。
ステップ 3: 内部テストトラックにアップロードする
直前のステップで作成したインスタント ゲームを内部テストトラックにアップロードします。内部テストトラックでは、最大 100 名の選択した内部ユーザーが Play ストアからインスタント ゲームをテストできます。繰り返しますが、内部テストトラックにアップロードする場合、インスタント ゲームが 13.5 MB の制限を下回っている必要はありません。
- [PlayInstant] → [Build for Play Console]を選択します。
- Google Play Consoleに移動し、対象のアプリを選択して [Android Instant Apps] タブを開きます。
- [Instant app internal test] を選び、そのページの手順に従ってステップ 1 で作成したファイルをアップロードします。詳しくは、インスタント アプリのリリースについてのガイドをご覧ください。
注: アプリにアクセスできるように、内部アプリ テスターのリストは正しく設定してください。この設定は、[App releases] → [Instant app internal test] → [Manage Testers]で変更できます。
ステップ 4: 13.5 MB の制限に収まるようにサイズを減らす
インスタント ゲームを構築する技術的側面については理解していただけたと思います。次は、どのような外観になるのかを考えつつ、サイズを減らすことに着手します。ゲームのサイズが大きくても、心配することはありません。350 MB 以上のゲームでも、インスタント ゲームとして起動できます。以下では、サイズを 13.5 MB 未満に減らす際に役立つテクニックを紹介します。
プレーヤー設定を最適化する
先ほども見たように、[PlayInstant] → [Player Settings]では、ゲームのサイズを減らすために推奨されるたくさんの変更点が提案されます。ゲームのサイズを減らすために、次のようなアップデートを行います。
- Mono ビルドでコード ストリッピングを利用する
- グラフィック API を OpenGLES2 のみにする
- IL2CPP ビルドでエンジン ストリッピングを有効にする
ゲーム全体をインスタント アプリに収めようとしてはいけません。インスタント ゲームでは、チュートリアルやいくつかのおもしろいレベルなど、プレーヤーに完全な体験のほんの触りだけを提供するようにします。テクスチャ、モデル、イメージ、オーディオ クリップなど、ゲームのプレイに重要ではない不要なコンテンツは削除します。
最後に、以下を減らすことでアセットをさらに圧縮します。
- テクスチャの解像度
- 3D モデルのポリゴン数
- オーディオの質
Asset Bundle を使う
Asset Bundleを使うと、インスタント ゲームの実行中にアセットを動的に読み込めます。アセットが実行時までダウンロードされないようにすれば、13.5 MB の制限には含まれなくなります。これは、ゲーム デベロッパーがインスタント ゲームのサイズを減らす際に使う一般的な手法です。そのために必要になる主なコンポーネントは、以下の 3 つです。
- インスタント ゲームのシーンから作成した Asset Bundle
- Asset Bundle をバックグラウンドから取得していることを知らせるユーザー フレンドリーな読み込み画面
- Asset Bundle を置いておくウェブサーバーまたはコンテンツ配信ネットワーク(CDN)
注: Asset Bundle はいくつでも使えますが、それぞれの Asset Bundle のサイズは 15 MB 未満である必要があります。
1. [PlayInstant] → [Quick Deploy]を選択します。
2. [Bundle Creation] タブを選択し、動的に提供するシーンを選びます。選び終えたら、下の [Build AssetBundle] を選択し、結果のファイルをウェブサーバーや CDN にアップロードします。
3. [Loading Screen] タブを選択し、Asset Bundle に関連付ける URL と、読み込み画面で使用する背景テクスチャを設定します。(デフォルトのものも、よくできています。)完了したら、[Create Loading Scene] を選択します。
これで、Asset Bundle を読み込む画面ができたはずです。どうやって実現しているのかを知りたい場合や、カスタマイズしたい場合は、Unity が自動生成したカスタム スクリプトをご覧ください。新しい読み込み画面シーンの中にあります。
ステップ 5: ユーザーをインスタント版からインストール版にコンバージョンする
最後に、プレーヤーがインスタント ゲームから完全版のゲームにコンバージョンできる仕組みを構築する必要があります。必要であれば、コンバージョンの際にプレーヤーのデータを転送することもできます。これには、Google Play Instant Plugin for Unity に含まれている Cookie API を使います。
インスタント アプリからインストール版アプリにアップグレードする
インスタント ゲームは、プレーヤーが完全版のゲームをインストールする方法を提供する必要があります。これには、操作の邪魔にならないようなプロンプトやボタンなどを使います。プレーヤーが完全版のゲームをインストールするときは、Play Instant Plugin が提供する ShowInstallPrompt メソッドを呼び出し、Google Play にインストール操作を任せます。
using GooglePlayInstant;
…
public void install() {
InstallLauncher.ShowInstallPrompt();
}インストール版にアップグレードするときにデータを永続化する(オプション)
状況によっては、プレーヤーがインストール版のアプリにコンバージョンする際に、インスタント版の情報を引き継ぐ必要があるかもしれません。たとえば、次のような場合が考えられます。
- プレーヤーがゲーム内アイテムを購入した場合、レベルアップした場合、キャラクターをカスタマイズした場合
- インスタント ゲームがインストール版アプリのチュートリアルと同じで、プレーヤーが完全版をインストールしたときにチュートリアルをスキップできるようにしたい場合
- インスタント ゲームからインストール版ゲームにコンバージョンしたプレーヤーに報酬を与えたい場合
1. CookieApi.SetInstantAppCookie を呼び出し、インスタント ゲームに文字列データを書き込みます。
using GooglePlayInstant;
…
public void StoreData(string data) {
CookieApi.SetInstantAppCookie(data);
}
2. インストール版のゲームで CookieApi.GetInstantAppCookie を呼び出し、文字列データを取得します。
using GooglePlayInstant;
…
var data = CookieApi.GetInstantAppCookie(data);
今回紹介した手順で、Google Play Instant でゲームを作成する過程がおわかりいただけたかと思います。さらにサポートが必要な方は、インスタント ゲームに関するその他のリソースやドキュメント、よくある質問をご覧ください。インスタント アプリについての詳しい情報は、こちらから参照できます。
Reviewed by Hak Matsuda - Developer Relations Team