この記事はtraPアドベントカレンダー8日目の記事です。
@ikura-hamuです。夏休みにUnityを勉強してちょっとしたゲームを作ったので、その報告を書きます。ダウンロードリンクは こちら です。(Windows版のみ)
記事なんか興味ないという方はダウンロードだけして遊んでください。ゲームなんか興味ないという方は記事を読み進めてください。どっちも興味ないという人はしょうがないので他のtraPの記事を読んでいって下さい。どっちも興味ある人はダウンロードしながら記事を読んでください。
どんなゲーム?
今回作ったのは 「Small and Large」 という3Dゲームです。ボールを大きくしたり小さくしたりしながらギミックをクリアして時間内のゴールを目指す、パズル×アクションゲームです。詳しい遊び方はダウンロードしたフォルダの「トリセツ.txt」というファイルに書かれているので、遊ぶ方はまずはそれに目を通してください。また、タイトルの「?」をクリックするとギミックがどのように動くかなど実際に操作して確かめることができます。
プレイ画面やプレイの様子ははこんな感じです。
例えばこのステージでは、ドーナツ状の穴を通り抜けるために小さくなり、その後シーソーを押し下げてゴールへ行くために大きく重くなるという操作が必要になります。このようなステージが全10ステージあります。
初Unity
今回初めてUnityを触りました。ゲームを作りたくてtraPに入ったはずなのになろう講習会とかいう魔のすばらしい講習会をうっかり進んで受けてしまってWeb開発も楽しくなってきたのでUnityをやるのが遅れてしまいました。
UnityもtraPの部内講習会で勉強しました。traPにはなろう講習会のほかにも様々な講習会があり、その一つにUnity講習会というものもあります。この講習会ではUnityの基本的な使い方から始めて、最終的には簡単なFPSゲームを作ります。この講習会自体は5月に行われたのですが、多くの講習会は資料のMDとアーカイブの動画が残っており、質問にも先輩が答えてくれるすっばらしい環境があります。僕は前期の試験が終わってすぐにUnityをインストールし、講習会のアーカイブを観て勉強しました。
↑講習会で作った超簡単FPS
頑張った点・反省点
今回たぶんプログラムで技術的に難しいことはしておらず、物理演算もUnityに丸投げしていたので、ゲーム部分でやってることはボールの大きさと重さの変更と時間計算がほとんどです。大きさを変更しただけだと重さは変わらないので、Rigidbody
のmass
を、Transform
のlocalScale
の3乗に比例して大きくする必要があります。
むしろシーン遷移や音の管理などゲームの本質とは異なる部分でかなり苦労しました。また、Unityのスクリプトのディレクトリ構造についての知識が皆無な上に勉強しようとしなかった(かなり悪い癖)ので、全てのスクリプトが同じScriptsディレクトリに入っており、開発終盤は目当てのファイルを見つけるのに苦労しました。これからはちゃんとファイルを整理しようと思いました。
また、ギミックのデザインが0だったので、かなりわかりにくくなってしまいました。ステージはProBuilderとUnity備え付けの3D図形作るやつを使いましたが、直方体を並べただけのステージになってしまったので、「赤の四角って何がおこるんだっけ」みたいなことになってしまいました。もうちょっとデザインを凝ってわかりやすくしたいと思いました。
Unityは3Dを簡単に作れるのが便利な点だと思いますが、操作に慣れるまではかなり苦労しました。図形をいじる方法が良くわからず、ProBuilderの機能をちゃんと使えないまま最後まで行ってしまいました。しばらくしてボタンのアイコンやキーボードショートカットを覚えてからはちょっと作業が早くなったので、もっとたくさん使って慣れていきたいと思います。
今この記事書いててタイトル適当だなって思いました。なんかいい感じのやつがあったら教えてください。
工大祭で展示した
完成したゲームを東工大の学園祭である工大祭で展示しました。(工大祭記事はこちら)当日はスタッフとして働きましたが、結構いろんな人に遊んでもらえていて嬉しかったです。ルールや操作がシンプルだったので、小さい子供たちにも遊んでもらえて、結構はまってくれた子もいました。「ピタゴラスイッチみたい」と言われて、確かに似てると思いました。「ボールが転がってゴールまで行く」というだけでも面白いんですよね、ピタゴラスイッチ。
個人的なハイライトは、2,3歳ぐらいの男の子が、ボールを最小の大きさにしてジャンプパッドのギミックまで持っていき、めちゃくちゃに跳ね上がるのを見てケタケタ笑ってたことです。本来の遊び方とは違いますが、すごい楽しそうだったので、作ってよかったと思いました。
他の人が自分のゲームで遊んでいるのを見るのはすごい楽しかったです。やっぱりゲームを作るモチベーションの一つとして人に遊んでもらうことっていうのは大きいですね。
おわり
この記事はこれで終わりです。最後まで読んでくださった方ありがとうございました。ぜひ上のリンクから遊んで、感想をブログのコメントで書いてください!
次のアドベントカレンダー2022担当者は@kamechaさんです。