装備一覧 怪物図鑑 悪魔城マップ 逆さ城マップ ▼ページ最下部

忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

ハートリペア原理推測


合ってるのかどうか不明な解説。多分間違ってる。でも概ねこんな感じに解釈しとくと分かりやすいかも。
 ハートリペア使用時、レベルアップ時、シールドロッド発動時、魔導器入手時、マックスアップ入手時に、画面内のキャラクターの動きが完全に停止して、数秒間操作が不可能になる。
 これを画面停止効果と呼ぶ(俺が勝手に呼んでるだけ)。
 画面停止効果にはいくつか特性がある。
(1)画面スクロールの遅延
 画面がスクロールする場所では、アルカードは常に画面中央に表示される(ハイジャンプ中など例外あり)。
 例えば、バックダッシュをしながらハートリペアを連続で使用した場合、アルカードはバックダッシュの慣性に従って動き続ける。にもかかわらず、画面がスクロールせず、本来中央に表示されるべきアルカードが画面中央からずれていく。その後ハートリペア使用をやめると、画面がスクロールして本来のスクロール位置になる。
 画面停止効果発動中は画面がスクロールしないということ。
(2)画面切り替えの遅延
 例えば、画面切り替え判定に向かって斜め急降下キックをしてハートリペアを連続使用すると、どう見ても既に画面切り替え判定に触っているにもかかわらず、いつまでも画面が切り替わらない。ハートリペア使用をやめるとようやく切り替わる。
 画面停止効果発動中は画面切り替えが発生しないということ。
(3)慣性維持
 画面停止効果発動直前のアルカードの動きが維持される。(1)と(2)の効果を得られるのはこれが常時発動しているおかげ。
 例えばバックダッシュ直後からハートリペアを連続使用すると、アルカードはずっと後ろに下がり続ける。1回のバックダッシュでの移動距離を明らかに超過していても下がり続ける。
 ハートリペアを連続使用している限りは大体永久に継続する(例外あり)。

スクロール変更ライン
 例えば横に2部屋以上ある部屋に来て、画面切り替え判定から遠ざかると、画面スクロールが始まる位置がある。
 逆に、画面スクロールしてる位置から、画面切り替え判定に近づくとスクロールが止まる位置がある。
 アルカードが特定の位置より右に行ったらスクロール開始、左に行ったらスクロール停止(左右逆の場合もある)という、画面スクロールの設定を変更するラインというものが存在する。
 ここがバグの温床になっている。
 画面停止効果発動中の動きでスクロール設定変更ラインをまたぐと、アルカードの座標がおかしくなる。というのが根本的な原理(のはず)。
 画面停止効果中は座標の数値が変更されないとかじゃないの。ゲーム内部的には251の座標にいるはずだけど、ゲーム画面上では255にいるとか、そんな感じでズレが生じるのでは。
 で、このゲームが「アルカードが255の座標に来たら画面を切り替える」という処理だった場合、まだ251にいることになってるから画面が切り替わらずに255に行けるとか、そんな感じの事態になる。
 画面停止効果発動中は座標が加算されないけど、(多分)画面停止効果終了後の1Fで一気に加算してる気がする。普通はそれで辻褄が合うので問題ないけど、その時にスクロール停止側にいると正しく加算されない。厳密にはそんな感じの気もする。
 実機でプレイして確かめるすべが(多分)ないので確実ではない概ね合ってるとは思う。


Edge Travel
 画面停止効果を発動しつつバックダッシュや斜め急降下キックなどの慣性で横移動して、スクロール変更ラインをまたいで、スクロール停止側へ移動する。
 そうすると、おそらく画面停止効果発動中の動きは座標が記録されない。ゲーム内部的にはアルカードは8ドットくらい左の座標にいることになってるんだけど、実際は8ドット右にいる。みたいな状況になる。
 このまま(例えば)右の画面端に行くと、ゲーム内部的には8ドット左にいることになってるから画面切り替え判定に触ってないことになる。
 そんで画面端には隙間があるので落ちる。
 そんな感じの原理だと思う。概ね(「概ね」ってのがどの程度かによる)合ってるとは思うけど多分間違ってる。まあ原理知らなくてもできるし。

Reverse Shift Line
 例えば横2部屋のマップがあるとして、ゲーム内部では横の座標を0から255までで管理してるとする。1番左が0、1番右が255で、アルカードが0に来たら左の部屋に切り替え、アルカードが255に来たら右の部屋に切り替え。
 アルカードが左右に動くと当たり前だけど座標は変わる。右に1ドット動いたら+1とか、左に4ドット動いたら-4とか。これでゲームはアルカードの現在位置を管理してるものとする。
 で、例えば左に画面を切り替えた場合、アルカードは左の部屋の右端から出てくる。この画面切り替えの処理を詳しく考えると、部屋をAからBへ変更して、アルカードの座標を0から255へ変更するとか、そんな感じの2つの処理がされてるはず。
 座標を0から255へ変更する処理というのは、画面切り替え判定に触った時点での座標に-1してるんじゃないかと思う。0から-1して255の座標へ送ってるみたいな。逆の場合は255に+1して0に送ってると。
 実際分かんないけど、そういうものだと思ってくれ!
 こっから本題。
 RSLをやる場合、画面端側から画面中央側へ向かって歩いて、画面停止効果を発動しながらちょうどスクロール設定変更ラインをまたぐわけです。
 例えば左歩きでやった場合、座標が-1されたのは記録されない。このまま画面切り替え判定に触ると、254の座標から画面が切り替わる。
 右への切り替えだから、現在の座標に+1する。254に+1したら255。右の部屋の255(右端)に出現することになる。

PR

忍者ブログ [PR]