一記一遊ブログ

大学生活の中で起こった日々の出来事を日記形式で書き溜めていくブログ。現在1回生。

unityでゲーム制作

今日は1日家にいてunityでゲーム制作をしていた。unity自体は高校の時にインストールして、少しいじってみるぐらいはしていたのだが、ゲームを作るなどという段階にまでは至っていなかった。久しぶりにunity Hubを開いてみる。なんだか懐かしい。ここでふと、バージョンアップとかはしなくて良いのかなと気になり始めた。すかさずネット検索。どうやら今入ってるのはかなり昔のやつだったみたいだ。種類なども色々と調べながら、なんとかそれっぽいのを見つけ出し、ダウンロード。開いてみる。と、ファイルの検証が始まったのだが、途中で止まってしまい、「ファイルの安全性をAppleでは確認できませんでした。」との文字が。どうやら開けないらしい。バージョンが新すぎたのかと思い、その一つ前のバージョンをダウンロードしてみたが、それも同じ結果に。

再びネットで調べてみると、どうやらアップルのOSが新しくなった時に、ファイルの作成者が確認できないものは開けない仕様になったらしく、unityの配信元の信頼設定もまだなされていないのでバージョンに関わらず弾かれてしまうそうだ。弾かれても設定のセキュリティのところから続行できるようなので、3度目の正直、ようやく開くことができた。

さあさあこれでできるようになったぞと思い、unity本体を起動してみたら、アップデートが必要との通知が出てきた。あれ? Download new versionのボタンを押したらさっきまで開いていたサイトが出てきた。確かにダウンロードしたはずなんだけどなあ。

unity内にバージョン管理のところがあったので調べてみると、どうやらインストールは手動でやらないといけないらしい。大変だなこりゃ。たくさんあるモジュールの中から必要なものを選ぶ必要があるというのも知らなかった。MacWindowsとwebなんたらに対応したものを選び、あと日本語化のやつもあったので追加してインストール。

やっと設定が終わった。ようやくだ。情報系の分野ではこの「環境構築」も大変なステップなんだなと実感する。

まずは2Dのよくあるシューティングゲームを作ってみようと思う。何事もトライアンドエラーだ。メインキャラの画像が必要とのことだったので、銃を持った人の画像をいらすとやで探した。意外と真横を向いたやつがないな。最終的に車椅子に乗って銃を構えたパラリンピックの射撃のイラストを選んだ。これなら移動時に足とか動かさなくても不自然じゃない。我ながら良いチョイスだ。

床も用意し、当たり判定をつけて実行してみる。

実行画面

ゆっくりとキャラが床を突き抜け奈落へ落ちていった。設定が甘かったようだ。

その後はキャラがジャンプと横移動するスクリプトをネットと家にあった本を見ながら作成した。動くには動いたのだが、壁に突っ込んでいくとキャラが激しく振動してしまう。非常にカッコ悪いしなんとかしたい。解決策が思いつかないし、ネット検索の結果も芳しくないのでKMCのslackで質問を投げてみることにした。

初質問だ。ドキドキの瞬間。すぐにいくつかの返信が。どうやらスクリプトで位置を変更させるという書き方をしていたのが良くなかったようだ。スクリプトで壁にめり込む向きに座標を変えられ、その後物理演算で壁に跳ね返されるというのを高速で繰り返した結果のガクつきだった。スクリプトでのキャラの動かし方を、「キャラに力を加える」という書き方にすると見事におさまった。KMCの先輩方がありがたすぎる。

その後も試行錯誤は続く。重力の強さや空気抵抗の大きさをいじって思うような挙動を実現させようとするもなかなかしっくりこない。あと何だかキャラが床に引っかかって動かなくなる時がある。

再びネット検索。床を正方形のブロックをピッタリ並ばせる方法で作っていたのだが、キャラの当たり判定の角がそのブロック一つ一つの角に引っかかるのがどうやら原因のようだ。そんなことあるのか。

今日はここまでで終了となった。結構時間がかかるな。慣れていないというのもあるが、一つ一つの動作がやってみるまでどうなるか分からず、やってみても大体どこかおかしくなるというのは大変だ。だからこそキャラが思った動きをした時は一種の感動がある。ゲーム制作楽しいではないか!