Unity初心者が「宝石キャッチ」を作り始めた話。ゲーム制作1日目の記録

ゲーム制作

ついに、ゲーム制作を始めました。

これまでも「ゲームを作りたい」とは思っていましたが、Unityをダウンロードしただけで止まっていた状態でした。
しかし今回は、実際にUnityを起動して、簡単なミニゲーム制作に挑戦してみることにしました。

この記事では、Unity初心者がChatGPTに相談しながら「宝石キャッチ」を作った流れと、実際につまづいたポイントをまとめます。

まずはChatGPTに相談した

最初にChatGPTには、

「Unityをダウンロードしただけの初心者です。まずは何からやればいいですか?」

という感じで相談しました。

ChatGPT曰く、いきなり本命のゲームを作ろうとすると、必要な要素が多すぎて途中で止まってしまうかもしれないので、まずは小さなミニゲームから始めるといいよ、とのことです。

今回の目標は、

・キャラクターを動かす
・アイテムを落とす
・アイテムに触れたら消える
・スコアが増える
・アイテムがランダムに出てくる

といった、ゲーム作りの基本を体験することです。

その流れで提案されたのが、「宝石キャッチ」です。

落ちてくる宝石をプレイヤーで受け止めるだけのシンプルなゲームですが、初心者が最初に作るにはちょうど良さそうだと感じました。

今日やったこと

最初に言っておきます。
プログラミングの内容に関しては、全てChatGPTに書いてもらいました。

全てです。

自分でやったことは、ChatGPTに教えてもらった通りにUnityを操作し、コードを貼り付け、エラーが出たらスクショを送って確認することでした。

今回やったことは以下の通りです。

・プレイヤーを設置する
・プレイヤーを操作可能にする
・ジェムを設置する
・ジェムが降ってくる
・ジェムがプレイヤーとぶつかったら消える
・スコアを表示する
・プレイヤーとジェムがぶつかるとスコアが上がる
・ジェムがランダムに生成される

ここまでです。
ここまでで作業時間はおよそ3時間程度かかりました。

最終的に、「落ちてくる宝石をプレイヤーで取るとスコアが増える」という、ゲームの最小ループまで作ることができました。

もちろん、まだ見た目は四角いオブジェクトだけです。
それでも、自分の操作でプレイヤーが動き、上からジェムが落ちてきて、取るとスコアが増える。

これだけでも、かなり「ゲームっぽいものが動いている」という感覚があり、うれしかったです。

↑お願いするとこんな感じでコードを出してくれます。

つまづいたところ

もちろん、最初からスムーズに進んだわけではありません。
そこそこな数のエラーと戦う羽目になりました。

プレイヤーが動かない

まず、プレイヤーを動かすところでつまづきました。

言われた通りにコードを貼ったはずなのに、左右キーを押してもプレイヤーが動きません。

「もう最初から詰んだのでは?」

と少し焦りました。

コードが間違っているのかと思ったのですが、ChatGPTにエラー画面のスクショを見せると、どうやらUnity側の設定が原因らしいとのことでした。

指示された通りに設定を変更すると、無事にプレイヤーが左右に動くようになりました。

この時点で、

「エラーが出たからといって、必ずしもコードだけが原因とは限らないんだな」

と感じました。

宝石に触れても消えない

次につまづいたのは、プレイヤーと宝石の当たり判定です。

プレイヤーが宝石に触れているはずなのに、宝石が消えず、素通りしてしまう。

これもChatGPTに相談したところ、コードで指定している名前と、Unity上で設定している名前が少し違っている可能性があると言われました。

確認してみると、片方の頭文字が大文字で、もう片方が小文字になっていました。

名前を直したところ、プレイヤーが宝石に触れたときに、ちゃんと宝石が消えるようになりました。

たった少し名前が違うだけでも動かない。
こういう細かいところでエラーが出るのが、プログラミングなんだなと実感しました。

コードを貼る場所を間違えた

