Unity初心者がゲームジャムに突入して得た教訓
一週間とちょっとぶりの更新となります。
この一週間、ちょうどGWに合わせておうちゲームジャムというのが行われていました。GWに合わせた5月1-10日にゲームを作成し、ヴァーチャルユーチューバーがそれを実況する企画だそうです。
https://panora.tokyo/archives/6356
初めて一週間、チュートリアルの途中だったのですが、無謀にも挑戦、しかもアセットは背景のみという意味のわからない行為をしました。別にアセットは縛ったわけではなくて、なんか、よく使い方がわからなかったんですよね。情弱です。
そんなわけでこの一週間、全然うまく行かなくて泣きながらやっていました。備忘録としてここに記します。
ちなみに作ったゲームはこれ↓。ゴミを片付けるゴミゲーです。多分パソコンじゃなきゃできないです。
https://unityroom.com/games/gomiwahaji
1.全体の流れ
僕はUnityを2Dアクションゲームを作りたいと思いながらやっているのですが、なぜか今回は3Dで物理計算を利用したものを作ってみたいと思いました。
イメージしていたのはこんな感じでパチンコに引っかかったボールをマウスのドラッグで引っ張り、飛ばし、先にある的に当てるような機構を考えていました。
まあでも後述しますが、これが全然うまく行かないのなんの。まず課題として
①マウスでボールを動かす
②パチンコのロープがボールに与える力の挙動
があります。①がね、よくわからないんですよ。Google先生に聞いてみると結構説明してくれるサイトが出てきました。こういう挙動にはRayと呼ばれる関数を使うとでできるとどのページにも書いてあるのですが、コードを読んでもいまいちわからず、コピペしてもちゃんと動いてくれないんです。
僕がなんかしら忘れてるに違いないのですが。
まあそんなわけで、自作したんですね。カメラ上(ゲーム画面上)のマウスの位置の座標を取り、そこから全体における位置関係(グローバル座標)に変換するプログラムを作ったわけですが、カメラって歪むんですよ。映す画面が平面ではないため、端っこがずれる。それも修正して、ってやっていくのは初心者にはきつかったです。しかも地面との接触判定がおかしくなってどっかいっちゃうし。
この時点で結構体力もってかれてました。
で、その後。SpringJointという機能を使ってパチンコを作ろうとしましたが、これバネの挙動なんです。本質的には一緒なので、これを応用してパチンコを作ることができたでしょうが、さっきの格闘で体力を削っていたのと、なんか画面構成が思いつかなかったので断念しました。
そこからはマウスを動かして遊べるゲームにシフトさせようと思って、ステージ上のものをどかしていく感じになりました。
ここからも大変でした。やったことといえば敵とアイテムの自動生成なんですけど、まあ右も左もわからないので一つ実装するだけで疲れる。それにとても大事なことなのですが、当初の予定のゲームではなくなって、もうモチベーションを保てなくなってしまったんですね。後半は「ヤダなーでも最後までやらなきゃ…と無理やり体を動かしてました。
あと、ネットランキングみたいなやつを作ろうとしたんですけど、バグって無理でした。
そして、一番最後の関門。そうビルドです。ビルドでエラーを吐いてしまって、もうこれの原因がわからなくて、治すのに6時間位かかりましたね。ネット上にある修正方法はほとんど試しました。
結局、原因はWindowsのユーザーフォルダの名前が漢字になってたからです。パソコンの初期設定で名前入力を漢字で行ったためそうなっています、そのせいで2byte文字がパス上にできてしまって、ビルドができていませんでした。
ええ、アカウント作り直しましたとも。きついきつい。
2.教訓
今回参加してみてゲームづくりの腕前が上がったかというと微妙ですが、制作の流れの中で意識するべきことがなんとなく教訓として残りました。
その1 ゲームのビジョンを明確にしておく
今回パチンコを作るということしか考えておらず、画面構成はどうなっているのか、なにが面白い要素なのか、どれくらいの労力がかかるのか、などなどそういったことを考慮をあまりせず見切り発車してしまいました。
もちろん勢いで始めるということも大切なのですが、勢いだけだとそれが止まってしまったときにもう動けなくなってしまいます。準備段階を長くするべきでした。
なにより明確なビジョンはモチベーションに繋がります。今回は本当にモチベーションの大切さを学びました。
その2 少しずつまんべんなくすすめる
今回ゲーム部分を作成してから大急ぎでタイトルと結果画面を作りました。だめですねこれは。手抜きしてしまいました。さっきの話と繋がりますが全体図ができていないためこのような形にならざるをえませんでした。一つを完璧にして次、では力の入る場所と入らない場所の差が明らかになってしまいます。気が抜けてしまうというのもあります。やはりモチベーション的な話です。
あと、こう一気に仕様を変更してエラーが出ると、変更した箇所が一箇所ならエラーが出た場所は明白ですが、そうでないと無駄に迷う時間ができたしまいます。体力的にも無駄なのでなるべく避けていきたいですね。
その3 (同じくらいのレベルの)友達をつくる。
あんまり他人の進捗報告とか見ていなかったんですけど、孤独はやはり寂しいものです。でも明らかに上の人を見つけて落ち込むのは馬鹿らしいので、おんなじくらいUnityを知っている友人と参加するのがいいと思います。これもやっぱりモチベーションの話ですね。
その4 演出(絵・音楽)は大事
僕はゲームプレイの仕掛けを考えていましたが、人は仕掛けには集まりません。物語や演出に集まるのです。加えて例えば作る上で操作キャラクターがきちんとできていると、動かしたくなり、やはりモチベーションにつながります。だから商業ゲームでいうところのコンセプトアート的なものを用意しておくべきだな、と思いました。
その5 モチベ
何度も言いますがモチベーションを維持することです。面白いゲームを作ろうというモチベーション。僕は途中から、「もう早く終わんねーかな、どうでもいいわ」って思いながら作っていた部分がありました。でもせっかくのお祭りなのですから楽しく作ってなんぼでしょう。
モチベーションを持つというのは「楽しく作る」とほぼ同義だと思います。
3. 感想
正直、今回はとてもつらかったです。きついとかではなく、「は=やんなきゃいけねえ」と半ば義務感のようにやっていた節があったような気がするからです。かんたんな仕組みでも、つまらないゲームでも、面白く楽しく作るのがなにより大事だなあと思いました。
でも参加してみてよかったと思います。初めて2週間ですが、1週間をこれをつくるのに使ったことは良い機会でした。
なるべく次も作って、今度は楽しい! と迷わず言えるような時間を過ごしたいものです。
ここまで読んでいただきありがとうございました。
この記事が気に入ったらサポートをしてみませんか?