画面下部に装備武器とステータスなどの情報を表示する機能を追加

マップ上でユニットにカーソルを合わせたときに、画面下部にそのユニットの装備武器とステータスなどの情報を表示する機能を追加しました。

仕様

仕様については以下の通りです。

  • 装備を持っているときはその武器の名前を表示します。
  • 装備できる武器を持っていない場合、味方は所持品の中で最も上にある使用可能な杖の名前、敵及びNPCは所持品の中で使用可能かつ武器レベルが最も高い杖の名前を表示します。
  • アイテムを2個以上持っているときは所持品の数も表示します。
  • ステータス画面の右上に表示される攻撃、攻速、命中、回避、守備、魔防と同じ数値を表示します。
  • この情報欄はユニットウィンドウ(吹き出し)の一部として扱われるため、ユニットウィンドウが表示されないときはこの情報欄も表示されません。
  • 処理の都合上、進撃準備画面でユニットを入れ替えている間も表示されません。

ユニット再編成とは使用するメモリ領域が衝突しているようで、この情報欄を出した状態で入れ替えるとユニットアイコンが消える問題があったため、入れ替え中は表示させないようにしました。

杖の名前表示については、アイテム欄の1つ目にライブ、2つ目にリブローを持った敵などが存在しており、このときライブを表示しても何も嬉しくないことから、武器レベルが最も高いものを表示するようにしています。味方の持ち物はプレイヤーが意図を持って並べているはずなので、その並びに従うようにしました。

その他の変更

この機能に関連して、ユニットウィンドウを表示する処理の速度を向上させました(ウェイト処理を削除)。

また、この機能のテスト中に発見した、全員行動終了した状態でRボタンを押してマップメニューを開いてからBボタンで閉じると地形ウィンドウが表示されなかった問題(原作バグ)を修正しています。

この場所に情報を配置することの是非について

1999年当時の環境(ブラウン管)では、画面端は一般的にオーバースキャンで切られる非表示領域とされていたため、トラキア776の発売当時ではありえなかった画面構成です。

オーバースキャンについてざっくり説明すると、入力された映像を少し拡大して表示する処理です。当時のアナログ映像の端には乱れがあり、その部分をカットして表示するのが前提だったと言われています。

このため、映像の外周部が見えない場合がありました。元の映像のおよそ90~95%の領域がセーフティゾーンと呼ばれ、それよりも外周の部分は表示環境によっては画面外に溢れて見えなくなる可能性があるとされています。もし95%の領域しか表示されなかった場合、以下のようになります。

95%の領域しか表示されなかった場合の表示範囲

まあ現代の環境では特に気にしなくてもよいでしょう。仮に実機で動かすとしても液晶画面に映す分には普通に映るはずですし、FEHの縦長スマホだと情報が増えるやつみたいなものと思ってもらえればよいです。

謝辞

この機能は、一部の処理に Zane's FE5 QOL (Equipped item preview) のコードを使用しています。ありがとうございます。