小規模なゲームコンテンツやキャンペーンサイトを短期間で作る際、ゲームのログデータや設定ファイルなどのデータをオンライン上で管理したくなったことないですか? データベースやデータを書き込むサーバーを用意する手間を省きたい、そんなときに便利なライブラリを作成しましたので紹介します。Google Apps ScriptとFlashを通信させるまでの下準備のチュートリアルも兼ねていますので、Google Apps Scriptに触れたことが無い方はぜひ参考にしていただければと思います。

GASTの紹介

Googleスプレッドシートへデータの入出力ができるActionScript3.0のライブラリです。実際の通信はGoogleスプレッドシート上にGoogle Apps Scriptを設置することで行います。

GASTの機能と特徴

  1. スプレッドシートへのデータの書込み ・予めシートに定義した項目名をキーとして任意の文字列を追加する機能
  2. スプレッドシートからのデータの取得 ・JSON形式で出力 ・現状は指定した任意の1行の取得にのみ対応
  3. データ書込みの際、ログデータとして便利なユーザー情報を自動的に追加 (下記のデータが追加)
  • date:日付
  • OS:OSとバージョン
  • browser:ブラウザ名とバージョン
  • flashplayer:Flash Playerのバージョン
  • isDebugger:デバッグプレイヤーかどうか
  • lang:使用言語
  • cpu:CPUのタイプ
  • totalMemory:使用メモリ量(KB)
  • resX:ディスプレイサイズ幅(px)
  • resY:ディスプレイサイズ高さ(px)
  • stageW:ステージ幅(px)
  • stageH:ステージ高さ(px)
  • dpi:解像度

GASTの使い方

1. Googleスプレッドシートの作成とGoogle Apps Scriptの作成

まず始めにGoogleスプレッドシートの作成とGoogle Apps Scriptの下準備を行います。事前にGitHubからライブラリ一式をチェックアウトいただくか、適宜必要ファイルを参照してくださいませ。 必要なGoogle Apps Scriptファイル (ライブラリ内 apps-scriptフォルダ以下)

step1-2

Googleドキュメント上にスプレッドシートを作成、タブ名を「s0」(任意の英数字)に変更後、「ツール」→「スクリプトエディター」をクリックして、スクリプトエディターウィンドウを開きます。 次に「Google Apps Scriptファイル」を作成します。「ファイル」→「新規作成」→「スクリプトファイル」をクリック、GASTライブラリに必要なスクリプトをコピー&ペーストしていきます。

step1-3

スクリプトの初期設定を行います。main.gs のスクリプト中にあるシートIDを設定します。例えば、スプレッドシートがこのようなURLだった場合、https://docs.google.com/spreadsheets/d/XXXXX/edit#gid=0 「XXXXX」の部分がシートIDになります。ここまででGoogleスプレッドシートの作成とGoogle Apps Scriptの下準備が完了しました。

2. Googleスプレッドシート上でのデータ追加のテスト

Flashから接続する前に、Googleスプレッドシート上で通信テストを行います。最初にデータの追加テストをしてみましょう。

step2-1

test.gs を開き、関数選択メニューから「appendTest」をクリック。

step2-2_2

アプリ承認ウィンドウが開くので「承認する」をクリック。

step2-3

承認完了後、再生ボタンでスクリプトを実行。(appendTest関数が実行されます。)

step2-4

シートに戻ると「none」という文字列が追加されていると思います。(※これはライブラリの想定通りの動作です)

step2-5

1行目に図のような「項目名」を設定して再度スクリプトを実行してみましょう。

step2-6

正しく設定できていれば、上図のような結果となります。今回用意したappendTest関数はシート上にある項目名の箇所にテスト用のデータを追加する関数です。(シート上に設定した項目名を「キー」としてデータを追加できる機能がライブラリのメイン機能であるためそのテストを行いました。)

step2-7

スプレッドシートなのでグラフも作成でき、自動的に更新されます。

3. Googleスプレッドシート上でのデータ取得のテスト

今度はデータを取得するテストを行います。

step3-1

test.gs を開き、関数選択メニューから「fetchTest」をクリック。

step3-2

ログウィンドウを開き、スプレッドシートから取得したデータが出力されれば成功です。ここまでで、Googleスプレッドシート上でのGoogle Apps Scriptを用いてデータの追加と取得までを行いました。

4. Webアプリケーションとして公開する

FlashからGoogleスプレッドシートにアクセスするには、スクリプトをWebアプリケーションとして公開する必要があります。

step4-1

「公開」→「ウェブアプリケーションとして導入」をクリック。

「アプリケーションにアクセスできるユーザー」に全員(匿名ユーザーを含む)を選択。

step4-3

成功するとウェブアプリケーションのURLが発行されますので、このURLをコピーします。これにより外部アプリケーションからGoogle Apps Scriptを通して、スプレッドシートを操作することができます。

5. Flashからのデータ入出力テスト

最後にFlashからの通信テストになります。GitHubにサンプルプロジェクトをコミットしていますのでご利用ください。

  1. Flash Builderで必要なプロジェクトをインポートします。GastTest(テスト用プロジェクト)GAST(ライブラリ本体)。さらにGastTestへGASTライブラリのパスを通します。
  2. GastTestプロジェクトでGastTestクラスを開き、初期設定を行います。url に先ほど取得したウェブアプリケーションのURLを設定します。defaultSheet にシート名を設定します。
  3. GastTestを実行し、「データの追加」「データの取得」のテストを行います。

以上でFlashからのデータの追加・取得のテストが終了です。

まとめ

今回のライブラリは、ゲームのモックを作る際のプレイデータの保存と取り出し(リプレイ)のために作成しました。デモプレイ時にプレイデータを保存しておくと、レベルデザインに反映したりバグを見つけやすくすることができます。開発時のクラッシュレポートツールとしても利用できます。(※アプリの本公開の際は専用のサーバーまたはサービス等を利用することをお勧めします。) Googleスプレッドシートを利用するメリットは、データベースやサーバーサイドモジュールを準備する必要がない点にあります。ただ現状では残念ながら応答が2〜3秒かかってしまい、リアルタイム性を求める場合にはおすすめできません。その場合は中間地点としてサーバーを用意してデータをキャッシュさせるなどの対応が必要でしょう。 コンテンツ制作にGoogleスプレッドシートを利用されている方は多いと思います。今回のような「データの置き場」にも活用できますのでぜひお試しください。 参考サイト