Unityやゲームプログラミングの知識ゼロの状態で、動画を見てUnityでブロック崩しを作成してみました。
IT技術者としての単純な興味と、副業で何か小遣い稼ぎできるものがないかを考えるためにやってみました。
私の技術スキル
私の技術スキルは以下です。
・Unityは、初めて
・Visual Studioは経験豊富
・C#は未経験
C#はJavaを知っていて、C#はJavaとほぼ言語仕様は同じなので、今回のプログラムぐらいなら問題なし。
いろいろなツールを使った経験が多いので、初めてのツールの操作と仕組みもだいたい理解できます。
参考にした動画
YouTube 「ひさしぶりにUnityでブロック崩し作ってみた。 」
https://www.youtube.com/watch?v=a1uV3tol41Y
Udemy(動画学習プラットフォーム)
「ブロック崩しを作って学ぶ!Unityゲーム開発入門」
プログラミング未経験でも大丈夫!作ったゲームをAndroidにインストールしたりWebで公開して友達に遊んでもらおう!
Udemy「ブロック崩しを作って学ぶ!Unityゲーム開発入門」
最終更新日: 2021/9 合計2.5時間
この動画が少し古いので、今回私が利用したUnity 2022.3.5と画面が少し違いますが
そこまで問題にならないレベルの違いでした。
定価だと、27,800円します。
いい動画ですが、定価だと高いですね。
会社で Udemy Business を契約しているので、それを利用。
(見放題なので、いろいろな分野の知識を学んでいます)
さすがに業務に直接関係ない分野の動画は、プライベートの時間で視聴しています。
ブロック崩し作成でやったこと
マウスでバーを操作して、ボールを跳ね返してブロックを壊していきます。
以下の作業を実施しました。
1つずつの工程は10分程度で作成可能です。
・壁を作成
・ブロックを作成
・ボールを作って落下させる
・ボールを跳ね返らせる
・C#プログラムでボールに力を加える
・操作するバーを作成
・バーの移動を制限する。
・色を変える
・ゲームクリアを作る
・ゲームオーバーを作る
・リトライを作る
・スコアの管理とスコア表示を作る
・ブロックに当たった時の爆発エフェクトを付ける
・ボールに軌跡をつける
・効果音とBGMを鳴らす
必要なもの
パソコン
今回利用したWindows PCです。
簡単なゲーム作成なら、こんなスペックは高くなくて問題ありません。
HP Victus 16 (2023年11月購入) (PC1)
Windows 11 Home 23H2
CPU:Intel Core i7-13700HX
GPU:NVIDIA GeForce RTX4060 8GB
メモリ(RAM):16GB
Visual Studio Community Edition
マイクロソフトが提供している無料の開発ツールです。
Visual Studioは、いろいろなプログラミング言語をサポートしていますが、UnityではC#(シーシャープ)を使用します。
Visual Studioでは、Unityでの開発に必要なライブラリなどのモジュールも簡単にインストール可能です。
Visual Studioをインストールしていない場合、Unity Hub(Unityエディタ)のインストール時にインストール可能です。
作成したもの
Unityエディタの画面です。
こんな感じでチマチマと作成していきます。
部品を作成して、配置して、色を付けて、動きをプログラミングして、動作確認しての繰り返しです。
(1)ブロックとボールを配置
(2)ボールが当たったら、ブロックが消える処理を追加(3)色を付けた細かな調整
(4)Visual StudioでC#言語のプログラムを作成
Unity上の物体(オブジェクト)にC#で作成したクラスを関連付けて、動作させます。
以下は、Unity上のBarという物体に”Bar”というクラスを割り当てています。
感想
IT技術者の観点での感想です。
Unityがよくできていると感じたところ
・C#のプログラミングの部分とUnityエディターの連携がスムーズです。
例えば、C#のプログラムで、public変数を定義すると その変数がUnityエディターのパラメーターとして設定できます。
プログラムを変更せずにUnityエディタのパラメータでゲームの動作を変えることができます。
・Unityエディターで実行ボタンを押すと、Visual StudioのC#のコードがコンパイルされて実行されます。
難しいと感じたところ
どこに何を設定するのか、どうプログラミングしたらいい?
ゲーム以外のプログラミングと同じですね。
標準で用意されているライブラリと、拡張ライブラリなどの把握が必要です。
・〇〇するためには、△△のクラスの□□のメソッドを使う
・どういうアルゴリズムで処理を行う
・Unityで用意されているライブラリの機能の把握。
どこまでが設定や基本機能で対応可能か。自分でゴリゴリ作る必要があるのか。
・動きのコントロールは数学や物理的な知識と試行錯誤が必要
まだ先は長い
当たり前のことですが、まともなゲームを作るにはいろいろ学ぶことがありますね。
以下は今回のゲーム作成で感じたこと。
・今回は基本的なオブジェクト(部品)をそのまま使ったが、Blenderなどの3Dモデル作成ツールでモデル作成などが必要
・どういうアセットが使えるか、アセットに関する知識
・BGMや効果音、テクスチャなどの画像の自前での作成
C#で作成したプログラムのデバッグはどうする
最後に
ゲームのプログラミングは初めての経験でしたが、意外と簡単に作成できました。
これ以降が難しくなりそうですが。
IT技術者として一番気になっていた、物体とそれを動かすプログラムの役割が理解できました。
Unityを使ったゲーム開発の全体的な印象は、面白い面と大変と思う面が半々ぐらいかな。