5.27. 画面遷移

5.27.1. 構造に関する構成要素
5.27.1.1. 共通属性の意味について
5.27.1.2. 構造体 $C84CA2: 階段
5.27.1.3. 構造体 $C856AA: 水平帯域
5.27.1.4. 構造体 $C85A62: 垂直帯域
5.27.1.5. 構造体 $C85A70: 矩形領域
5.27.1.6. 構造体 $C86A84: ランシール
5.27.1.7. 構造体 $C86A90: 幽霊船
5.27.1.8. 構造体 $C86A9A: 目的地点
5.27.2. 振る舞いに関する構成要素

本節では画面遷移について述べる。 画面遷移とは、移動モードでパーティーが別の場所に移動したり、 イベント発生によって自動的にシーンが転換したりするときの画面の移り変わりのことだ。 移動モードから戦闘モードに、あるいはその逆になったりすることは本節の画面遷移の定義には当てはまらない。

5.27.1. 構造に関する構成要素

画面遷移に関係するデータ構造について述べる。 本節では多くの構造体を列挙しなければならないので、それらの関係について概略を示したい。

図 5.1 画面遷移に関するクラス図

画面遷移に関するクラス図

5.27.1.1. 共通属性の意味について

以降の各画面遷移構造体に共通して登場する属性について先に説明しておく。

場所

画面遷移オブジェクトが存在する場所の ID を値とする属性だ。 データとしては配列 $C802F4 の添字を表す。 場所については別の節で説明する。

MX, MY

それぞれ画面遷移オブジェクトが位置する座標 X 成分と Y 成分を値とする属性だ。 座標系は M 系で表されている。これはキャラクターのサイズを単位系とする座標系だ。

型によっては X 座標属性や Y 座標属性が二つある。 この場合はその座標成分の組がなす区間すべてが画面遷移の発生判定に有効であることを意味する。

ML

画面遷移オブジェクトが位置する L 座標を値とする属性だ。 これはいわゆるレイヤーに相当する概念だ。

屋根区域

画面遷移オブジェクトが属する屋根区域を値とする属性だ。 屋根区域とは、値がデバッグ機能の座標ウィンドウのいちばん下に二進数で表示される値のことだ。

目的地

階段、水平帯域、垂直帯域の各型については、 この画面遷移が発生すると移動する先の同型オブジェクト ID を値とする属性だ。 例えば、階段オブジェクト A の目的地属性値が指す階段オブジェクトを B とすると、 B の目的地属性値は A を指すという性質がある。

矩形型とランシール型については 5.27.1.8 で述べるオブジェクトの ID を値とする属性だ。

効果音考慮

ブーリアン型属性値であり、値が 1 ならば画面遷移時に足音が鳴る。

演出

演出とは、画面遷移時に引き起こす視聴覚効果を指示する値を取る属性だ。

表 5.55 画面遷移演出

ID 演出
1 足音
2 落下 A
3 旅の扉
4 天界
5 落下 B

5.27.1.2. 構造体 $C84CA2: 階段

アドレス $C84CA2 には次のオブジェクト型要素が多数配列されている。 この型は階段による画面遷移を表現するものであり、移動モードにおいて階段の絵を描画させるものだ(例外もあるが)。

表 5.56 構造体 $C84CA2

オフセット 属性
#$00 #$0003FF 場所
#$01 #$0007FC MX
#$02 #$000FF8 MY
#$03 #$000030 ML
#$03 #$0003C0 屋根区域
#$04 #$003FFC 目的地
#$05 #$000040 効果音考慮

5.27.1.3. 構造体 $C856AA: 水平帯域

アドレス $C856AA には次のオブジェクト型要素が多数配列されている。 この型は主にパーティーが建造物の出入口(扉があることが多い)を通過することによる画面遷移を表現する。

表 5.57 構造体 $C856AA

