ゴマちゃんフロンティア

アザラシが大好きなエンジニアの開発日記です

「第12回 Unity1週間ゲームジャム」に参加しました!

time 2019/07/07

今回は7月1日~8日に行われたUnity1週間ゲームジャムに参加したので、そのお話になります。

お題は「あつめる」でした!
イメージしやすく様々なアイデアが出せそうなお題ですね。
「あつめる」ことをゲームの目的にするのか、ゲームを有利に進められるスパイスと捉えるかでまた変わってきそうです。

ゲーム紹介

「だんけつアザラシ」というゲーム名で公開しています。
https://unityroom.com/games/danketu_azarashi

流氷上に散らばるアザラシを集め、アシカと戦うゲームです。

プレイヤーはリスを操作し、アシカを叩いたり避けたりしながら、アザラシに話しかけて仲間にしていきます。
ステージ最奥にいるアシカの大群をすべて倒せばゲームクリアになります。

お題の「あつめる」要素は、一応アザラシを集めていると捉えてねじ込みましたが、やっつけ感は否めません。
一応アザラシを集めないと通れない岩を配置してあるので、ゲーム的な意味合いはあります。

各日の様子

1日目 (月曜日)

前述の通りイメージしやすいお題だったので、アイデアもすぐに浮かんできました。
今回の目標の1つに「脱うさぴょん」がありました。前2作ともうさぴょんが主役だったので、3作目は雰囲気を変えたかったためです。
いつも通りUnityプロジェクトを作り、フォルダ分けや設定などを済ませて寝ます。

しかし仕事から帰宅後に作業を始めてみると、アイデアが壮大すぎてとても間に合わないことに気付き、早くも方向転換に迫られました。
とりあえずどのアイデアの転んでも使いそうな共通部分の作成を目指します。

今回は前述の通りプレイアブルキャラクターをうさぴょんからこのリスに変えてみました。
「魔法が使えるちょっと弱気で真面目なリス」という設定です。

そして今回うさぴょんは敵役として起用します。相応に悪役っぽい色合いに変更しました。
しかし後述しますが、このうさぴょんはお蔵入りとなりました。

プレイヤーと敵キャラクターの制御と攻撃判定などなどを作って1日目は終了。

2日目 (火曜日)

まだどんなゲームにするかアイデアに迷っていたので、共通で使いそうな部分をメインに作ります。
とりあえず仮のタイトル画面を追加しました。

次にリスの移動モーションや攻撃モーションの調整を行います。攻撃にはエフェクトも付けてそれっぽくします。

叩きつけるモーション故、単発だとテンポが悪いので、ボタン連打で連続で叩けるようにしました。

まだゲームコンセプトも決まっていないのにこんなものまで作ってしまいましたが、とりあえずこの日はこれで終了。

3日目 (水曜日)

なかなか忙しく日付が変わってからの作業になりましたが、ちょっとアイデアが出てきたので、それを目指して実装します。
ずばり「リスとアザラシとの会話イベント」が欲しくなりました。

とりあえず「会話開始時」と「会話終了時」の処理を実装。アザラシ側のコライダーで「会話可能な範囲にプレイヤーが入っているか」を判定し、Enterキーを押すことで向かい合います。
会話ウィンドウの表示と会話送りは時間がなかったので次に回します。
また会話終了後にアザラシがリス (プレイヤー) に付いてくるようにしました。

余談ですが、この日に「Affinity Designer」を購入しました。
「フォトショやイラレみたいなソフト欲しい…でもAdobeCC高い」な時にちょうど20%OFFセールであったこと、個人利用としては機能的にも十分そうであったためです。
参考書も出ているようなので、落ち着いたらみっちり触ってみます。

4日目 (木曜日)

4日目ながら必要なゲームシステムすらできていない状態。さすがに焦りがでてきます。
先日の会話ウィンドウの実装から始めます。まずは画像ウィンドウを作るところから。

さっそくAffinityDesignerで作ってみました。まだまだ使いこなせませんが、慣れるとなかなか使い心地よさそうです。
会話は「誰が」「何を」喋るかが重要ですね。喋っているキャラの上に吹き出しを移動させ、あらかじめ定義しておいたメッセージを吹き出し内のTextに設定します。

