レスキュー/Generic

マップの編集

この項目では、Rescue用のマップの編集方法について記載します。
2009/03/07現在、まだrescue-0.49plusのものはバグが残っていて使いづらいので,次のものを使います.

ダウンロードしたら,オリジナルのものに上書きします.
ここでカレントディレクトリにはrescue-0.49plus という名前でパッケージがあるものとします.

% tar -xzvf rescuecore-ScenarioMaker.tgz
% cp -r rescuecore-ScenarioMaker/* rescue-0.49plus/programs/rescuecore

あとはprogramsディレクトリでmakeするだけです.

% cd rescue-0.49plus/programs
% make

これで完成.使い方の詳細はrescurecore-ScenarioMaker?/READMEを参照してください.

使用するもの

レスキューサーバ,変更したいマップのバイナリファイル(node.bin,road.bin,building.bin)

変更方法

シナリオメーカーを次のように起動する.

% java rescuecore.tools.mapgenerator.ScenarioMaker

起動時に現れるウィンドウにはmapのディレクトリを指定する.

エージェントの配置

メニューバーのToolsからRandomiseをクリックするとRandomise configダイアログが開きます。
ダイアログに任意の数値を入力することで、マップ上に(おそらく)ランダムに各種エージェントを配置します。

  • Fire brigades 消防隊の数(0〜20)を選択します。
  • Police forces 啓開隊の数(0〜20)を選択します。
  • Ambulance teams 救急隊の数(0〜15)を選択します。
  • Civilians 市民の数(70〜145)を選択します。
  • Fire stations 消防署の数(0〜1)を選択します。
  • Police offices 啓開隊本部の数(0〜1)を選択します。
  • Ambulance centres 救急隊本部の数(0〜1)を選択します。
  • Refuges 避難所の数(0〜5)を選択します。
  • Fires 出火点の数(2〜8)を選択します。
    • ただし出火点の集合が8箇所までという意味で,合計では30箇所まで設定しても構いません.

道路閉塞の配置

ToolsメニューからPlace blocked roadsを選択することで、道路閉塞を任意に作成できます。
また,Remove blocked roadsを選択すれば閉塞を解除できます.
閉塞させたい/解除したい道路(白枠の長方形)をクリックすることで、道路の上下1車線分を
閉塞/解除します。
オレンジ色の枠の道路は一部が、黒色の枠の道路は完全に閉塞した道路です。
黒色の枠の道路を再度クリックすると白色の枠となり閉塞していない道路になります。
クリック&ドラッグで囲まれた範囲の道路を閉塞することもできます。

出火点、避難所の再配置

Toolsメニュー中のPlace fires、Place refugesで出火点、避難所を再配置することも可能です。
これもクリック&ドラッグで広範囲を指定できます。
Remove fires/refugesを選択して該当する建物をクリックすれば指定が解除されます。

各種エージェントの再配置

各種エージェントの再配置は、2007/07/19現在ではシナリオメーカー上では実装されていません。
(rescue-0.50.0では実装されています、が、こっちは閉塞と発火点指定がうまく動いていません。)
どうしても任意の場所に配置したい、もっとたくさんのor少数のエージェントを配置したい、
という場合は、配置場所が記載されているファイルgisini.txtを手書きで書き換えるしかありません。
gisini.txtについては、後述します。
各種エージェントの配置はToolsメニューのAgentsから行えます(2009年3月7日,現在).

セーブ

FileメニューのSaveをクリックすることで、操作したエージェント及び出火点・避難所の設定がgisini.txtに、
道路閉塞の設定がblockades.lstに出力されます。

ロード

FileメニューのLoadをクリックすれば,以前作成した地図データを読み込むことが出来ます.

gisini.txtの仕様

これはrescue-0.49.9での仕様です、サーバのバージョンごとに仕様は違いますので注意してください。
gisini.txtは、以下の3つの部分に分かれています。実物を参照された方が分かり易いでしょう。

  • MotionLessObject? 消防署などのセンターエージェント、避難場所の数が最初に記載され、
    その後で各オブジェクトの情報(識別区分?、配置される場所のID、X座標、Y座標、
    謎の番号4つ)が記載されています。
  • MoveObject? 各エージェントの数が記載された後、各エージェントの情報が記載されています。
  • FirePoint? 出火点の数と情報が記載されています。

gisini.txtの書き換え

エージェントや避難所などを増やしたい場合は、それぞれの数の書き換えをしてください。
また、位置を変更したい場合は変更したい先の建物・道路もしくは交差点のID、座標を手動で
書き換えることになります。IDや座標はシナリオメーカーのObject inspector(一番右のボタン)を
クリック後、参照したいオブジェクトをクリックすれば見ることができます。

※ちなみにrescue-0.50.0のgisini.txtは、各Objectの配置場所の建物、道路、節点のIDが記載されている
だけという仕様です。

マップの作成

新しいマップ(Random Map)を作成する手順を説明します.大まかな流れは次のとおりです.

1. Random Mapを作成する
2. Scenarioを作成する(上述の「Mapを編集する」を参照してください)
3. shindopolydata.dat, galpolydata.datを作成する
4. raysファイルを作成する

2.は既に説明済みなので,ここでは1., 3.について説明します.

Random Mapを作成する

rescue-0.50.0またはrescue-0.49.*を展開し,そのトップディレクトリからprogramsディレクトリへ
移動する. たとえば,rescue-0.49.10ならば

$ cd rescue-0.49.10/programs
$ java rescuecore.tools.mapgenerator.MapGenerator

これを実行するとdefaultの引数でMapがカレントディレクトリに生成されることになる.
つまり,programsディレクトリにnode.bin,road.bin,building.binが作成される.
マップの生成時に細かい引数を指定したい場合は次のように実行すれば,細かい引数を確認できる.

$ java rescuecore.tools.mapgenerator.MapGenerator -help
Switches: [-switch] [valid range] [default] [description]
-rd [0..100] 60 		Road density
-rr [5..90] 15 		Road removal percentage
-bd [0..100] 50 		Building density
-u [0..100] 75 			Road uniformity
-w [0..*] 1000000 		Map width (millimeters)
-h [0..*] 1000000 		Map height (millimeters)
-m [0..*] 20 			Max node movement (meters)
-sm [1..8] 5 			Smooth wide roads (lanes)
-init [grid] grid 		Map initialisation scheme
-weight [none,ants] none 	Road weighting scheme
-build [blocks] 		blocks Building scheme
-rotate 			Set random map rotation flag
-nooneway 			Switch off one way streets

trafficシミュレータのバグ

trafficシミュレータにバグがあるため,MapGenerator?で作成したマップを読み込むと
trafficシミュレータが落ちてしまいます.
このバグはprograms/trafficディレクトリにあるWorldModel?.javaが原因なので
次の修正したWorldModel?.javaをダウンロードして上書きしてください.

上書きしをしたらprogramsディレクトリでmakeしてください.

Scenarioを作成する

これは先に説明したので省略.

shindopolydata.dat, galpolydata.datを作成する

標準では引数を与えてRandomに作成する方法しか提供されていない.ここでも先ほどと
同じprogramsディレクトリで以下を実行する.

$ java rescuecore.tools.RandomPolydata

これでdefaultの引数が設定され適当にdatファイルが作成されるが,引数は次のようなものがある.

$ java rescuecore.tools.RandomPolydata --help
Usage: RandomPolydata [options]
Options
=======
-n      --num-centers   The number of epicenters
-l      --max-level     The maximum magnitude level
-e      --min-level     The minimum magnitude level
-r      --repeat-levels The number of times to repeat levels
-x      --max-size      The maximum size of the polygons produced by each center as a proportion of the map size (100 means 100% of the map can be covered)
-m      --min-size      The minimum size of the polygons produced by each center as a proportion of the map size
--box=left,right,top,bottom,magnitude

以上でマップの作成ができる.しかし,うまいマップを作成するには試行錯誤が必要なので,
モリモリ作ってみて欲しい.

raysファイルを作成する

firesimulatorで必要となるraysファイルを作ります.これは一度,Simulationを実行してやればOKです.
Mapの大きさに依存して時間がかかります.


添付ファイル: fileWorldModel.java 603件 [詳細] fileREADME 851件 [詳細] filerescuecore-ScenarioMaker.tgz 737件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-09-05 (月) 14:29:31 (1841d)