[Unity1週間ゲームジャム] テーマ「あける」でFPS作ったので作成日記とかAssetsをつらつら書きます🎍
概要
🎍🎍🎍あけましておめでとうございます🎍🎍🎍
鍋入と申します。12/21~12/27の期間で1週間ゲームジャムがあったので参加しました。
今回のゲームジャムに参加してNoteの記事を出すと、なんと「ユニティちゃんデスクトップフィギュア」と「Unity Asset Store 10%割引クーポン」がもらえちゃうらしいです。抽選なしで。wow。
というわけで作成工程とか使用したアセットを備忘録として書きます。こういう書き物に慣れておらず、日本語怪しい部分が大半になるかと思います。アセットや画像だけパパパッと見る感じの読み方をお勧めします🎍
12/23(実装0日目): 作るもの決め
今回のテーマは「あける」でした。ひらがなだと色んな事柄に結び付けられそうで助かりますね。
今回私が作るものを決める際、以下ページのような国語辞典を睨みつけて天啓が来るまで待つ方法を採りました。
天啓が下りました。おじさんが第3の目を開けるゲームがよさそうです。
「<誰々>が<どこどこ>で<何々>する<ほげほげ>ゲーム」に当てはめて、「スーツを着たおじさん」が「オフィス」で「第3の目を開ける」「シューティングゲーム」を作ることにしました。
こんな感じの企画の決め方は以下動画の方でいい感じに説明されていました。
第3の目を開けるおじさんを表現する方法としては、DoomFaceな感じでFPSのUIとして置く感じで... いらすとやのおじさんの絵をチョチョイと....
OKそうですね。
12/24(実装1日目): 3dレベルの作成 + プレイヤーの動き
FPS作ることにしちゃったので、3dのステージを作らないといけなくなりました。困った🤔 タカタカ...
なんかSnaps Prototype : hogehogeなる無料アセットを使うとスパパパッとステージ作れるぽいそうです。詳しくは見てませんが、選んだSnaps Prototypeに対応するSnaps Art HDなどを購入すると、後から高品質モデルへリプレースができるみたいです。wow。
というわけでパパっと作ります。リモートワークで記憶が薄れている社内の風景を脳から絞り出してオフィス作ります。
大体こんな感じ...ライティングも適当に... 環境光明るめにして光源なしでも見えちゃう感じに....
よし(適当)
キャラの動きは適当に unity fps script で検索してパパっとコピリました。ロジック考えたほうが脳に良さそうですが、ゲームが作りたかっただけなので仕方なし。
次に作るゲームの根幹となる「第3の目」システムに取り掛かりました。目を開いている間だけ見える敵とかを出したりします。
まず第3の目を開いているときだけ可視化されるレイヤーを作って...
スクリプト上から、カメラのCullingMaskからレイヤーを引いたり入れたり...という感じにしました。
if (isOpening3rdEye)
{
playerCamera.cullingMask |= (1 << Need3rdEyeLayer);
}
else
{
playerCamera.cullingMask &= ~(1 << Need3rdEyeLayer);
}
見えないものが見えるようになるだけだと味気なかったので、画面効果ギュインギュインに利かせるようにしました。RGBシフトかけてます。
あと常時テレビっぽいブルームかけたりしてます。
12/25(実装2日目): プレイヤーの動きの作成 その2
適当にリボルバー銃のモデルをAssetStoreから拾ってきて適当にAnimationつけて.... 効果音つけて...
よし(適当)
寝ました。
12/26 (実装3日目): 銃のエフェクトと敵の実装
弾出すシステムをRaycast、着弾エフェクトをParticleSystem使って出す感じでやりました。数年前に以下の記事見てやり方覚えました。
raycastで対象にダメージを与えるメソッドまでは書けたので、次は敵の実装に入りました。
巡回とかさせず、速攻でプレイヤー向かって進んでくる感じのローコストな敵をバッと作りたかったので、「navmeshAgent」コンポーネントを使って適当に作りました。以下の記事とか見てます。
移動してくる敵のおなかあたりに即死判定を付けて....
リコイルはdotweenでカメラ操作処理部分にバイアスかける感じでやりました。
大体ゲーム完成したわ! 寝たろ!
12/27 (実装4日目): 初期化処理と初稿
肝心のゲームオーバーとゲームクリアが1week最終日でできてなかったみたいです。
プレイヤーの状態、敵の状態をリセットする処理が作れておらず、ゲームオーバー時のリセットすらままなっていなかったのでそちらから対応してました。
敵に接触されたら暗転->スタートに戻されるという感じでローコスにして....
続いてクリア条件を....「敵全滅」-> 「エレベーターに向かう」という感じでローコスにして...
大体最低限ゲームオーバーとクリアが組めたのでwebGLで吐いて遊んでみたところ...何点か問題が発生しました。
・ドチャクソ重い
遊べないレベルで処理落ちしてました。地形をstaticにし、不要な小物のコライダーを全撤去することで改善されました。lightingも軽い感じに修正したかもしれません。
・マウスでのカメラ操作がスムーズにいかない
処理落ち時の操作がトビットビだったので調べてみたところ、以下の記事でも紹介されているやらかししてました。マウスの移動量にdeltaTimeを掛け算していたようです。
急いで修正後、ひとまず12/27 20:00の期日までにアップロードを済ませておきました。
ここからunity2weeksとなります。
....
12/30 (実装5日目): OP、EDの作成
2日ほどサボったあと、OPとEDの作成を進めました。いらすとやの絵をチョチョイとAnimatorで動かして....
よし。
12/31 (実装6日目): 操作説明とオプション
操作説明は黒帯にテキストで出す感じにして、最初のステージを操作確認部屋にすることにしました。
オプションに関しても、Time.TimeScaleが0になるポーズ機能作ってそこにSlider置くことで解決。
1/2 (実装7日目): ステージシステムの作成と敵の種類の追加
元旦、サクナヒメにハマってしまったのでサボってました。
ステージについては、地形を使いまわして敵の沸き位置や敵の種類が変わる感じにして、あたかもオフィスの階を上っている感を出させようとしました。
各レベルを表現するオブジェクトに敵の沸き位置情報を持たせているだけな感じです。
ラス面まで作って再アップ。私のunity1weekは12/27 20:00を軽く通り越して1/2 18:07で終了になりました。
https://twitter.com/nabeudon78/status/1345323766373515264
反省会
・低工数3Ðのゲームはアセット寄せ集めになりがちなので雰囲気の統一が困難。画面効果かけても無理がある。1weekは2dゲーの方がいい、もしくはボクセルスタイルで統一?
https://styly.cc/ja/tips/3d_software_magica-voxel/
・開発後半に初期化処理を作るのがめっちゃしんどかったです。ゲーム開始からクリア、ゲームオーバーまでのサイクルは早めに着手すべき。
・ローポリゲーの室内、環境光(Environment)をちょい明るめに設定すると光源置かなくても見えやすくなる
・もうちょい早く着手すべきでは
以上になります。個人的にはFPS作れたので満足。またFPS作るときはdoomっぽく敵とか武器もスプライトだけで表現してみたいです🎍
🎍🎍🎍🎍最後まで見ていただきありがとうございました。🎍🎍🎍🎍
.....これでフィギュア貰えるんですかね? 貰えたら嬉しいなぁ。
後日談
フィギュア貰えました、やったぁ。
プレゼント企画かなりモチベになりましたのでまたやって欲しいなぁ
この記事が気に入ったらサポートをしてみませんか?