はじめに
こんにちは@YAMAです。カウントダウンカレンダー2022冬12日目の記事です。
今回は普段研究会に出ておらず幽霊してる僕ですが、実はひっそりとUnityでゲームを作っていたんです! 本記事は僕が今年度に入ってから、Unityを勉強して簡単なゲームを作った経験についてお話しします。
Unity勉強期間
まず、使った教材に関してはこれです。
友達にUnityの勉強におすすめな本を聞いたら教えてくれました。実際とてもよかったです!
まず、表紙がかわいくて、文章がとても読みやすかったです。僕は最初めちゃくちゃUnityにハードルを感じていました(なんかめちゃくちゃ重そうだし、機能が多そう)。しかし、この本を一通りやることでかなり自信がつきました。また、Unityは機能が無限にあるので、最初はできるだけやりやすい教材で概要をさらって、あとはやりたいことの必要に応じて勉強するしかないと僕は考えました。実際あとあとゲームを作る段階で調べたことの方が圧倒的に多いです。次に、内容が充実しているのがよかったです。わかりやすい上に、2Dと3Dゲームの作り方を徐々にレベルアップしながら学べて、スマホへのビルド方法も紹介されています。僕に必要な基礎知識はだいたいここで得ることができました。みなさんにぜひおすすめしたいです!また、本以外の教材としてUnity公式のチュートリアルも良いらしいです。
作ったもの
ここで僕が作ったものを紹介します。完全に別サークル*1の活動の一環で大変恐縮ですが、BiosensorPuzzleというパズルゲームを作りました。このリンクから遊べるのでぜひ試してください!(スマホは未対応なのでPCで)
ルールはみなさんが多分小さい頃にやったことある水道管ゲームと同じで、水道管を回転させてスタートからゴールまで繋げようていうシンプルなものです。ただ、このゲームでは水道管がDNAになっていて、またこのゲームは生物的なセンサー*2を模しているため、スタートは検出物質、ゴールはGFP*3という光るタンパク質になっています。空白になっている枠は、左にあるパーツをドラッグして当てはめる用のものです。全てのDNAが正しい向きになっていることと、空白に正しいパーツを入れないと正解にならない仕組みになっています。
実装済み機能一覧
- (i)をクリックしたら、説明つきのモーダルが出てくる
- 繋がってるパーツで正解判定する機能
- クリア画面 / ゲームオーバー画面
- モーダル中はカウントダウンが停止
- カウントダウンをメスシリンダーで表現
- ストップボタン
- 再生ボタン
- リセットボタン
- ホームに戻るボタン
- タイルを回転させる
- 空白の枠に正解パーツをはめる機能
- 正解パーツ以外を弾く機能
- BGMの適応
- イラストの適応
未実装機能一覧
- 複数コース選択画面
- クリア時間による星の変化
- ゲーム履歴の保存
- スマホアプリでビルド
感想
つらかった点
1.Unityって言うてるほど簡単じゃない
ネットの情報によると、Unityでめっちゃ簡単にできるらしいけど、実際それなりのものを作るに結構大変だったりします(個人差あり)。この規模のものでも結構つらかったので、大規模ゲームや商用ゲームを作るのはガチで天才ですね。
2.ビルドが長いのが苦痛
ビルド時間が長いっす。瞬時にコンパイルできる言語とかホットリロードがあるものしか触ったことなかったので、待ち時間にイライラしました。あと、プレイモード中に編集した内容が消えるのが許せなかった。
3.設計がイケてない
何ができるかわからなかったので、終始調べながら作りました。そのため、状態管理やコンポーネント管理みたいなのがかなりいまいちで、生jsでモーダルを表示させるみたいなことをしてました。本で勉強してたときはゲームマネージャーの意味がわからなかったけど、いかにそれが重要か実感しました。
よかった点
1.ゼロから作る経験を得た
自分で考案して、必要な機能をリストアップして、とりあえず1つのゲームと言える形のものを作ったのはいい経験だと思います。以前何個かwebアプリを作った経験はあるのですが、同じことをしたい人の記事を結構参考にしたりしました。しかし、今回はどんぴしゃなものがなかったので、結構自分なりに工夫しました(もちろん色んな人の記事や動画を参考にしたことには変わりないですけど)。とりあえず自分なりの方法で作ってから、リファクタリングや設計とかを考える方が成長することを実感しました。
2.情報収集手段が増えた 自分のやりたいことがかなりマイナーなので、日本語ではサンプルがなく英語で検索するしかありませんでした。謎のインド人のYoutube動画は多いに役にたちました。
今後の発展
- UnityでVR, ARとかやりたいね
- Unityでプロジェクションマッピング的なの作りたいね
- ゲームのサーバーやAPIとか作ってUnityと連携したいね(ゲーム性よりむしろこっちに興味ある)
- 良さげな本や記事
*1:iGEM-Wasedaという生物版ロボコンみたいなサークルです、詳しくはhttps://twitter.com/wasedaigem
*2:バイオセンサー: 生物内の酵素や細胞膜で特異的な物質が結合し反応が進行することを利用したセンサーのこと
*3:GFP; Green Fluorescent Protein 緑色蛍光タンパク質, Lチカみたいなノリのやつです