Appearance
定義データの項目
第30回以後はAssets/DataのCSVを起動時に読みます。性能と出現を調整するときに、項目の意味を確認してください。見出しの名前と順序は変えず、UTF-8で保存します。
ユニットの性能
Units.csvの1行が1種類です。現在HPや位置は個体の状態なので、このファイルには保存しません。所属も生成した個体へ渡すため、同じ性能IDを味方と敵で使えます。
| 項目 | 意味 | 課題用の範囲 |
|---|---|---|
id | 種類の識別子。重複させない | 英小文字、数字、アンダースコア |
name | 画面に表示する名前 | 空欄不可。UTF-8で60バイト以内 |
max_hp | 生成時のHP。戦闘中に減らす値の初期値 | 整数1〜100000 |
attack_damage | 1回の攻撃で減らすHP | 整数0〜10000 |
move_speed | 1秒間に移動する距離 | 0〜300単位/秒 |
attack_range | 攻撃できる中心間距離 | 0〜400単位 |
attack_interval_sec | 次の攻撃まで待つ時間 | 0.05〜60秒 |
spawn_cost | 味方の出撃で消費する資源 | 整数0〜300 |
spawn_cooldown_sec | 同じ候補を再出撃するまでの時間 | 0〜120秒 |
visual_id | 見た目の識別子 | Visuals.csvに登録済みのID |
距離の1単位は固定画面上の1ピクセルに対応します。ユニットも拠点も中心X座標を基準にします。画像の幅や倍率を変えても、射程と移動速度は変わりません。
出撃コストと再出撃待ち時間は味方の出撃操作で使います。敵をウェーブで生成するときには消費しません。攻撃待ち時間は個体ごと、再出撃待ち時間は候補の枠ごとに保存します。
出撃候補
Roster.csvは見出しunit_idの下へ、出撃できるIDを1行ずつ書きます。最大6種類で、重複と未登録IDはエラーです。この順序が候補の並びと数字キーになります。
Units.csvだけに新しい行を追加した場合は、性能の定義は存在しても出撃候補へは表示されません。Roster.csvへ登録すると共通処理で候補を作ります。
ウェーブ
Waves.csvは1行で、1種類の敵の出現列を定義します。
| 項目 | 意味 |
|---|---|
wave_id | 出現列の識別子。行ごとに異なるID |
start_time_sec | 戦闘開始から最初の1体までの秒数 |
unit_id | Units.csvに登録した種類のID |
count | 出現する総数。1〜1024の整数 |
spawn_interval_sec | 2体目以後の間隔。0なら同時刻 |
開始5秒、数5、間隔2秒なら、5、7、9、11、13秒に出ます。開始時刻と間隔は0以上で、最後の出現は3600秒以内、全行の総数は1024体以内にします。
時刻順に出し、前の敵の全滅を待ちません。停止中は時計を進めず、敵が一時的に0体でも将来の予定を残します。出現を終えただけでは勝利になりません。
配布された見た目
| ID | 外見 |
|---|---|
soldier_gray | 灰色の兵 |
soldier_green | 緑の兵 |
soldier_blue | 青の兵 |
soldier_orange | 橙の兵 |
性能を増やすために、見た目を増やす必要はありません。同じ見た目IDを再利用しても、候補の名前と戦場の種類名で判別できます。
見た目定義の項目
Visuals.csvは講師側で使用設定を登録するファイルです。学生は最初に既存のvisual_idを選び、第33回で再生速度を比較します。
| 項目 | 意味 |
|---|---|
id | 見た目のID |
image | Assetsからの画像パス。上のフォルダーは参照しない |
frame_width、frame_height | 1コマの幅と高さ |
columns | 画像の横方向のコマ数 |
idle_first、idle_count | 待機の開始番号とコマ数 |
move_first、move_count | 移動の開始番号とコマ数 |
attack_first、attack_count | 攻撃の開始番号とコマ数 |
fps | 1秒あたりに切り替えるコマ数 |
pivot_x、pivot_y | コマ内の足元の基準位置 |
scale | 表示倍率 |
コマ番号は0から始まり、左から右、上から下へ数えます。1枚絵はすべての状態へ同じ1コマを設定できます。切り出しが画像の寸法と合わない場合は、起動時に見た目IDを示して止めます。
不正な入力と戦場の上限
起動時のエラーはファイル、行、列と原因を確認します。原因を直して保存し、終了して起動し直してください。空欄、重複ID、未登録ID、負の値、不正な攻撃間隔、列数不一致、素材不足を検査します。
同時に戦場にいる個体は味方と敵の合計128体までです。満員では味方の出撃を拒否し、コストは消費しません。敵は予定を残して空きを待ち、生成できたときに進行を進めます。