本節では画面遷移について述べる。 画面遷移とは、移動モードでパーティーが別の場所に移動したり、 イベント発生によって自動的にシーンが転換したりするときの画面の移り変わりのことだ。 移動モードから戦闘モードに、あるいはその逆になったりすることは本節の画面遷移の定義には当てはまらない。
画面遷移に関係するデータ構造について述べる。 本節では多くの構造体を列挙しなければならないので、それらの関係について概略を示したい。
以降の各画面遷移構造体に共通して登場する属性について先に説明しておく。
ブーリアン型属性値であり、値が 0 ならば既定の画面遷移を引き起こすことを示す。
画面遷移オブジェクトが存在する空間最小単位の ID を値とする属性だ。
データとしては配列 $C815BF
の添字を表す。
このデータについては 4.18.1.1 配列 $C815BF
: 空間最小単位 で述べる。
詳細不明ではあるが、全データで属性値がゼロであるため本書では今のところ考慮しない。
それぞれ画面遷移オブジェクトが位置する座標 X 成分と Y 成分を値とする属性だ。 座標系は M 系で表されている。これはキャラクターのサイズを単位系とする座標系だ。
型によっては X 座標属性や Y 座標属性が二つある。 この場合はその座標成分の組がなす区間すべてが画面遷移の発生判定に有効であることを意味する。
画面遷移オブジェクトが位置する L 座標を値とする属性だ。 LV とは、同一画面内における仮想的な地面の高さを表現していると解釈できる。
例を挙げると、モンストル屋外の地面部分と宿屋の屋上は同時に描画される。 デバッグ機能のキャンセル歩行を利用して、地面部分から屋上に移動し、 そこにある階段に乗っても、言い換えると XY 座標を一致させても画面遷移が発生しないはずだ。 これは、パーティーと階段の LV 値が異なることによる。 パーティーの LV 値は地面部分の値と同じだが、 データを見ればわかるように、階段のそれは地面のそれと異なる。
画面遷移オブジェクトが属する屋根区域を値とする属性だ。 屋根区域とは、ダンジョン等でマップ全体を描画せず局所的に表示したり、 反対に隠したりする仕組みにおける、描画部分の単位のことだ。
階段、水平帯域、垂直帯域の各型については、 この画面遷移が発生すると移動する先の同型オブジェクト ID を値とする属性だ。 例えば、階段オブジェクト A の目的地属性値が指す階段オブジェクトを B とすると、 B の目的地属性値は A を指すという性質がある。
矩形型と関所型については 4.19.1.7 で述べるオブジェクトの ID を値とする属性だ。
ブーリアン型属性値であり、値が 1 ならば画面遷移時に足音が鳴る。
演出とは、画面遷移時に引き起こす視聴覚効果を指示する値を取る属性だ。
アドレス $FF8072
には次の 7 バイト長オブジェクト型要素が
0x1D8
個配列されている。この型は階段による画面遷移を表現するものであり、移動モードにおいて階段の絵を描画させるものだ。
表 4.82 構造体 $FF8072
オフセット | 桁 | 属性 |
---|---|---|
#$00
|
#$000001
|
フラグ |
#$00
|
#$0007FE
|
空間最小単位 |
#$01
|
#$000018
|
座標配列 |
#$01
|
#$003FE0
|
MX |
#$02
|
#$007FC0
|
MY |
#$03
|
#$000180
|
LV |
#$04
|
#$00001E
|
屋根区域 |
#$04
|
#$01FFE0
|
目的地 |
#$06
|
#$000002
|
効果音考慮 |
アドレス $FF8D5A
には次の 8 バイト長オブジェクト型要素が
0x25A
個配列されている。この型は主にパーティーが建造物の出入口を通過することによる画面遷移を表現する。
画面遷移を引き起こすためのヒットテストの矩形の縦幅が 1 なので、水平帯域と呼ぶことにする。
表 4.83 構造体 $FF8D5A
オフセット | 桁 | 属性 |
---|---|---|
#$00
|
#$000001
|
フラグ |
#$00
|
#$0007FE
|
空間最小単位 |
#$01
|
#$000018
|
座標配列 |
#$01
|
#$003FE0
|
MX0 |
#$02
|
#$007FC0
|
MY |
#$03
|
#$00FF80
|
MX1 |
#$05
|
#$000003
|
LV |
#$05
|
#$00003C
|
屋根区域 |
#$05
|
#$03FFC0
|
目的地 |
#$07
|
#$000004
|
効果音考慮 |
アドレス $FFA02A
には次の 8 バイト長オブジェクト型要素が
0x12
個配列されている。この型は主にパーティーが建造物の出入口を通過することによる画面遷移を表現する。
画面遷移を引き起こすためのヒットテストの矩形の横幅が 1 なので、垂直帯域と呼ぶことにする。
表 4.84 構造体 $FFA02A
オフセット | 桁 | 属性 |
---|---|---|
#$00
|
#$000001
|
フラグ |
#$00
|
#$0007FE
|
空間最小単位 |
#$01
|
#$000018
|
座標配列 |
#$01
|
#$003FE0
|
MX |
#$02
|
#$007FC0
|
MY0 |
#$03
|
#$00FF80
|
MY1 |
#$05
|
#$000003
|
LV |
#$05
|
#$00003C
|
屋根区域 |
#$05
|
#$03FFC0
|
目的地 |
#$07
|
#$000004
|
効果音考慮 |
アドレス $FFA0BA
には次の 8 バイト長オブジェクト型要素が
0x2BB
個配列されている。
画面遷移を引き起こすためのヒットテストの矩形が一般の寸法の場合のものだ。
表 4.85 構造体 $FFA0BA
オフセット | 桁 | 属性 |
---|---|---|
#$00
|
#$000001
|
フラグ |
#$00
|
#$00001E
|
演出 |
#$00
|
#$000060
|
座標配列 |
#$00
|
#$00FF80
|
MX0 |
#$02
|
#$0001FF
|
MY0 |
#$03
|
#$0003FE
|
MX1 |
#$04
|
#$0007FC
|
MY1 |
#$05
|
#$000018
|
LV |
#$05
|
#$01FFE0
|
目的地 |
#$07
|
#$000002
|
効果音考慮 |
アドレス $FFB692
には次の 0x0C
バイト長オブジェクト型要素が四個配列されている。
パーティーがフィールドから各関所に画面遷移すると、関所内のどの位置に現れるのかを指定する。
表 4.86 構造体 $FFB692
オフセット | 桁 | 属性 |
---|---|---|
#$00
|
#$000001
|
フラグ |
#$00
|
#$00001E
|
演出 |
#$00
|
#$000060
|
座標配列 |
#$00
|
#$00FF80
|
MX0 |
#$02
|
#$0001FF
|
MY0 |
#$03
|
#$0003FE
|
MX1 |
#$04
|
#$0007FC
|
MY1 |
#$05
|
#$000018
|
LV |
#$05
|
#$01FFE0
|
目的地上向き |
#$07
|
#$001FFE
|
目的地右向き |
#$08
|
#$01FFE0
|
目的地下向き |
#$0A
|
#$001FFE
|
目的地左向き |
#$0B
|
#$000020
|
効果音考慮 |
それぞれ、パーティーキャラクターが対応する向きに関所に入るときの、 目的地点 (4.19.1.7) の ID を値とする属性だ。
アドレス $C834FC
には次の五バイト長オブジェクト型要素が
0x1E0
個配列されている。この型は矩形型 (4.19.1.5)
と関所型 (4.19.1.6)
が参照する画面遷移先座標を表現する。
表 4.87 構造体 $C834FC
オフセット | 桁 | 属性 |
---|---|---|
#$00
|
#$0003FF
|
空間最小単位 |
#$01
|
#$00000C
|
座標配列 |
#$01
|
#$001FF0
|
MX |
#$02
|
#$003FE0
|
MY |
#$03
|
#$0000C0
|
LV |
#$04
|
#$00000F
|
屋根区域 |
#$04
|
#$000030
|
向き |
#$04
|
#$000040
|
(未使用) |
この型固有の各属性の意味を以下に記す。
画面遷移直後のパーティーキャラクターの向きを表す値を取る属性だ。 「はなす」「しらべる」と同様だ。