PETAMPER【PART59】~メインゲーム以外の最後の仕上げ~

LINEで送る
Pocket

これまでにステージセレクト、オプション、クレジットと、メインとなる部分以外を一通り作りました。

019

027

025

現段階でもそれぞれの画面の目的は果たしているので、最低限この状態でもいいのですがまだ問題があります。それは次の2つ。

①操作をしていないと画面上に全く動きがない

②遊び心がない

特に①は問題です。人によっては「あれ?フリーズしてる?」と不安に思うかも知れません。

コンシューマゲーム(家庭用ゲーム機のゲーム)の場合、フリーズやハングアップだと誤解させないため『画面上で常に何かしら動いていること』が求められます。もちろんポーズ画面やデータのロード画面でも同様です。スマホ向けのゲームや、インディーゲームではあまりその辺の規約は厳しくないかも知れませんが、だからといってやらなくていいとは思わないので、今回はこれを解消していきます。

 

画面に動きを付けつつ、同時に②の遊び心も出しつつ、でもそれほど手間暇掛けている時間もない…。ということで、ステージ上にも登場する小さいキャラクター達を散りばめることにしました。

041

040

039

ステージセレクト画面は全部2Dで作られているので、違和感がないようにキャラクターも3Dモデルをキャプチャーして2Dにしてから表示させています。なんかこのキャラクターを見ているだけでも癒されるような楽しげな雰囲気が出てきました。

 

ついでに、ゲーム中のポーズ画面にも同じキャラクターを表示してアニメーションさせました。

043

この時になって初めて気付いたのですが、ポーズ中にも関わらずAnimatorで動かしている背景の3Dキャラが止まっていません。以前実装したポーズの処理では、パーティクル同様アニメーションも止まらないようです。背景だけならいいのですが、ステージ上に障害として登場するギミックもAnimatorで動かしているため、かなり致命的な事態です。

こりゃ、いかん!ということですぐにアニメーションを停止させる処理を追加しました。

Animator.Stop();、Animator.Play();という関数もあるのですが、これだと停止したところから再開するのではなく、アニメーションの最初から再生されてしまうようなので、別の方法で停止させることに。

044

まずこんな感じでAnimatorの変数を用意。(背景のキャラクター用と、ステージ上のギミック用とで2つ用意していました)ステージごとに指定できるようにPublicで宣言しておきます。

で、ポーズ処理を行うときに、停止させたいアニメーションのスピードを0にします。

045
これで、ポーズボタンを押した時の状態からアニメーションが進まなくなります。再開するときは、このAnimator.speed = 1fに戻してあげれば、止まった再生位置から動き出すようになります。

とりあえずこれでOK。しかしこの段階でこんな危険な見落としをしていたとは…。危なかった…。

まぁ、ひとまずはこれでステージの量産以外の全ての作業が終わりました!!もっともっと手を加えたいところもたくさんありますが、時間的にもう限界なのでここからはステージ量産に全てを注ぎます。ここまでかなり色々と実装してきたので、次回あたりでは現状の様子を動画でお伝えしたいと思います。

 

スポンサーリンク

スポンサーリンク

LINEで送る
Pocket