見出し画像

超絶ド文系で不器用な大学生が、Unityで自作ゲーム「おんぷのもり」を作った話

読んでいただきありがとうございます!すーぱーきゅうりです。初めましての方は初めまして、知り合いの方はこんにちは。2ヶ月ほど前に、Unityを使って初めてのオリジナルゲーム「おんぷのもり」を制作し、公開することができました。このnoteでは、「おんぷのもり」の制作や公開について色々だらだらと書いていきます。もし「作ったゲーム遊んでやるから先にやらせろ!」という方がいらっしゃったら、5.ゲーム完成から公開まで の部分にリンクを貼ってあるので、目次から飛んでいただけると幸いです。ただ残念なことにスマホでは遊べず、パソコンで遊べるゲームなのでご了承ください。

1.はじめに

まず自己紹介です。私は卒業しかけの大学生です。昔からゲームが好きで、任天堂のゲームを小さい頃からめちゃくちゃやっていました。ジャンルは問わず、有名どころからマイナーなものまで満遍なく楽しんでいました。

ただ、小さい頃からやり続けた弊害なのか、大学に入った辺りでゲームを遊ぶことについては飽き始めていました。その代わりに、ゲームの歴史や変遷だったり、制作者のインタビューや制作秘話だったり、ゲームの背景に興味が出てきて、実際に遊ぶ以外の面でゲームが好きになっていきました。

そんな中で、「せっかくこんなにゲーム好きなのに、遊ぶだけじゃ勿体無いな…」といった気持ちや、「ゲームを遊んでるのに中の仕組みが全く分かんないままなのは勿体無いな…」と思うようになりました。ゲームをブラックボックスにしておくのは勿体無いと思い始めたんですね。そんなことを思い始めて、段々「なんかほんとに簡単なクソゲーでいいから、何か自分でゲーム作ってみたいな…」という気持ちが出てきました。

しかし、何を隠そう私は超絶ド文系。数学なぞ1ミリも分からない人種です。ゲームを作る人は理系のスーパーエリートでパソコンカタカタカタ~なイメージがあったので「ゲーム作ってみたいけどまあ無理だな。」とハナから諦めていました。

そんな中、友達の友達にゲーム作りをしている人がおり、色々あって知り合いになることができました。高クオリティなゲームをバンバン作り、スマホアプリまで作ってるような人です。理系です。やはりな。その人にUnityを勧められ、前述の通りゲーム作りに興味があったのでやってみようということになりました。

2.C#の履修とゲームの大枠決め

Unityというのは、ゲーム開発に使われるエンジンの1つです。C#というプログラミング言語を使うことでゲームを作ることができます(ザックリとした説明)。しかしバチバチの文系マンである私にプログラミングなぞもちろんできません。そこで、「大学卒業までに一冊入門書をやりきって、なんとなくプログラミングを覚えて、入門書のサンプルに似たオリジナルのゲームを1つ作る」という目標を立てました。

入門書は、Unityを勧めてくれた人に教えてもらった「Unityの教科書 Unity 2020完全対応版」を使いました。

この本をやると、プログラミングの基礎を勉強しながら簡単なサンプルゲームを6つ作ることができます。なーんにも分かんない状態からでも、これでなんとなくふわっと分かる状態になりました。

6つのサンプルゲームの中で、「猫を左右に動かして、落ちてくる矢を避けるゲーム(2D)」と「カゴを9ヶ所に動かして、りんごを拾うゲーム(3D)」がありました。私は操作とルールが簡単で、誰でも手軽に遊べるゲームが作りたかったので、この2つをパクって「プレイヤーを左右に動かして、落ちてくる物を拾うゲーム(2D)」を作ることにしました。作るゲームの大枠はこうやって決まりました。

3.ゲームの構想決め

「プレイヤーを左右に動かして、落ちてくる何かを拾うゲーム(2D)」を作るという大枠はできました。次に、ゲームの構想を決めないといけません。今回のゲームの大枠から具体的に言うと、「左右に動かすプレイヤー」と「落ちてくる物」を決めることや、背景を決めることが必要です。