さらに、宝石をランダムに出すところでもつまづきました。

ChatGPTにコードを書いてもらい、それをUnityに貼り付けていたのですが、途中で間違えて別の場所に貼ってしまったようです。

その結果、エラーが大量に出ました。

さっきまで動いていたものが急におかしくなったので、かなり焦りました。

ただ、これもChatGPTに状況を説明したところ、どこが間違っていそうかを教えてもらえました。
正しいコードをもう一度出してもらい、貼り直すことで修正できました。

自分では何が原因か分からなくても、

「何をしたあとにおかしくなったか」

を伝えると、かなり原因を探しやすくなるのだと感じました。

スコア表示の位置がおかしい

最後に、スコア表示の位置でも少し迷いました。

本当は画面の左上にスコアを表示したかったのですが、最初は画面の中央に表示されてしまいました。

これもChatGPTに聞いて、設定を見直しました。

結果として、指示された作業を一つやり忘れていたのが原因でした。
簡単に言うと、配置の基準をどこに置くか、という設定を忘れていました。

そこを直すと、無事にスコアが画面左上に表示されるようになりました。

こうして振り返ってみると、エラーの原因はほとんど自分の操作ミスでした。

ChatGPTが作ってくれたコードそのものに問題があったというより、
自分が貼る場所を間違えたり、名前をそろえ忘れたり、設定を一部飛ばしてしまったりしたことが原因でした。

本当に優秀ですな。

ChatGPTに相談するときに意識したこと

今回のやり方としては、エラーが起きたり、想定した動作にならなかった場合、

・自分がやったこと
・エラーが出ている画面のスクショ
・どんなことで困っているか

をChatGPTに報告して、回答してもらった修正点をやり直す。
これを繰り返していました。

大体1〜3回くらいのやり取りで問題は解決しました。

今回やってみて分かったのは、ChatGPTに聞くときは、ただ「動きません」と言うよりも、情報をまとめて伝えた方が解決が早いということです。

具体的には、

・今やりたいこと
・実際にやったこと
・どんなエラーが出ているか
・今どういう状態になっているか
・本当はどう動いてほしいか

このあたりをまとめて伝えると、かなり答えてもらいやすくなりました。

特にスクショを送れるのはかなり便利でした。

自分では何が原因か分からなくても、画面を見てもらうことで、

「ここが違うかもしれません」

と指摘してもらえます。

今回の場合も、

・プレイヤーが動かない
・宝石に触れても消えない
・エラーが大量に出る
・スコア表示の位置がおかしい

といった問題を、ChatGPTに相談しながら一つずつ解決していきました。

プログラミングができない初心者でも、エラー画面や作業内容を共有しながら進めれば、少しずつ形にできるのだと感じました。

↑できたものがこちら

今日の感想

Unityをダウンロードしただけの状態から始めたので、自分にできるか不安はありました。

正直、最初はUnityの画面を見ているだけでも、

「どこを触ればいいんだろう」

という感じでした。

ウィンドウも多いし、見慣れない単語も多いし、最初から全部理解するのは無理だなと思いました。

ですが、3時間ほど作業してみると、プレイヤーの移動、ジェム落下、当たり判定、スコア表示、ジェムの自動生成まで作ることができました。

まだ四角いオブジェクトだけの簡単なゲームですが、「落ちてくる宝石を取ってスコアを増やす」というゲームの基本部分はできました。

自分で作ったものが画面上で動くのは、思っていた以上に楽しいし、嬉しいものですね。

もちろん、プログラムは全部ChatGPTに書いてもらっています。

それでも、Unity上でオブジェクトを配置したり、コードを貼り付けたり、エラーを直したりしていると、

「自分で作っている」

という感覚はちゃんとありました。

最初の一歩としては、かなり良い経験になったと思います。

次回は、30秒タイマーやゲーム終了処理を追加して、1プレイできる形に近づけていきたいと思います。

コメント

タイトルとURLをコピーしました