決まる! 転ぶ!?・・・着地のおはなし

私は反射神経ものは苦手です(きっぱり) なので、FF7のミニゲームには非常に苦しみました(^^;
ベストスコアは狙えないものの・・・「どうすれば高得点が狙えるか」は、やはり気になるところです。でわでわ:



波乗りのルーチンは、ROM3E:4071〜 でかなり大がかりなプログラムです。

【着地】
    どんなに格好良くジャンプしても、転ぶとなんにもなりません。うまく着地できる/転ぶ条件の部分を解析してみました。(ROM3E:45ECで始まるルーチン)

      着地の判断に使われるのは、着地ポイントと、その時のピカチューの姿勢です(まぁ、あたりまえでしょう)

       

      波の部分は具体的には、この図のようにコード化されています(C5EF #実際は16進です)。この着地ポイントと、その時のピカチュウの姿勢(C51D:左から、1,2,3,4,5,6,7) で判断されます。

      ちなみに回転中のピカチュウの姿勢は、08〜0EHで、転んで転覆してしまった時は10Hです。次の表で、着地した時の処理を、着地した場所と、そのときのピカチュウの姿勢(上の絵の1〜7)で、どう評価されるかまとめましょう。

      姿勢
      上り坂(6)×××
      波頭(20,18)×
      下り坂(7)×××
      それ以外××


      ×:ころぶ  △:なんとか着地  ○:まずまずの着地  ◎:ばつぐんの着地

      着地の仕方で、次の波でのジャンプの高さが決まります。
      ちょっと難しいですけど、プログラム中での処理は・・・(ROM3E:45EC〜)

        ジャンプの高さ H = z *8 /256

          (1) H=10以下の場合はジャンプできない(転ぶとしばらくジャンプできないのはこれですね)
          (2) 1歩進むごとに、z=z+2 ただしz=512になった段階で打ち止め
          (3) なんとか着地の場合は、z=z-128 まずまずの着地だと、z=z-64 ばつぐんは減点なし
          (4) ころぶと z=64

      要するに z>320でないと、ジャンプできなくて、着地での減点が少ない程、高くジャンプできる(=たくさん回れる)ってことです。

      また、ジャンプは十字キーを押すタイミングではなくて、Hの値だけで決められるので、 波に乗り上げたら、とりあえず「→」か「←」を押していればジャンプして回ってくれます(その後の回転とか着地はタイミングがすべてだけどね)


【かっこよさのポイント】
    かっこよさの評価は、ROM3E:4BD5H〜でやってます。ポイントは・・・

      500点:3回転していて、前転後転どっちもやってる
      350点:どっち回りでもいいから、3回転
      180点:2回転していて、前転後転どっちもやってる
      150点:どっち回りでもいいから、2回転
      50点:どっち回りでもいいから、1回転

      ちなみに前転、後転どっちかだけの得点の計算は、50x(1+2+4+8+・・・)=Σ2^(n-1) (nは回転の数)で計算されますから、もし4回転ウルトラジャンプができれば、50x15=750点が出る(はず)です。


    かっこよさの情報は10進数の形で、(C5DA,B)に書かれます。


【HP】
    HPは1歩(画面が書き換えるたびに、−1ずつされていくので、必ず減っていきます。あとは、どこでゲームが終了するかで、その減り分をなるべく少なくできるかがポイントですね。

      ゲーム終了(途中でゲームオーバーじゃなくて)の条件は、上の【着地】のところで出てきた、zの値の累積で決まっていて、z>17FFFH(10進数だと1,572,863)になると波乗り終了です。なので、転びまくっていると、ゲームがなかなか終わらずに、結局HP=0となって、途中で「ざんねん」になってしまうわけですね。

      なので、HPを高得点にしたかったら、着地をズバっと決めて、なるべく早めにゲーム終了させるというのが秘訣です。




結論:すべては着地! 要するに動体視力と反射神経です・・・・(^^; こんなのできね〜

戻る