オフセット 属性
#$00 #$0003FF 場所
#$01 #$0007FC MX0
#$02 #$000FF8 MX1
#$03 #$001FF0 MY
#$04 #$000060 ML
#$04 #$000780 屋根区域
#$05 #$007FF8 目的地
#$06 #$000080 効果音考慮

5.27.1.4. 構造体 $C85A62: 垂直帯域

アドレス $C85A62 には次のオブジェクト型要素がわずか 2 個だけ配列されている。 カザーブの村にある教会と墓場との間にある画面遷移を表現する。

表 5.58 構造体 $C85A62

オフセット 属性
#$00 #$0003FF 場所
#$01 #$0007FC MX
#$02 #$000FF8 MY0
#$03 #$001FF0 MY1
#$04 #$000060 ML
#$04 #$000780 屋根区域
#$05 #$007FF8 目的地
#$06 #$000080 効果音考慮

5.27.1.5. 構造体 $C85A70: 矩形領域

アドレス $C85A70 には次のオブジェクト型要素が多数配列されている。 パーティーがこの範囲内に足を踏み入れると画面が遷移するというような矩形領域を表現するものだ。

表 5.59 構造体 $C85A70

オフセット 属性
#$00 #$00000F 演出
#$00 #$001FF0 MX0
#$01 #$003FE0 MY0
#$02 #$007FC0 MX1
#$03 #$00FF80 MY1
#$05 #$000003 ML
#$05 #$003FFC 目的地
#$06 #$000040 効果音考慮

5.27.1.6. 構造体 $C86A84: ランシール

アドレス $C86A84 にあるオブジェクトはランシールの村を訪問する際の画面遷移を表現する。 どの方向から村に入るかによって、パーティーの初期位置を決めることができる。

表 5.60 構造体 $C86A84

オフセット 属性
#$00 #$00000F 演出
#$00 #$001FF0 MX0
#$01 #$003FE0 MY0
#$02 #$007FC0 MX1
#$03 #$00FF80 MY1
#$05 #$000003 ML
#$05 #$003FFC 目的地上向き
#$06 #$03FFC0 目的地右向き
#$08 #$003FFC 目的地下向き
#$09 #$03FFC0 目的地左向き
#$0B #$000004 効果音考慮

この型に固有の各属性の意味を以下に記す。

目的地上向き, 目的地右向き, 目的地下向き, 目的地左向き

それぞれ、パーティーキャラクターが対応する向きにランシールの村に入るときの、 目的地点 (5.27.1.8) の ID を値とする属性だ。

5.27.1.7. 構造体 $C86A90: 幽霊船

アドレス $C86A90 にあるオブジェクトは幽霊船の出口における画面遷移を表現する。

表 5.61 構造体 $C86A90

オフセット 属性
#$00 #$00000F 演出
#$00 #$001FF0 MX0
#$01 #$003FE0 MY0
#$02 #$007FC0 MX1
#$03 #$00FF80 MY1
#$05 #$000003 ML
#$06 #$FFFFFF 処理
#$09 #$000001 効果音考慮

この型に固有の各属性の意味を以下に記す。

処理

幽霊船の出口にパーティーが移動すると実行されるコードのアドレスを値とする属性だ。 これによって、パーティーの船に戻ることになる。

5.27.1.8. 構造体 $C86A9A: 目的地点

アドレス $C86A9A には次のオブジェクト型要素が多数配列されている。 この型は矩形型とランシール型から参照される画面遷移先座標を表現する。

表 5.62 構造体 $C86A9A

オフセット 属性
#$00 #$0003FF 場所
#$01 #$0007FC MX
#$02 #$000FF8 MY
#$03 #$000030 ML
#$03 #$0003C0 屋根区域
#$04 #$00000C 向き

この型固有の各属性の意味を以下に記す。

向き

画面遷移直後のパーティーキャラクターの向きを表す値を取る属性だ。 「はなす」「しらべる」と同様だ。

5.27.2. 振る舞いに関する構成要素

TBW