続いてアザラシの攻撃アクションも実装します。込み入ったものである必要はないので、タックルでいいでしょう。

エフェクトがリスの杖攻撃の使い回しなので、6日目に専用のものに差し替えました。

5日目 (金曜日)

いよいよステージ作りに入ります。当初は「洞窟に迷い込んだアザラシと協力して脱出」的なものを想定していました。
が、開始早々詰まります。

実際のところはMesh ColliderConvexを外したら内側にはなりましたが、未経験で洞窟を作るのはモデルやテクスチャの関係で想像以上に難しそうだったのであきらめることに。
残り時間のことも考え、「アザラシならやっぱ流氷でしょー」ということで、海と流氷のステージを作りました。

細かい部分の調整も行っていきます。その中でも大きいものとして、ダメージ発生時のノックバック処理を実装しました。

また、前述の通り舞台を海にしたので、キャラクターが海に落ちた時の処理も書いておきます。
ゲームとしての体裁が保てれば良いので、「プレイヤーはダメージを与えてワープ」「アザラシはプレイヤーのところにワープ」「敵は即死」にしました。

プレイヤーが復帰した際は首をブルブルするモーションを入れます。海に落ちた後で平然と動き出したら不自然極まりないですからね。

そしてステージコンセプトが変わったことで、うさぴょんを起用するのは不自然になってしまったので、手持ちのモデルで使えそうなアシカをチョイス。
うさぴょんと同様、敵役として配置します。

寝る間際に一度WebGLでのビルドをテストしておきます。特に問題はありませんでした。

6日目 (土曜日)

さすがに疲れが溜まっていたからか、朝は10時まで爆睡。
起きたらまずは体力ゲージのUIを作成しました。これまたAffinityDesignerを使いました。

ステージと体力ゲージができたことで、やっと絵的にはゲームっぽくなってきました。
残り午前中で各不具合の整備やアザラシのテクスチャ調整を行います。

午後はレーシックの適性検査に行ってきたので、夜から作業再開です。
まずはアザラシの移動ロジックを修正します。プレイヤーを追従するだけでなく、近くに敵がいたらその敵を追いかけて攻撃するようにしました。
またエフェクトも専用のものを作成します。

次にゲームオーバーとなった場合の処理を作成。
超質素な画面ですが、もう時間がなかったので機能的な実装を優先しました。

クリア条件の整備もされていなかったので「最終エリアにいるアシカをすべて倒す」とゲームクリアとなるようにしました。
ということでアシカを配置しまくります。

ここまできてやっと最低限のゲームの体裁が整いました。

7日目 (日曜日)

最終日です。まだまだ終わっていないので気合を入れて取り掛かります。
まずは「アザラシを集めると吹き飛ばせる岩」を作りました。アザラシが足りていればEnter押下で吹き飛ばし、足りていない場合はメッセージを出します。

次にタイトル画面の整備です。前2作と同じく開始前にヘルプを表示するようにしました。

その後は通してプレイしたり、細かい気になる点やバグを潰していきます。
そして最後の最後でタイトルが決まったので、AffinityDesignerでタイトルロゴを作ります。

その後ビルドしてunityroomさんにアップロードしました。19時54分とかなりギリギリでの提出です。

感想と反省点

「設計が曖昧なままスケールの大きいゲームを作ってしまった」のが一番の反省点でしょうか。
前2作が比較的シンプルなゲームだったので、今回は広めのステージにあれこれ盛り込もうと考えたのですが、蓋を開けてみれば中途半端に終わってしまった印象です。
会話イベントとウィンドウの表示も数時間くらいでサクッと終わらせる想定でした。実際は2日間掛かってしまったわけで…。

自前で用意したモデルのアニメーションがガバガバで、修正に時間が掛かってしまったのも難点です。
特に新しくモデリングし直したばかりのリスですね。服の部分が突き抜けまくりで、調整するのにえらく時間を取られてしまいました。

総じてリスの初デビュー作にしては、ちょっと残念な出来だったかなーと…。
ただなんだかんだで1ゲームとして完結させ、ギリギリながらも公開に間に合わせられたのは素直に自分を褒めたいですね。
次回はシンプルかつコンパクトにまとまったゲームにしつつ、グラフィックや効果音など私の苦手な部分をブラッシュアップした作品を目指します。

down

コメントする