初心者が2週間かけてUnityで作ったアプリをGooglePlayにリリースしてみる話 第15(延長戦1)日目
「延長戦が続くとタイトル変えないといけないのでは??」
期限を一度伸ばしてしまうと直ぐに怠けそうになるのを何とか踏み止まっている、先端のマーシーです。
1. ジャンプパッドの追加とアニメーションの変更
前回までの記事で何度か触れましたが、ゲームの進行中に一定間隔で落とし穴を追加する予定でした。
ただ落とし穴を検討した時にモデルの用意と床の挙動と相性が悪いことがわかりました。
そして色々なことを考慮すると、地面にそのまま巨大な障害物とジャンプ台をセットで置いてしまえば良いのでは?と考えました。
その第一段階として一定間隔でギミックの代わりにジャンプ台を生成するスクリプトを書きました。
それがこちら。
ジャンプパッドの実装とアニメーションを調整するなど#Unity #madewithunity #プログラミング #ゲーム開発 pic.twitter.com/KPdSHnGwzA
— 先端のマーシー (@Masashi_Sentan) 2021年9月23日
現状では飛距離が一定ですが、スピードに合わせて高さを変えようと考えています。
これにより「スピードが足りないままジャンプ台に乗る」→「障害物に衝突してゲームオーバー処理」という形で落とし穴と同じ挙動になるよう近付けていきたいと思います。
2. ゲームオーバー時の挙動を追加
さて、現状で考えているゲームオーバーの条件ですが
- スピードが0になる
- 巨大な障害物に衝突する(落とし穴の代用)
の2つを考えています。
こうした条件を迎えた時に即時、リザルト画面など別のシーンに移動してしまうとぶつ切りされた感覚になってしまいユーザ体験が低下すると考えました。
そこでゲームオーバー条件時には倒れるアニメーションを追加し、ゲーム内時間を停止した状態を実装しました。
アイテム等の実装でコンティニュー操作や広告の表示などを今後やり易くしておくためでもありますね。
暫定的な実装段階の画面はこちら。
スピードが0になると倒れるアニメーションまでは簡単でも、全部のスピード停止と組み合わせるのが重労働
— 先端のマーシー (@Masashi_Sentan) 2021年9月22日
オブジェクト指向じゃなければもっと時間かかりそう#Unity #madewithunity #ゲーム開発 #プログラミング pic.twitter.com/f27sHYuXEv
アニメーションの遷移も問題なく出来ていますね。
アニメーションコントローラでの各アニメーションでの遷移(transition)方法で、Has Exit Timeを全てoffにしています。
ゲームなど、動作の途中でも直ぐに変更した場合はオススメの方法です。逆にアニメーションが終わる毎に変化させたい場合はonにしておいた方が良いかもしれません。
今後の予定ですがゲームオーバー処理の作り込みも必要なのですが、そろそろタイトル画面やUIなども作っていきたいところですね。
進捗動画なども挙げていきますので、Twitterのフォロー等もよろしくお願いします!