今年はゲームアツマールに、ベイ助のミニゲームを投稿してます。毎月1個ずつ作って、12個作るのが目標です。*1
これは、どうやって作ってるかの紹介記事です。雑録カテゴリですし、特に配布物はないです。でもとりあえず1年試してみて、なんとなく作り方として定着できそうな感じがあれば、作るのに必要なプラグインの一般配布もしてみようと思います。
作ったゲームたち
1月から毎月作っているので、5個できてます。6月になったので、6月分のもそろそろ作り始めますよ。
ニコ生ゲーム対応版
一部、ニコ生ゲーム対応版も出してます。ニコ生ゲームとは、ニコニコ生放送の放送ネタとして、みんなで遊ぶことができるゲームのことです。放送ネタの自作ゲームタブから「ベイ助」で検索して遊んでみてね^^(ただ、リクエストするにはプレミアム会員にならないといけないようです…)
とりあえず、いま対応しているのは以下の3つです。
・ベイ助のご利益羽根つき
・ベイ助の雪だるまづくり
・ベイ助のいちご狩り歩き
元のゲームはRPGツクールMZで作っているので、ニコ生ゲームに対応していなかったのですけど*2、作り方との相性がよくて、割とすんなり移植できちゃいました。
思い立ったきっかけは、仲良くしてもらってるニコ生主のかぶるくんです。ありがとう^^
作り方のようす
いつか詳細なことをまとめようと思いますが、とりあえず紹介程度の内容です。若干開発者向けの内容なので、スルーして大丈夫よ。
ツールにはRPGツクールMZを使っているのですが、紆余曲折あって変わった作り方になってます。エディタ画面はこんな感じです。
この図はオブジェクト指向プログラミングを行うときによく用いられる、「クラス図」というものを模した図になっています。クラス図の詳細はここでは割愛します。
四角いのがイベントで、図を作成するためのタイルセットを使って、マップ上に作図しています。この図を解釈するプラグインを使って図全体の情報を読み取り、JavaScriptのソースコードを出力するという仕組みなのです。
この四角一つ一つがゲームの構成要素になっていて、構成要素同士のつながりをマップ上で表現することで、全体としてゲームになる、というような作りになっています。こうしておくと、各々の構成要素を主体として作成ができるので、後で整理がつきやすくなる利点があるのです。
↑こんな感じで、ゲームに登場する構成要素それぞれが、イベントそれぞれに割りついているようなイメージです。
イベントの作り方はこんな感じです↓
イベント一つ一つがピクチャに割り当たるイメージです。ここではどんなピクチャとして定義するのかを決めます。
これだけで画像が定義され、テストプレイしてみると画像の描画されるわけです。
この画像がどう動いていくか、というところは「更新」というタブを選択してスクリプトで記述していきます。↓右に移動していくようにしてみます。
↓すると、右に移動していくようになります。
次に、この画像(ベイ助)が、1秒おきに別の要素(玉)を拡散させるようにしてみます。「ベイ助」が「玉」を集約するという意味で、以下のような図を作成して、新しい「玉」イベントを作ります。
ベイ助側の呼び出しはこんな感じ。*3
↑this.list.push(~~~) とすることで、要素を所有します。
これで玉を拡散させられるようになりました。設定するところも限定的だしそんなに作りこまなくていいので、なかなか便利でしょ。これらを組み合わせてゲームを作っていく感じです。
さらに、内部的に処理はすべてJavaScriptのソースコードに落ちているので、これをコピペすれば、JavaScriptが動く環境ならツクールじゃなくても動く(かもしれない)ということになります。
ニコ生ゲームを作るためにはRPGツクールではなくて、Akashic Engineという別のエンジンが必要になります。でも中身はJavaScriptなので、ソースコードの流用ができます。上のコンソール画面で出てきたソースコードをAkashic Engineの方に貼り付けて……
これで実行してみれば、ニコ生ゲームのエンジン上で同じように動くという仕組みです。
描画部分やスコア管理の部分はRPGツクール側で作りこんでいるはずのところですが、それらの部分だけ抜き出してAkashic Engine向けに実装したので、こんな流用ができるというわけです。
今は自分向けに手数の多いやり方でやっていますけど、形になってきたら、これらのやり方を含めて何か書くかもしれません。