私はピアノを少しかじっていて、音楽や音符といった類いのものが好きだったので、「音符が落ちてくるとちょっとオシャレでいいのでは?」と思い付き、落ちてくるものを音符に決めました。

次に、「じゃあ音符を取るのはどんなものがいいかな…」と考え、音楽を入れるようなイメージで、CDやスマホにしよう!と決めました。ゲームに使っても良さそうなフリー素材を探したところ、CDはなかなか出てこず、スマホのステキなアイコンを見つけたので、スマホに決定。

では背景はというと、「りんごだったら木から落ちてくるよな…音符も木から落ちてくればちょっとオシャレなのでは?音符のなる木みたいな感じで良くない?」と思い、背景を木にしました。

これで、「音符のなる木があって、落ちてくる音符をスマホで取る」といったゲームの構想が決まりました。テキトーでございましょう?いいんですよこんな決め方で。売るわけじゃないしそもそもド素人の1作目ですし。気楽にいきましょう。

4.プログラミングをしてみる

ここまで決まればあとは画像を配置して、それぞれにプログラミングをして動かせるようにするだけです。まあ大変なんですけども。とりあえず今回のゲームは先述した通り入門書のパクりなので、入門書見ながらやればなんとかなりました。

プログラミングについて書き始めると無限にこのnoteが書き終わらないので省略します。ただ1つ言っておくと、ド素人でも文系でも不器用でも、入門書をちゃんとやってなんとなく理解してれば絶対になんとかなります。なんとかならなかったら、動きが難しすぎるとか作るゲームのクオリティを高望みし過ぎてるとかだと思います。最初は左右に動かすとか上から下に落ちるとか、ほんとに簡単な動きだけでできる簡単なゲームにしておきましょう。

そんなこんなで「音符のなる木があって、落ちてくる音符をスマホで取る」ゲームが完成しました。ただ、これだけだとスコアもタイムも何も無いし、あまりにも寂しいです。そこで、①スコアとタイム ②取ったらスコアが減るお邪魔アイテム ③タイトル画面とリザルト画面 ④BGMと効果音 を追加することにしました。

①のスコアとタイムなんですが、まあ微妙に難しい。制限時間30秒にして、音符を取れたら1点追加するみたいな機能を作って画面に表示させるんですけど、こんなシンプルな機能なのにわりと大変でした。まあ入門書に説明があるのでなんとかなるはなるんですけど…

②については、お邪魔アイテムを何にするか迷いました。サンプルゲームでは得点アイテムがりんご、お邪魔アイテムが爆弾でした。全然統一感は無いけど球体で合わせたわけですね。私のゲームは得点アイテムが音符ですから、「まあお邪魔アイテムは休符かな…?」と思いながらも、「いやでも音楽において休符ってめっちゃ大事な要素やんな…得点減らすアイテムか…?」とか思っておりました。結局休符にしたんですけどね。音楽において休符はとても大事と知りつつも、他に思い付かなかったので今回はお邪魔アイテムとさせていただきました!申し訳ありません!

休符をお邪魔アイテムにすると決めてしまえば、プログラミング自体は意外と簡単でした。「音符を拾ったときにスコアを+1にする」みたいなコードをパクってきて、「休符を拾ったときにスコアを-1にする」ってちょこっと書き換えればOKという。

③のタイトル画面とリザルト画面なんですが、これもちょっと大変でした。2つ分画面作って、ボタン配置して、ボタンが押されたら次の画面に移動する、みたいなプログラミングしなきゃいけないんですよね。ボタン1つなのにまあ労力のいること。でもこれやるとすごくゲームっぽく見えるんですよね。大変だけど作って良かったなって思います。

あとここで「おんぷのもり」というタイトルを決めました。そのままなんですけど、最初は英語でMusicForestにしようと思ってました。まあでも簡単なゲームだし、柔らかい印象持たせたいなーって思って、全部ひらがなにしてストレートなタイトルをつけました。

④に関しては、音符と休符を使った音楽の世界観になったので、BGMはクラシックの曲がいいかなと思いました。クラシックの曲色んなものに使っていいよーってサイトもありましたし。タイトル画面とリザルト画面は優雅な曲で、プレイ中は急かすような曲がいいかなーとか思いながら、自分の好きなクラシック曲3曲選んで組み込みました。

