マップ作成

セットアップ

マップの作成には Map Tiled Editor を利用します。
Tiled Map Editor のサイト: https://www.mapeditor.org/

また、タイルマップとゲーム中のマップデータの入った map_data.zip をダウンロードしてください。

ダウンロードした Map Tiled Editor をインストールして起動したら、タイルマップの map_tiles.tsx を Open してください。また、サンプルとして map_tutorial_02.xml を Open してください。

タイルマップとサンプルマップの2つのファイルを Open したとき


このゲームでは、地形と建物とは別レイヤーのマップデータを作成します。 マップデータには以下の名前のレイヤーが必要です。

タイルセットの数値は地形における高さを表しています。 数値が大きいほど高い地面を表しています。

右上のレイヤーを操作して地形のみ表示


建物のみ表示


まずは「追加シナリオの作り方」のフォルダ dlc_how_to_make にある map_01.xml を読み込み、変更して動作させてみましょう。マップを保存するときの拡張子は xml にしてください。
(ゲームのマップ表示中に F5 キーを押すとマップはリロードされます)

マップの登録

マップを作成したら、それを scenes.yaml に登録しましょう。
- name: map
    title: 'マップの作り方'
    map: 'map_01'             # マップとして map_01.xml を読み込む。
    stage: 'stage_01'         # ステージ情報を stage_01.yaml から読み込む。
    enter_scene: 'map_enter'
    exit_scene: 'map_exit'
次に、マップを使うステージの情報を変更しましょう。
このステージのステージ情報は stage_01.yaml に登録されています。

stage_01.yaml
enemies:                         ## 敵の定義
  skeleton_knight:                # 敵ユニットの名前
    prefab_name: SkeletonKnight   # 敵ユニットのモデル
    respawn: 8.0                  # 復活にかかる時間(sec)
    move_ratio: 0.25              # 移動の速さ
    vitality: 200                 # 体力
    physical_armor: 0             # 防御(物理)
    magical_armor: 0              # 防御(魔法)
    attack_speed: 1.0             # 攻撃する間隔(sec)
    attack_physical_damage: 25    # 攻撃力(物理)
    attack_magical_damage: 0      # 攻撃力(魔法)
    holding_mikan_point: 2        # 倒したときに得られるみかんポイント

  bat:
    prefab_name: Bat
    respawn: 8.0
    move_ratio: 0.50
    vitality: 80
    physical_armor: 0
    magical_armor: 0
    attack_speed: 1.0
    attack_physical_damage: 20
    attack_magical_damage: 0
    holding_mikan_point: 1

  skeleton_archer:
    prefab_name: SkeletonArcher
    respawn: 8.0
    move_ratio: 0.25
    vitality: 100
    physical_armor: 0
    magical_armor: 0
    attack_speed: 2.0
    attack_physical_damage: 15
    attack_magical_damage: 0
    holding_mikan_point: 2

barracks:                        ## 兵舎が敵に占領されているときに出現する敵ユニット
  - enemies:                      # 0 番目の兵舎で出現する敵の定義
      - { 0: skeleton_knight }
      - { 0: skeleton_archer }
      - { 0: skeleton_archer }
      - { 0: bat }

  - enemies:                      # 1 番目の兵舎で出現する敵の定義
      - { 0: skeleton_knight }
      - { 0: skeleton_archer }
      - { 0: skeleton_archer }
      - { 0: bat }

  - enemies:                      # 2 番目の兵舎で出現する敵の定義
      - { 0: skeleton_knight }
      - { 0: skeleton_archer }
      - { 0: skeleton_archer }
      - { 0: bat }

  - enemies:                      # 3 番目の兵舎で出現する敵の定義
      - { 0: skeleton_knight }
      - { 0: skeleton_archer }
      - { 0: skeleton_archer }
      - { 0: bat }

first_barrack_assign:            ## ゲーム開始時の兵舎の所属
  ally: [ 0, 1 ]                  # 0, 1 の兵舎は味方のもの
  enemy: [ 3 ]                    # 3 の兵舎は敵のもの
                                  # 2 の兵舎はどちらにも所属していない

ally_units:                       # 登場する味方ユニット
  - SwordsMan
  - Archer

ally_barrack_first_assign:        # ゲーム開始時に兵舎に配置しておく味方ユニット
  0: [ SwordsMan ]
  1: [ SwordsMan, Archer, Archer ]

ally_tower_first_assign:          # ゲーム開始時にタワーに配置しておく味方ユニット
  0: Archer                       # 配置しない場合は ally_tower_first_assign ごと削除してください。


game:                            ## ゲーム設定
  limit_seconds: 300              # ゲームの制限時間(利用されていない)
  initial_mikan_point: 60         # ゲーム開始時のみかんポイント
  mikan_ratio_per_sec: 1.0        # 秒あたりのみかんポイントの増加量
  first_skill_point: 1            # ゲーム開始時の味方ユニットのスキルのレベル

first_view:                      ## ゲーム開始時のマップの視点
  size: 5                         # 拡大率
  degree: 145                     # 回転角度
簡単に説明すると
  1. 敵を定義する。
  2. 敵を兵舎に割り振る。
  3. ゲーム開始時の兵舎の所属を定義する。
  4. ゲーム開始時に味方ユニットを兵舎、タワーに配置する場合は定義する。
  5. ゲームの設定を行なう。
  6. ゲーム開始時のマップの拡大率と角度を定義する。
という流れになっています。
兵舎とタワーの番号は、それぞれマップの左上から横に走査した順に 0, 1, 2 ... n となります。
また、SwordsMan や SkeletonKnight といったユニットの名前は ユニットのパラメータ変更 にて紹介します。