アツマールAPI仕様メモ
これは、ツクールMVを使わずにアツマールのAPIを叩く際の情報まとめ記事です。
前置き
ゲームクリエイターズキャンプ( http://ch.nicovideo.jp/indies-game/blomaga/ar1325708 )というイベントが行われるとの事。
前回の記事にある通り、最近の自分はゲームが全く作れない状態にあり、この状態から脱出する為にとにかく何でもやってみようという事で、このキャンプにも参加申込してみる事にした(参加人数が限られているので、参加当選するかはかなり怪しいが)。
このキャンプでは最終的に「完成したゲームをアツマールに投稿する」事になるので、とりあえず自分のゲーム作成環境で作ったゲームがアツマール上で動く事を先に確認しておかないといけない。
ので、自分の過去作からアツマール用に移植してみた。
この対応の際にかなり試行錯誤してしまったので、メモを残す。
なお、これは2017年9月時点での情報であり、将来には変更される可能性が普通にありそうなので注意。
公式API仕様書
まずこれをざっと見ておく事。 ただし去年の記事である為か、情報が足りてなかったりするので、以下に補足を行う。
実ファイル
前述の公式API仕様書には書かれていないが、実際にアツマールAPIとして適用されるのは、以下のurlのjsファイルらしい。
minify等は特にされておらず、コメントも付いている。
前述のAPI仕様書には書かれていない、音量APIやスクリーンショットAPIが追加されているのが分かる。
storage API
これについては公式API仕様書の通りなので特に問題はなかった。
controller API
公式API仕様書には返り値の具体例が書かれてない。
type
が取る値は、"keyup"
"keydown"
key
が取る値は、"up"
"down"
"left"
"right"
"ok"
"cancel"
このバーチャルコントローラはスマホ/タブレット端末でのアクセス時にのみ出現し、PC環境では出現しないようだ。なのでPCでは動作確認が取れない…(上の値も測定するのに苦労した)
comment API
基本的には公式API仕様書にある通りだが、以下に注意する必要がある
シーン名の初期状態が
"__title"
というのは公式API仕様書に書いてある通りなのだが、自前でゲームを実装している場合のゲーム側の初期状態は「ローディング画面」なので、ローディング画面が"__title"
に対応する、という事になる。なので、実際のタイトル画面のシーン名は別の名前を割り当てた方がよい(そうしないと、タイトル画面でコメントした内容がローディング画面で流れてしまう)。pushMinorContext()
の事を何も考えずに実装すると、別々のユーザがそのシーンで発言したコメントが発言タイミングに関わらず、シーンが変化した最初のところで全部流れるようになってしまう。これを防ぐには定期的に(例えば1秒おきに)pushMinorContext()
を実行すればよいようだ。もちろんユーザからの操作が止まっている時(例えばメニューを開いて一時停止している時)は実行しないようにする等の制御が必要。コメントの表示は、ゲーム側のhtml内に
"comment_box"
という名前のclass
のdomが生成され、これがオーバレイ配置される事で実現されている。なので、全画面化等を実現する際にゲーム用のdom以外を全部削除とかやってしまっているとコメントが表示されなくなってしまうので注意。上記のclass名のdomだけは例外的に残せばok。
volume API
公式ドキュメントなし、詳細は atsumaru.js
を参照。
アツマール側で音量を共通で保持する為のAPIのようだ。
今回は使わなかったので詳細は不明。
playerFeatures API
公式ドキュメントなし、詳細は atsumaru.js
を参照。
現在はスクリーンショット取得機能だけがあるようだ。
今回は使わなかったので詳細は不明だがおそらく、ゲーム側の初期化時にtakeScreenShot
へ関数を代入しておくと、ゲーム画面右上のカメラアイコンを押した際にその関数が実行されるので、toDataURL()
等を使ってdata-url化したスクリーンショットを返せば、いい感じに保存してくれるのだと思われる(未確認)。
これを設定していない場合は「エラーにより、スクリーンショットが取れませんでした」と表示される。
その他のメモ
zipファイルの作成
アツマールにはzipファイルをアップロードして登録するので、このzipファイルを作成する必要がある。
- http://qa.nicovideo.jp/faq/show/6576 に詳細がある
- 注意すべき点は、このページにサイズ上限の表にある拡張子以外のファイルを含んでいるとエラーが出て登録できない事。
*.map
や*.ico
等を置いてる場合はzipファイルに入れないようにする事。
- 注意すべき点は、このページにサイズ上限の表にある拡張子以外のファイルを含んでいるとエラーが出て登録できない事。
参考リンク
既出のurl含む