効果音については、音符と休符で違う効果音にすることだけ守ればいいかなーと思ってわりとテキトーです。音符を取るとピアノのドの音、休符を取るとシンバルの音が鳴ります。シンバル選んだのはまじでテキトーです、おもしろいかなと思いましてね。

そんなこんなでほぼほぼ完成です。最後に難易度調整として、最初の6秒はゆっくりめ、真ん中の12秒が普通、最後の12秒が速めに落ちてくるようにして、30秒は飽きずに楽しんで貰えるように変化を加えてみました。速度の他に、音符と休符の出る確率もいじってあります。確か最初は音符が出やすくて、真ん中が音符出にくめ、最後が音符若干出やすめくらいにしたと思います。

5.ゲーム完成から公開まで

これで完全にゲームが完成しました。あとは公開するだけです。UnityにはUnityroomという、作ったゲームを公開することができるサイトがあります。公開されたゲームは、特に会員登録やログインなどは必要なく、誰でも遊ぶことができます。いわゆるフリーゲームサイトみたいなものですね。

一度作ったゲームをWebGLという形にして、それから公開する必要があります。難しくは無いのですが、たまにバグってうまくいかないこともあります。やり方はググれば丁寧に説明してくださってるサイトがたくさんあるので問題なくできました。そして無事に公開するに至りました。下にリンクを貼っておくので、よろしければ是非遊んでみてください。パソコンでしか動かないと思います。

6.おわりに

ということで、超絶ド文系で不器用な私が、何も分からないところから始めて無事にゲームを1本作って公開することができました!

実際やってみた感想としては、かなり楽しかったです!自分の書いたプログラムでちゃんと動くのも楽しかったし、どうすれば雰囲気良くなるかなーとかどうすれば飽きずに遊んで貰えるのかなーとか考えるのも楽しかったです。あとこんなゲームでも、完成したときの達成感はなかなか大きかったです。私的には卒業制作に近いです。

また何より、ゲームを作る側の大変さや苦労を知ることができました。単純で簡単なゲーム1つ作るのにこんなに大変なんだと身をもって知ることができました。キャラクターを左右に動かすだけで大変ですからね。あとタイトル画面とかスコアとかタイムとか!シンプルな機能作るのだけでもすごく大変です。ゲーム制作に関わる人たちに本当の意味で心からリスペクトできるようになったなーと思います。

ゲームを自分で作ってみたことで、ゲームの仕組みもある程度知れて、もっと好きになれた気がします。今では、ゲーム好きなのにゲーム作ったこと無い人はもったいないなーと感じるようにもなりました。ゲーム好きのみなさま、今は簡単に制作側にもなれる時代なので、制作側に足を踏み入れてみてはどうでしょうか。

最後にこれからなのですが、今は立てた目標が達成できて燃え尽きたというか、とりあえず満足感でいっぱいなのでしばらくゲームは作らないかなと思います。でも、そのうち他のジャンルの簡単なゲームを色々作ってみたいなとも思っております。誰でも遊べる簡単操作のシンプルゲームが作りたいです、横スクとかシューティングとかクイズとか。

そしてそして最終的には、頭を使うゲームや教育に使えそうなゲームなんかが作れればいいなーという野望を持っています。私は教育に関心があるので、楽しく遊んでるうちに頭も良くなって一石二鳥!みたいなゲームが作れないかなぁと考えています。まあそんなものがあればみんなとっくに作って使っているんですけどね。夢物語も語るのは自由ということで。

こんな感じでこのnoteは終わりになります。note書ききったのもだいぶ達成感があります、卒業制作ポイントが上がりました(?)。私の人となりを知っている方は、書いてあることを納得しながら読んでいただけたのではないでしょうか。ぽいなと。もし私のことを知らないのにここまで読んでいただいた方がいらっしゃれば、本当にありがとうございました。ゼロの状態から簡単なゲームを1本作った事例として、何か少しでも参考になればと思います。

最後まで読んでいただき、本当にありがとうございました!「おんぷのもり」、楽しんでいただけると幸いです。

この記事が気に入ったらサポートをしてみませんか?