Unityでゲーム作ってみたいと思い、Unityを使ってノンフィールドRPGを作成するUdemyの講座を受講してみた。 www.udemy.com
Unity選んだ経緯
2021年現在ゲームエンジンの人気はUnityかUnreal Engineの2択っぽい。以下Unreal Engineと比較しての選定理由
- Unreal EngineはゲーミングPCみたいな高スペックのPCじゃないと開発が辛そう。普段使いのPCだとUnityの方が良さそう
- Unreal EngineはPS5とかXBoxみたいな据え置きゲームの開発に使われていそうだが、とりあえずスマホゲームやブラウザゲームが作りたい。であればUnityの方が手軽そう。
- Unreal Engineはプログラミングをしなくてもゲームが作れるのに対してUnityはC#でスクリプトを書いて開発していく。ただ、ゲーム開発は未経験だけど職業プログラマだしC#書くのは問題なさそう
- ネットの記事や書籍、オンライン講座などの情報も現状Unityの方がUnreal Engineより多そう
というような理由でとりあえずUnityに手を出してみることにした。
できたもの
講座内ではAndroidアプリとして公開すること前提に進めるけど、build設定をWebGLにしてブラウザで動かしてみた
できるようになったこと
- Unityの基本的なGUI操作
- C#での基礎的なプログラミング
- C#スクリプトでの2Dでのゲームオブジェクトの操作方法(ボタンクリックからのテキスト、画像、サウンドの切り替えやシーンの遷移など)
- Prefabでのオブジェクトの再利用
- サウンドの設定
- アセットストアの使い方
- 画像や音声などの素材の使い方
- アニメーションのやエフェクトの実装
エラーメモ
初期設定
Mac Book ProでOSはBig Surの環境で構築してみた。
Unity HubというUnityの複数バージョン管理するツールでUnity2020をインストールしてみる。
で、プロジェクト選択して立ち上げたら「「The project you are opening contains compilation errors. ...」みたいなエラーが出て言われるがままSafe Modeで立ち上げたらコンソールにエラーマークが出てるけど具体的なメッセージが出てこない。。
Safe Mode無視してそのまま立ち上げたら普通に動いたんだけどなんか気持ち悪いな。。
とりあえずエラーが出たのは初回だけでその後は普通に動作してそう。
DOTWeen
Udemyで買った講座を参考にDOTWeenというオブジェクトにアニメーションを追加するためのライブラリをインストールしたらコンパイルエラーになったがPCごと再起動したら直った。Unityだけ再起動してもダメだったんだけどこれもなんだったんだろう。Dockerコンテナいくつも立ち上げっぱなしにしてたりもしたんでリソース不足だったのか?
その他
WebGL向けの対応
この講座はAndrioidを想定して作られているけど自分としてはWebGLで自作のブラウザゲームを作って作って公開するのが第一目標なのでbuild設定をWebGLにして受講してみた。ただその場合は以下2点講座の内容と別に対応が必要。
- 画面幅がそのままだと崩れるので各シーンのCanvasの「UI Scale Mode」を「Scale With Screen Size」に変更する必要あり
- 日本語を表示する際にデフォルトのArelだと表示できないので日本語フォントをインストールする必要あり
今後
とりあえずクイズゲームみたいなシーンとテキスト、画像の遷移と最適源のエフェクトやアニメーションのみで作るゲームは自作できそうだけどもう少し凝った2Dゲーム(フィールド付きRPGとかレースゲームとか格闘ゲーム)を作るにはもう少しインプットの時間必要かな。。
あとUnityは3Dゲームも作れるけどそっちは全然わかってないので別途調べてみたい。