※未プレイの場合はネタバレ注意
今までの製作物のあとがきです。タイトルの通りです。
・ラビィの脱出ゲーム
夏休みに生まれて初めて制作したjavascriptゲーム。たくさん遊んでもらえて本当にアリガトナス!!!
制作期間は2ヵ月程度、大まかなつくりとしてはこんな感じになっています。
①ゲーム画面の枠はhtml側で準備(canvas)、レイヤーは4枚使用。
②マウスの座標を取得
③前、右、後ろ、左、それぞれの方向を1,2,3,4として、左右に移動ボタンを設置
④それぞれの方向ごとに、クリックした時のイベントを設置
⑤プレイヤーが今どこを見ているか、アイテムを持っているか、アイテム取得状況などは変数で管理
このうち①~③までができた状態のものがネットにあったのでそちらをお借りして継ぎ足し継ぎ足し。
完走した感想ですが自分が途中で諦めて投げ出してしまいやすい性格で(RPGツクール作りかけ)(ウディタ挫折)(C言語挫折)、正直よく作りきったなという気持ちが大きいです。あとは合計100枚以上の画像を用意したので疲れました。この頃はケータイ片手に指で描いていたので・・・はい・・・。
謎解きは、作りはじめる前から途中までは(最初のドアを開ける辺りまでは)構想練っていたのですが、それ以降は自分のレベルと相談しながら勢いで逃げ切った感じです。こういう謎解きなら作れそうだな……とか、これは面白いけど無理そうかな……とか。BOOKとかゴリ押し感がもろ出てましたね・・・。
一番苦労したのは画像のロードでした。開始から画面がずっと真っ白のままでクリック判定だけが存在する状態はマズイので、画像を予め読み込んでおかないとダメでした。onloadってやつを使えばよかったんだ! ということに気づき、ある程度の画像がロードされてからゲームスタートできるようにしました。
KIBOU:なるべく謎解きは直感的というか言語に頼りたくなかったのですが一方でズミュ、ビビ、ポコ、ウッキーを使った謎解きも作りたくて。こうなりました。
各種欠片:元々の構想は赤、青、紫の3つでドア開けて脱出だったのですが制作中に本家で虹防具が登場したため、まあ行けるだろう感覚で欠片が6つに増えました。実は赤色の欠片を選択した時の字幕が途中から朱色の欠片に変わります。
加熱器:↑に書いた通り当初はドアを開けるところまでの予定だったのでその後の脱出方法は全く考えておらず迷走していたところ、ふと最後は鏡を見つけて脱出したくなったため、急遽加熱器が登場。ちょうど棚の最上段が開いていたためトレーモンヒント設置。
宝探し:鍵穴を回していくスタイル。このギミックはヒントの場所も含めて一番気に入っています。実は右下の鍵穴には判定がなかったため右下を回さなくても開いちゃっていました(あとで気づいて修正しました)。
数字4桁:脱出と言えば数字の鍵!ベロンドやマオも登場させたい! ということでこのネタが爆誕しました。答えをつくるのは簡単なのですが必要最低限なヒントを用意するのが大変でした。そして「数字の重複はない」暗黙の了解が大前提にあることをすっかり忘れていました。客観的視点って難し~!って痛感したイベントでした。
=================
・エルティア麻雀
エリアノド装備って麻雀みたいだよねの一言から生まれた2作目。半年近く掛かりました。
このゲームはjavascriptの配列、連想配列という機能をたくさん使っています。
配列というのは[0,1,2,3]って感じのただの列で、
連想配列というのは[{type:1,name:"エルス"},{type:2,name:"アイシャ"}]のようなものです。
普通の配列だと一つの要素に対して一つの意味しか持たないのですが、連想配列だと一つの要素に対して複数の意味を持たせることができます(要素=配列のn番目のやつ!って意味です! 上の例だと「配列の最初の要素は0」になります)。
これを使ってそれぞれの牌をなんとか管理しています。
ゲームのアルゴリズムは以下の感じです。やってることはほぼ麻雀なので複雑すぎて申し訳ないですが大まかに書くとこんな感じです。
①全ての牌のデータ、山札となる配列、嶺上牌となる配列、各プレイヤーの手札と捨て札となる配列(4×2)などの準備
②それぞれの牌を4つずつ含む配列A(これが山札)を用意
③山札をシャッフル
④配列Aからそれぞれのプレイヤーの手札の分だけ切りだした配列を4つ用意
⑤(対局開始)
⑥ターンプレイヤーの配列の末尾に山札の最初の要素を切って貼りつけ、ツモかどうかチェック
⑦ここでプレイヤーの番なら操作を受けつけ、CPUの番なら切る札を勝手に決定 ツモアガリなら⑪へ
⑧選ばれた札が配列の何番目か調べてその要素を切り取って、捨て札配列の最後尾に貼りつけ
⑨捨てられた札に対してロンする人がいないかチェック ロンなら⑪へ
⑩何もなければ次の人の番へ(⑥に戻る) 山札が0枚だった場合流局処理へ
⑪ゲーム終了のあいさつ、ツモかロンか、裏ドラなどなど考慮して得点を計算
⑫得点清算が終わったら親を回して次の対局へ(②に戻る)
いやホントに! これは! 実装がしんどかったですよ!! まず自分の手札を描画するまでに1週間かかってまして。配列難しいよ~~~! ってなったのが数えきれないくらいありました。コンソールで確認しづらかったり、うまくコピーできなかったり、なんか違う物が混ざってたり、中身が空っぽになってたり。というか今もちゃんと動いているか分かってないです(ええ)。ターンが周ってくれた時には泣きそうになっていました。
感想ですが、何よりルールがややこしくなってしまって、麻雀知ってる人でもとっつきにくいものになってしまいました。普通の麻雀かドンジャラを作ったほうがよかったのではないかという疑惑が。でも自分で時々遊ぶ分には楽しいしやりがいもあったので満足。
ルール:元は麻雀寄りの手札13枚で考えていました。数牌に当たる部分は「均衡」の等級で、字牌に当たる部分は東西南北をスキリンで対応させる構想は最初からあったのですが、そこからがなかなか進まず。エリアノド防具のまま、「均衡」「変化」「破壊」「熟練」を4枚ずつ揃えるでいいじゃん! と思い現在の16枚になりました。役は元ネタ通り「清一色=4セット」「字牌」「立直」が最初にでました。一度それで試したところ全然色が揃わない! ことが判明し「3セット」「W2セット」を追加したり「平和」「国士無双」をつけたりと、どんどん増えていき今に至る。ポン・カン・チーはさすがに実装できませんでした。
スキル:ドラを増やしたり、ロンされないようにしたり、積み込みしたり。スキル実装は意外と苦労しませんでした。それなりに巫女ごとに個性出せた気がする。あとスキル演出も予想以上に良い感じに落ちついてくれました。アニメーションつくるの、難しい。
BGMについて:Dominoで打ち込んだ音楽。fc2は1MB以内のファイルしかアップロードできないため音質が犠牲になりました。たまにループポイントで音量が2倍になる原因が未だに分かっていない。
訓練場対局bgm…夜の迷宮のイントロ。
デスマ対局bgm…ベースはHiHiHiを聴きながらだったので似てるかも。
レイド1戦目bgm…12-5-3で流れるあの曲。
レイド2戦目bgm…12-7-1のイントロ~12-7-2で流れる、本国のニュース番組にも使われた曲。
レイド3戦目bgm…12-7-3で流れる曲、12-6-2も若干混ざってます。
レイドラストbgm…イヴのチュートリアルの曲 原型はないです。
=================
・エルスとじゃんけん
制作期間は数日。運要素が限りなくゼロに近いじゃんけんゲーム。
犯行動機はちょっとしたミニゲームを作ってみたかったというのと、いろんなクリック機能(オンクリック、左クリック、右クリック、ドラッグ)を使い分けてみたかったことでした。最初から運ゲーにするつもりはなくて、じゃんけんの皮を被った何かになりました。
じゃんけん部分はグー、チョキ、パーをそれぞれ1,2,3として自分と相手の手を管理することで素直に実装できたのですが、3秒タイマーをつくるところで躓きました。
エルファイテールキャンペーン:何を思ったかDMくれた方にエルファイテールをプレゼントするキャンペーンを開催していまして。なんとなんと、一人DMくださった方がおりまして、プレゼントしちゃいました! ありがとうございます!!
私事:自分の右クリックボタンが破壊されてしまったため現在の自分の環境ではクリアできなくなってしまいました。今後も右クリックを使用するものは制作しない予定です。たぶん。
=================
・イヴとセッション
制作期間は数日。じゃんけんと同時公開したもの。ゲームというより音を鳴らすツールに近い気がする。
ここまで全てマウス操作で作ってきて、そろそろキーボード操作を試してみたかったということで制作。
使用した音楽(トロッシュの巣とペイター村のbgm)は以前耳コピしようとしたものが眠っていたため流用。
クオリティーはともかく他にもいくつかドミノの作り物はあるのですが譜面になりそうなものが無くて現在2曲のみ。
キーを押した時に鳴る音はドミノのPan Fluteを使用。
今更なんですがDTMもプログラミングもお絵かきもきちっと学んでなくて、その道の常識みたいなのがあったら守ってないかもしれないなって思っています。自信ない。
=================
・ノアの脱出ゲーム
制作期間は1ヵ月。2年ぶりに復活した脱出ゲーム。今回はパズル要素多め。
今までは割とジャンルをばらけて作ってきてて。同じジャンルのものをもう一度作るとなると、前作った関数とか再利用できてめちゃくちゃ楽でした! 前回の2倍ぐらいボリュームがあったはずなのに前回の半分の時間で完成させてしまい・・・思い知るっ・・・ノウハウの重要性っ・・・。
イベルン家、電気、月をメインにしたいと思っていたものの。最初の部屋ができた時の感想は思ったより明るいな・・・でした(原作のイベルン家が暗すぎる!!!)
原作で毎回穴に落ちたので落とし穴、掘ってやりたかったんですけど、力不足で床は守られました。
上画面は主にヒント、下画面で謎解きって風にメリハリつけてみたかったのですが、かえって何度も上見て下見てって手間増やしただけだったかもしれないですね……。
そして電気がついている時とついていない時、上画面と下画面、奥の部屋などなど、前作よりも描いた枚数めちゃくちゃ多くなりました。
お絵かき環境が変わって指ではなくなったのでよかったものの。CG等の方が苦労が少なくて済みそうですね・・・。
前回より余裕ができて、アイテムの拡大機能やらなんやらにも手を伸ばすことができたのは良かったと思っています。カードをめくったりとか。
カレンダー:実を言うと制作していた頃(2021年11月)のカレンダーでした。タブレットが6桁まで入力できるようにしたのは、4桁だと11月って分かった時点でゴリ押しで開けられちゃうことを心配していたからだったのですが、むしろ余計に混乱させてしまった。正直4桁入力制限でよかったですね……。気分でカレンダーも180°回転させてみたりしたけれど、もっと面白い謎解きにできたなぁと。
マッチ箱のクイズ:知っている人は知っている押したパネルとその周囲8マスの色が変わるパズル。大元は「ライツアウト」っていうゲームに端を発するみたいです。深く考えずに答えを決めてしまい難しいものになってしまった。これ自分で作っておきながら中々できませんでした・・・。このパズル、調べてみたら最短手とかアルゴリズム考えるのが面白いみたいですね。
闘魂ドリンク:ノアエピで「肉に魔力草を煮たものを3さじかけると、強力な精力剤になる」という文献が出てきたので、これは使うしかないと思って導入。ですが、実装までに少々複雑な経緯をたどっております。。。
まずはアイテムとして拾えるビーカーと、水の入ったビンを用意・・・しかし、ここで気づく!
「ビーカー、要らないのでは?」
苦肉の策、ビーカーの名称を耐熱ビーカーに変更・・・姑息っ・・・姑息的手段っ・・・!
次に魔力草を煮るため燭台とマッチを用意・・・しかし、ここで気づく!
「マッチの火で水って沸騰しなくない?」
検索・・・必死で探し・・・見つけ出す・・・マッチの火だけで料理してみた動画・・・! 僥倖っ・・・束の間の僥倖っ・・・!
そしてようやく完成・・・闘魂ドリンクっ・・・しかし、ここで気づく!
「これ、飲むタイミングなくない?」
探す・・・模索っ・・・このピンク色の液体の使い道っ・・・!
……今作の全ての謎解きはこの闘魂ドリンクのためにあります。
ティタニアアさん:今回はとにかくイベルン家テーマで作りたいと思っていて、脱出後のストーリーは何も考えていませんでした。兄さんはエピックで掘り下げられている・・・エピックネタバレも避けたい・・・。ということで選ばれたのはティタニアでした。あることないこと設定して掘り下げて良い感じにエピックに合流できそうなオチを探してました。
そういえばアイシャのストーリーでは、数年前のティタニアはヘニってなさそうに見えたのに、実際どうしてヘニってしまったんでしょう? ううん……マティ君が関わってくるのかな?
=================
・エルコレタイピング
制作期間は数日。略称を見て職業名をタイピングするゲーム。しれっとMR(ミュータントリーパー)も入ってます。
完成した感想ですがスパルタ教育でそれなりに職業を覚えられた気がします。実用性は無いです。
自分のハイスコアは22000点くらいでした……。アラ全般の職名不一致、エタニティーウィナーの伸ばし棒忘れる、主にSやCから始まる職がこんがらがって頭が複雑に。
コード整理も兼ねてアルゴリズムをかきます。
準備
①仮名とローマ字の組み合わせを一つ一つ登録("ア","a";"カ","ka";…)
②問題文となる文字列と略称を一つ一つ登録(例:"FL","フレイムロード")
メイン部分
①問題の文字列を1文字ずつに分割(フ/レ/イ/ム/ロ/ー/ド)※
②最初の文字「フ」ができる組み合わせを抽出("フ","fu"、"フ","hu")
③キー入力を取得
④正解の文字になりそうなアルファベット入力(f,h)なら通して次のアルファベット(u)に進む
⑤④を繰り返して仮名(フ)ができたら次の文字(レ)に進む※※
※例外として「ジャ」「ジェ」などは2文字で1文字扱いに
※※例外として今の文字が「ッ」で入力が「xtu」でない場合は次の仮名の1文字目が2回押されたら飛ばす
もっと上手にローマ字の変換再現できるとは思いますが例外処理とか考えるとゴリ押しした方が早そうな。
得点計算:ミスした時とクリアした時に、(現在コンボ数)×(現在コンボ数に応じた倍率)がスコアに加算されます。
倍率はコンボ数10まで10倍、コンボ数30で20倍、コンボ数70で30倍、コンボ数100で50倍、それ以降16コンボごとに+1倍……されます、たぶん!
ハードモードだと得点1.5倍になります。ヒントは得点に影響しません。オンにしましょう!!
=================
・エルコレドンジャラ
製作期間は約3週間。エルティア麻雀のシステムを流用してもっと遊びやすいゲームを目指しました。
ノアの脱出ゲームで学んだこと、それは既に製作済みのプログラムからシステムをパク・・・流用する手軽さ・・・!
何かに目覚め・・・勢いで・・・製作開始・・・ドンジャラ・・・!(ES締め切り3日前)
正直今年は一年間冬眠しようと思ってました(?) でも作ってて楽しかったのでOKです。
ところで今作では前回作れなかったポンをなんとか実装しました。残念ながらカンは実装できませんでした。少し内部の話をすると、手札を1枚1枚1~9の変数で画像管理してまして・・・カンをすると手札が1枚増えるのですが。手札の枚数が変わる場合を考えるのに困って諦めました。
困ったと言えばオールマイティを2枚入れたのですがその影響でリーチ判定とかの場合分けがとんでもないことになってしまい・・・。組み合わせを賢く判定できれば良かったんですがそこはゴリゴリの手作業で実装しております。いつもの。
当初はシナジーを役としていくゲームを構想していました。自分はシナジー利用券すら持っていないのでとりあえずWiki覗いてみたのですが、その方向性だとアラ1枚で勝ててしまう事に気づき・・・いろいろあって現行のドンジャラルールになりました。
同じキャラ3枚1組×3、またはラインを統一する、シナジー効果は付随するという形にしてみると、シナジー知らなくても遊べて良かったと思っています。あ、逆にシナジーは全く覚えられていません。
今回は音楽のフリー素材をお借りしました。最近のフリー素材すごい。
現状CPUはスキルを使用しません。相手のスキル実装した後のバグ修正を考えてしまい……。
今後はやる気があればキャラクター増やしたり前回のレイドみたいなモード(マスターモード)を追加したりできたらと思っています。「フッ・・・やる気があれば・・・。やらない奴の常套句だな・・・」って声が聞こえてきそう。
ドラを増やすタイプとか、ロン封じとか、バフ解除とか、HPが減るとニーシャに変身するタイプとか。案は考えているのですが立ち絵とスキルの実装準備が追いついていません。
マスロも構想は割と練ってあるのですがそれを形にする力があれば……いつかどこかで……!
=================
更新履歴
- 2021年 1月17日あとがきを追加しました