Quantcast
Channel: Google Developers Japan
Viewing all articles
Browse latest Browse all 2209

Google Play Instant と Unity でインスタント ゲームを作成する

$
0
0
この記事は 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 では、プレーヤーにゲームに触れてもらうことで、インストールする価値があることを納得してもらえるようになります。そのため、アプリをダウンロードした直後にアンインストールするプレーヤーは減るはずです。ダウンロードしたユーザーがゲームを楽しむ可能性も高くなり、ゲームをダウンロードするプレーヤーの数が増える助けにもなるでしょう。
ゲーム デベロッパーは、インスタント ゲームと既存のインストール版ゲームの違いを既に目の当たりにしています。
これはほんの一部にすぎません。Google Play Instant で成功を収めているその他のデベロッパーについてもご覧ください。

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: インスタント ゲームをビルドしてテストする
次に、既存のゲームをインスタント ゲームに変換します。サイズの削減など、今後のインスタント化について心配する必要はまだありません。ここでは、処理の具体例を見ることが目的です。
  1. [PlayInstant] → [Build Settings]を選択します。


1: Play Instant の [Build Settings] の場所

2. ビルド設定のポップアップで、[Android Build Type] を [Instant] に設定します。
  • 既に Digital Asset Linkを設定している場合を除き、[Instant Apps URL] フィールドは空欄のままにします。
  • 必要に応じて、[Override Scene] フィールドに使いたい別のシーンを指定することもできます。
  • Asset Bundleを使っている場合は、[AssetBundle Manifest] フィールドで適切なマニフェスト ファイルを指定します。
  • 設定が終わったら、[Save] をクリックします。


2: Play Instant Build Settings の設定

3. [PlayInstant] → [Player Settings]を選択します。プレーヤー設定のポップアップで、以下の手順を実行します。
  • インスタント アプリを実行する前に、[Required changes] リストの項目の横にある [Update] ボタンをクリックして設定を修正します。
  • [Recommended changes] にある設定も更新することをお勧めします。ここには主に、サイズを減らすための項目があります。
  • 完了したら、ポップアップを閉じます。


3: Play Instant Player Settings の設定

4. インスタント アプリの設定が完了したところで、[PlayInstant] → [Build and Run]を選択し、接続している端末で起動します。



ステップ 3: 内部テストトラックにアップロードする
直前のステップで作成したインスタント ゲームを内部テストトラックにアップロードします。内部テストトラックでは、最大 100 名の選択した内部ユーザーが Play ストアからインスタント ゲームをテストできます。繰り返しますが、内部テストトラックにアップロードする場合、インスタント ゲームが 13.5 MB の制限を下回っている必要はありません
  1. [PlayInstant] → [Build for Play Console]を選択します。
  2. Google Play Consoleに移動し、対象のアプリを選択して [Android Instant Apps] タブを開きます。
  3. [Instant app internal test] を選び、そのページの手順に従ってステップ 1 で作成したファイルをアップロードします。詳しくは、インスタント アプリのリリースについてのガイドをご覧ください。


Google Play Console でインスタント アプリのリリースを管理

注: アプリにアクセスできるように、内部アプリ テスターのリストは正しく設定してください。この設定は、[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 モデルのポリゴン数
  • オーディオの質
詳しくは、インスタント ゲームの UX ベスト プラクティスをご覧ください。
Asset Bundle を使う
Asset Bundleを使うと、インスタント ゲームの実行中にアセットを動的に読み込めます。アセットが実行時までダウンロードされないようにすれば、13.5 MB の制限には含まれなくなります。これは、ゲーム デベロッパーがインスタント ゲームのサイズを減らす際に使う一般的な手法です。そのために必要になる主なコンポーネントは、以下の 3 つです。
  1. インスタント ゲームのシーンから作成した Asset Bundle
  2. Asset Bundle をバックグラウンドから取得していることを知らせるユーザー フレンドリーな読み込み画面
  3. Asset Bundle を置いておくウェブサーバーまたはコンテンツ配信ネットワーク(CDN)
次に、Google Play Instant Unity Plugin に含まれている Quick Deployツールを使い、最も短時間で Asset Bundle を利用する方法を紹介します。このツールを使うと、Asset Bundle(最初のコンポーネント)と、Asset Bundle を取得する読み込み画面(2 番目のコンポーネント)を作ってくれます。3 番目のコンポーネントについて言えば、HTTPS をサポートしてファイルを一般公開できる場所であれば、どこにでも Asset Bundle を配置できます。自分のサーバーでも、Google Cloud Storage でも、別のサードパーティ製 CDN でも構いません。
注: 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 にインストール操作を任せます。
using GooglePlayInstant;
public void install() {
    InstallLauncher.ShowInstallPrompt();
}
インストール版にアップグレードするときにデータを永続化する(オプション)
状況によっては、プレーヤーがインストール版のアプリにコンバージョンする際に、インスタント版の情報を引き継ぐ必要があるかもしれません。たとえば、次のような場合が考えられます。
  • プレーヤーがゲーム内アイテムを購入した場合、レベルアップした場合、キャラクターをカスタマイズした場合
  • インスタント ゲームがインストール版アプリのチュートリアルと同じで、プレーヤーが完全版をインストールしたときにチュートリアルをスキップできるようにしたい場合
  • インスタント ゲームからインストール版ゲームにコンバージョンしたプレーヤーに報酬を与えたい場合
Google Play Instant Plugin に含まれている Cookie API を使うことができます。次のようにすると、インストールの前後で文字列データを読み書きできます。

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

Viewing all articles
Browse latest Browse all 2209