ニコ生ゲームを作ろうと思ったらすぐコピペしよう その6
物理回とマルチ回が終わったのでノーマルな「コピペしよう」シリーズを再開します。
第6回はシンプルな動きのゲーム集です。
使いまわせそうなシンプルなゲームデザインで複数のサンプルを用意しました。
※2022/7/16 13:28 スコア処理を追加しファイルを更新
ゲーム画面はまちまちですが、画像はシンプルにし音声ファイルはakashic公式のものを使っています。アツマールはこちらです。
[2022/12/20加筆]
以下の記事は、アツマールがサービス提供中の時点の内容です。
アツマールがサービス終了したあとの手順はこの一連の記事では説明していません。
別途、公式チュートリアルや解説記事を探してください。
■目次
- 改造準備のおさらい
- 画像ファイルの変更
- 音声ファイルの変更
- 制限時間の変更
- ゲームの公開
- サンプルゲームの特徴と注意点
改造準備のおさらい
改造に必要な流れを簡単に説明し、それぞれの説明があるリンクをまとめます。
新しくプログラムについて書くことが特にないのでおさらいです。
改造ができるようになるまでには以下の2つが必要です。
- Akashic Engineのインストール
- 起動テスト akashic-sandbox
公式の記事だとこちらに該当します。こちらやこちらも参考になります。
記事の中で akashic init ~ のようなコマンドの説明もありますが、今回は不要です。
画像ファイルの変更
画像ファイルを変えると簡単に雰囲気を変えられます。以下の手順が必要です。
- 画像ファイルをimageフォルダに保存
- akashic scan asset を実行する(自動でgame.jsonに記載する)
- main.jsのassetIdsにファイル名を追記
- 各g.Spriteのsrcの項目にファイル名を記入
公式だとこちらとこちらに記載があります。こちらも参考になります。
画像ファイルとその名前は、上記の4つの位置に正しく配置します。
imageフォルダ ≧ game.json ≧ main.jsのassetIds ≧ 各g.Spriteのsrc
のように左のほうが多くなっていれば使わないものがあっても大丈夫です。
左に含まれていないと、エラーメッセージが出たりロードが途中で止まったりします。
画像ファイルを削除したときもakashic scan assetでgame.jsonの登録を削除できます。
画像のサイズを変更したときもakashic scan assetをやります。ファイル名が同じでもgame.jsonにサイズ情報が含まれているためです。
アニメーション画像のFrameSpriteが使われてる場合は以下も必要になると思います。
- 画像の結合
私はこちらのサイトで背景を透過させて使っています。 - g.FrameSprireの画像サイズ情報を設定
width, height, srcWidth, srcHeight の4つを書き換えます。
音声ファイルの変更
音声ファイルも基本は同じです。
- 音声ファイルをaudioフォルダに保存
- akashic scan asset を実行する(自動でgame.jsonに記載する)
- main.jsのassetIdsにファイル名を追記
- 音声ファイルを再生する処理にファイル名を記入
音声ファイルはaacファイルとoggファイルの両方が必要です。
aacはiOSで使います。iOSだけロードが終わらない不具合が出た場合はだいたいaacファイルが抜け落ちているか、aacファイルが壊れています。
BGMを変えて再生時間が変わったときも、akashic scan assetをやる必要があります。
制限時間の変更
今回のサンプルで制限時間を変える場合、2箇所編集する必要があります
- main.jsの50行目ぐらいにある let timelimit
- game.jsonの最後にあるtotalTimeLimit
1つ目はゲーム内で競技を開始してから得点が入らなくなるまでの時間です。
2つ目はゲームそのものが起動してからゲームが終了するまでの時間です。
これに加えてゲーム起動から競技開始までの時間をmain.jsの9行目ぐらいにlet warmupとして記載しています。warmupは基本的に7秒にしています。
競技時間timelimitを60秒にした場合、67秒がゲームに必要な時間です。
更にロード時間として余裕を持って10秒を加え、77秒をtotalTimeLimitとしています。
ゲームの投稿
最後にゲームを投稿します。
- akashic export htmlを実行する
akashic export html -f --output file.zip --atsumaru --inject ./injectdata.txt
とコマンドを入力します。
アツマールに投稿する
アイコンも作っておきます - ニコ生ゲームとして登録申請する
アツマールで公開設定にしていないと申請できません
akashic exportの最後のinjectdata.txtというのはアツマールでの背景色指定です。
現在は中にblackと書いてあります。不要ならファイルとコマンドを削りましょう。
サンプルゲームの特徴と注意点
冒頭の今回のファイルに入っているゲーム一覧です。
基本的な動きなどに焦点を当てているので、ゲームとしては作り込まれてません。
画像変えるだけでも一応ゲームにはなりますが、こだわる場合は他のサンプル等を参考にして要素を追加してください。
ボタン系
- button
ボタンをタップするだけ もぐらたたきに近い - buttontile
敷き詰められたタイルをタップして操作する クロスカウント風 - buttonupgrade
アップグレードボタンで生産をインフレさせる おにぎり量産体制風
設定で連打用ボタンや、1度しか使えないボタンも可能
ジャンプ系
- jump
強制スクロールで流れてくるアイテムをジャンプで取る カエル跳び競走風 - jumpdouble
2段ジャンプ - jumphop
細かくジャンプして高さを保つ フラッピーバード風 - jumplow
タップの長さでジャンプを調整可能 - jumpplat
足場の上に乗れる - jumpset
足場と障害物にパターンが有る
移動系
- move
ドラッグして移動 流れてくるアイテムを取る 高速に移動できる - movedir
ドラッグして移動する方向を指定 - movejump
ドラッグで移動方向を指定し、はなすとジャンプ 餃子の皮サバイバル風 - movepoint
タップで移動先を指定 はなしても到達するまで移動する - moveroll
ドラッグで移動方向を指定し、はなすと無敵のローリング - moveslide
ドラッグで加速方向を指定 慣性があり滑る
スクロール系
- scrolljump
上の方向にジャンプしていく ぴょんクラ・ニンジャン風 - scrollmove
moveslideのスクロール版 見下ろしレースゲームのコーナリング風 - scrollshot
shotautoのスクロール版 世間で人気の吸血鬼サバイバル風
スクロールがある場合は起動テストに akashic serve -s nicolive を使います。
エラーも出ますが気にせず左上のリセットボタンを押しましょう。
射撃系
- shot
右方向のみに射撃 ドラッグで移動 横スクロールSTG風 - shotaimrun
周辺をタップして射撃 キャラをドラッグで移動 まどゾン風 - shotauto
近くの敵を自動的に射撃 - shotdir
ドラッグした場所に射撃 キャラ固定 この戦いが終わったら風
武器アップグレードも作ってあるのでこれだけそのままリリース - shotdirrun
ドラッグ方向に射撃と移動 - shottrig
タップして射撃 キャラ固定 偏差射撃 縁日射的風
タイミング系
- timing
タップしたときの精度で得点計算 FPS60 スピード伐採風
ゲージとしてパワーバー、仰角決定、図形一致、の3種類を用意
ゲージの再編成、演出の強化が必要
以上です。
これらのサンプル利用時のクレジット表記について、基本的には表記は不要としているのですが…
今回はほとんどこちらではリリースしていません。万一複数の方が利用された場合にどっちがどっちのパクリ、のような話になると厄介です。軽く触れていただくかgm26499をコンテンツリー親登録をやっていただくと回避できるかもしれません。
今回のファイルは画像はすべて自作、音声はすべてAkashic公式です。
画像はせっかくなんで別のものに変えてみてほしいですが、足場とか弾なんかはめんどくさかったら使ってもらって構いません。
Akashic公式の音声ファイルの利用表記はそちらの指示に従ってください。ニコニコモンズにある公式の素材なんかも使うといいと思います。
この記事以外にも、コピペできそうなコードや解説を公開しています。
こちらに記事のリンクがまとまっていますので御覧ください。