Unityによるアイワナ風ゲーム制作
この記事はCAMPHOR- Advent Calender 2020 の3日目の記事です。
こんにちは、最近カンファーに訪れることが多くなった理学部4回生のぼの🦈🦈🦈(@bono_social)です!
「アイワナ」という多くの派生作品が今でも作られているほど愛されている2Dアクションゲームがあるのですが、このゲームを元にしたファンゲームをUnityでスマホ向けに制作してみたので、その知見を共有したいと思います。
アイワナとはなにか
まず、アイワナとは何かを説明したいと思います。アイワナはたくさんの派生作品がI wanna wikiに登録されている鬼畜系2Dアクションゲームのジャンルおよびそのゲームの名称です!詳しく書くと次のような経緯があるゲームです。
アイワナの始まりは"I Wanna be the Guy"というMichael "Kayin" O'Reillyさんが作った鬼畜系2Dアクションゲームで、絶妙な難しさやユニークな罠が非常に面白いPCゲームです。その作品が公開された後にオーストラリアの大学生がGame Makerというゲームエンジンを使って"I wanna be the Fangame!"とその作成素材データを公開したことがきっかけとなって世界各国でアイワナの二次創作が制作されるようになりました。2020年11月時点では約9000作品ものアイワナがI Wanna Wikiに登録されています。(このほかにも色々と書くべき歴史・経緯はありますが、書き出すと止まらないのでこの辺りでやめておきます。是非PC向けの原作のアイワナを遊んでみてください。アイワナは鬼畜ゲーなので以下のような実況動画を眺めて楽しむのもオススメです。)
スマホ向けの実装
アイワナは通常、Game Makerというゲームエンジンを用いてPC向けに作られることが多いゲームで、スマホ向けのアイワナは非常に数が少ないです。これは元々のアイワナがPC向けに作られたことや、Game Makerのモバイル向け開発者ライセンスの料金が$399であることなどが影響していると思われます。お金があるぞ!という人はGame Makerを使ってアイワナを制作することをお勧めいたします。Game Makerによるアイワナ制作に関する資料や素材は非常に豊富に落ちているので。Game Makerを使うとなるとGMLという独自言語に苦しめられる可能性はありますが。
しかし、私はどうしてもスマホ向けにアイワナ風ゲームを無料で作ってアイワナを布教したいというモチベーションがありました。そこで一般的にゲーム制作でよく使われるUnityというゲームエンジンを採用してアイワナ風ゲーム"I wanna defeat the gorilla"を作ることにしました。
アイワナは基本的にGame Makerで作られるので、Unityで作るための資料はかなり少ないです。幸いにも以下のようなエンジンがRegal Primeさんによって公開されています。
Unityでアイワナをスマホ向けに作るとなると、ざっくり次の2つのパターンが考えられると思います。
・上のエンジンをスマホ向けに移植する。
・ゼロベースで作り直す。
私はRegalPrimeさんのエンジンに書かれているコードをざっくりと読んだ上でゼロベースで作り直すという方法を取りました。特に重力加速度や移動速度の設定は参考にさせていただきました。もともとPC向けゲームであったこともあり、UIについては少し悩まされました。
出来上がったもの
そうして出来上がったのが「立て看板をゴリラに投げつけて単位を集めるアイワナ風アプリ」、"I wanna defeat the gorilla"です。かなり難易度の高いゲームなので、完全にクリアする頃にはデス数が数千回になっていると思います。
Unityで作ったのである程度簡単にiOSとAndroidの両方に対応できました。主人公の移動速度や重力加速度を本家に近づけたり、死んだ時に出る血を赤いパーティクルによって再現したり、色々と工夫がしてあります!まだ微調整が足りない部分やプログラムの重たさに課題がありますが、ぜひ遊んでみてください。
参考にした本
このアプリを作る上でunity自体を勉強する必要があったのですが、所謂「和尚本」にとても助けられました。初心者向けにUnity・C#の基礎から書かれている上に、内容が実践的ですぐにアプリとして形が見えてくるのでモチベーションを保つことができました。おそらくこの本がなかったら今回のアプリを完成まで持っていくことはできなかったと思います。
便利だったアセット
画面のスクリーンショットをSNSでシェアする機能を実装するために次のアセットがとても便利でした。ただ、SNSのシェア機能は実装したもののあまり実際には使われていない様子で、シェア機能を使用するようにユーザーを誘導する必要があるように感じました。
assetstore.unity.com
次のアセットは裏ボス(教授)の弾幕を生成するのに使いました。弾幕は意外と生成アルゴリズムを書くのが大変なので、かなり助かりました。
何かしらオンラインで楽しめる機能もあったほうがいいと思ったので、ゴリラを倒して得た単位数を競い合うオンラインランキング機能を追加しました。そのときに以下の記事がわかりやすかったです。niftyのmBaaSは無料枠でも趣味で使う分には十分かと思いました。
最後に
あまりアプリを作ったことがない自分にとって、iOSとAndroidの両方に対応したアプリを一人で作って公開まで持っていくというのは良い勉強になりました。何か作るものを決めるとモチベーションになっていいですよね。
僕の作ったアイワナで遊んでみて欲しいのはもちろんなのですが、"I Wanna be the Guy"やその他の多数の派生作品をぜひPC版でプレイしてみて欲しいです。ちなみに僕のおすすめのアイワナは"I wanna be the LoveTrap"です。この冬休みはアイワナの面白い派生作品をたくさん遊んでみるのもいいのではないでしょうか。