各レコードには、次の項目がある。
1) マップ・アイコン ID: 他のファイルから このレコードを特定するために使われる。
各 ID の手前に接頭子 icon_ が自動的に付加される。
2) フラグ群。指定可能なフラグは header_map_icons.py を参照のこと。
3) メッシュ名。Native では map_icon_meshes.brf、map_icons_b.brf、map_icons_c.brf の各ファイル。
4) 倍率。
5) 音声。
6) フラグ・アイコンのオフセット位置 x 。
7) フラグ・アイコンのオフセット位置 y 。
8) フラグ・アイコンのオフセット位置 z 。
(訳注: マップ・アイコンは、ワールド・マップに表示される、比較的簡素な 3D オブジェクトです。静物(街や村や橋など)と、移動物(各部隊など)があります。静物であっても旗や木々のように揺れ動くアニメーションが付いているものがあります。下図は Warband の CommonRes/map_icons_b.brf を OpenBRF Redux で開いて 「通常の村」と「焼けた村」を同時に選択した状態です。図は訳者が追加。)
![]()
module_map_icons.py の冒頭付近には下記のような 2 つの定数定義があり、ワールド・マップ上を動き回るアバター(人物など)とバナー(旗標)の表示倍率を決めています。
banner_scale = 0.3
avatar_scale = 0.15
読んで字のごとくです。これらの値を変えると、ワールド・マップに現れるアバターやバナーの大きさが変わります。この 2 つの値は このファイル内で何度も使われるので、このように定義しています。必要なら同じように定数を自由に追加できます。この定数定義の後、マップ・アイコンのリストが始まります。
map_icons = [
("player", 0, "player", avatar_scale, snd_footstep_grass, 0.15, 0.173, 0),
("player_horseman", 0, "player_horseman", avatar_scale, snd_gallop, 0.15, 0.173, 0),
("gray_knight", 0, "knight_a", avatar_scale, snd_gallop, 0.15, 0.173, 0),
("vaegir_knight", 0, "knight_b", avatar_scale, snd_gallop, 0.15, 0.173, 0),
...
例として最初のタプルを詳しく見てみましょう。
(1) マップ・アイコン ID = "player"
(2) フラグ群 = 0
(3) メッシュ名 = "player"
(4) 倍率 = avatar_scale
(5) 音声 ID = snd_footstep_grass
(6) フラグ・アイコンのオフセット位置 x = 0.15
(7) フラグ・アイコンのオフセット位置 y = 0.173
(8) フラグ・アイコンのオフセット位置 z = 0
プレイヤー・アイコンにはフラグがなく、メッシュ "player" を表示しています。倍率が avatar_scale なので、15 パーセントに縮められます。このアイコンがワールド・マップ上で移動している間、footstep_grass という音声 ID に対応した音声ファイルが再生されます。この音声 ID は、module_sounds.py に存在するものを指定します。
マップ・アイコンではマルチ・メッシュが不可ということにも注意して下さい。ただし、複数の静的な「集落や施設」(party)の中から 1 つだけ(例えば街そのもの)を、どこか一ヶ所(橋など)に配置することはできます [1]。 (訳注: この party は部隊ではなく、Module_Parties が扱う対象、つまり、街、城、村、渡船場、各種集団の野営地などのこと。)
マップ・アイコンの数は 256 個までに制限されていて、これはゲーム・エンジンにハード・コーディングされています。ただし、ほとんどの MOD 開発者は、何百もの旗アイコンを紋章アイコンに詰め込むことで それを回避しています [2]。この 256 個という制限は party_set_icon 命令にも適用されますが、もっと多く扱いたければ、party_set_banner_icon 命令や party_set_extra_icon 命令を使う方法もあります [3]。
フラグ群
- mcn_no_shadow を指定すると、そのマップ・アイコンが影を落とさなくなります。
トリガー群
- ti_on_init_map_icon はマップ・アイコンが初期化されると実行されます。トリガーの第 1 パラメータ 1 は、初期化対象の「集落や施設」(party)の ID です。
- 脚注と出典:
- [1] Llew2 と Somebody, Modding Q&A.
- [2] Somebody, Modding Q&A。 そこで便利なのが このツール。 Lav, FISH&CHIP OSP - Heraldry&Retexturing Unleashed
- [3] Burspa, Mount & Blade Modding Discord.