朝までFreeciv!

【スポンサー広告】 スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  1. --/--/--(--) --:--:--|
  2. スポンサー広告

【日記】 Map Image保存

Freecivの2.4.0ではゲームの途中経過のマップの様子を画像で保存することができます。(MapImage)
各ターンの画像を連続して結合すれば、ゲームの様子の簡易動画を作ることができ、後で振り返って観察することができます。

実際にMapImageをやってみました。


mapimgコマンド

まずはmapimgコマンドの説明を読む。




/help: コマンド: mapimg - Create image files of the world/player map.
/help: 使用法: mapimg define
/help: mapimg show |all
/help: mapimg create |all
/help: mapimg delete |all
/help: mapimg colortest
/help: レベル: admin
/help: 説明:
/help: This command controls the creation of map images. Supported arguments:
/help: define - define a map image; returns numeric
/help: show |all - list map image definitions or show a specific one
/help: create |all - manually save image(s) for current map state
/help: delete |all - delete map image definition(s)
/help: colortest - create test image(s) showing all colors
/help:
/help: Multiple definitions can be active at once. A definition
/help: consists of colon-separated options:
/help:
/help: option (default) description
/help:
/help: format=<[tool|]format> (magick|gif) file format
/help: show= (all) which players to show
/help: plrname= player name
/help: plrid= numeric player id
/help: plrbv= see example; first char = id 0
/help: turns= (1) save image each turns
/help: (0=no autosave, save with 'create')
/help: zoom= (2) magnification factor (1-5)
/help: map= (bcku) which map layers to draw
/help:
/help: <[tool|]format> = use image format , optionally specifying
/help: toolkit . The following toolkits and formats are compiled in:
/help: - 'ppm': 'ppm'
/help: - 'magick': 'gif', 'png', 'ppm', 'jpg'
/help:
/help: determines which players are represented and how many images
/help: are saved by this definition:
/help: - 'none' no players, only terrain
/help: - 'each' one image per player
/help: - 'human' one image per human player
/help: - 'all' all players on a single image
/help: - 'plrname' just the player named with 'plrname'
/help: - 'plrid' just the player specified with 'plrid'
/help: - 'plrbv' one image per player in 'plrbv'
/help:
/help: can contain one or more of the following layers:
/help: - 'a' show area within borders of specified players
/help: - 'b' show borders of specified players
/help: - 'c' show cities of specified players
/help: - 'f' show fog of war (single-player images only)
/help: - 'k' show only player knowledge (single-player images only)
/help: - 't' full display of terrain types
/help: - 'u' show units of specified players
/help:
/help: Examples of :
/help: 'zoom=1:map=tcub:show=all:format=ppm|ppm'
/help: 'zoom=2:map=tcub:show=each:format=png'
/help: 'zoom=1:map=tcub:show=plrname:plrname=Otto:format=gif'
/help: 'zoom=3:map=cu:show=plrbv:plrbv=010011:format=jpg'
/help: 'zoom=1:map=t:show=none:format=magick|jpg'


引数はdefine、show、create、delete、colortestがあるようだ。
そしてdefineで設定するときにはオプションも一緒に指定しなくてはならない。オプションが複数ある場合はコロン「:」で区切って書く。
defineで設定した定義は、定義1、定義2・・・のように複数を同時に持つことができる。
さらにオプションのうちでformatやshowやmapの書き方についても説明があって…という感じかな。

Windowsの場合はMagickWandライブラリを使って画像を変換できるので、生画像フォーマットであるppm以外にもformatにmagickツールキットを使ってpngやgifやjpgで出力保存することができるようです。ppmは生データなのでファイルサイズがでかすぎ!



コマンド入力

mapimgコマンドの説明を踏まえて、次のようにコマンド入力した。
(太字が入力したコマンド、それ以外はサーバーメッセージ)

/mapimg define 'format=magick|gif:turns=1:map=bcfktu:show=all:zoom=2'
/mapimg: Defined as map image definition 0: 'format=magick|gif:turns=1:map=bcfktu:show=all:zoom=2'.
/mapimg define 'format=magick|png:turns=1:map=bcfktu:show=human:zoom=2'
/mapimg: Defined as map image definition 1: 'format=magick|png:turns=1:map=bcfktu:show=human:zoom=2'
/mapimg show all
/mapimg: List of map image definitions:
/mapimg: ------------------------------------------------------------------------------
/mapimg: [ 0] 'format=magick|gif:turns=1:map=bcfktu:show=all:zoom=2' (not checked)
/mapimg: [ 1] 'format=magick|png:turns=1:map=bcfktu:show=human:zoom=2' (not checked)
/mapimg: ------------------------------------------------------------------------------



ここでは二種類の画像を同時に作っています。
gif画像の方ではすべてのプレイヤーが観察できる画像になっています。
png画像の方では人間プレイヤーだけが観察できるようになっています。

defineしてから、どのような定義になったのかshowで確認しています。
実際にゲームを開始します。そして0ターン目で…

全員準備が整いました。ゲームを開始します。
/mapimg show all
/mapimg: List of map image definitions:
/mapimg: ------------------------------------------------------------------------------
/mapimg: [ 0] 'format=magick|gif:turns=1:map=bcfktu:show=all:zoom=2' (OK)
/mapimg: [ 1] 'format=magick|png:turns=1:map=bcfktu:show=human:zoom=2' (OK)
/mapimg: ------------------------------------------------------------------------------
/mapimg create all



すべての定義で画像を作るよう、createしています。



できあがり

(turn=1の場合は)毎ターンの画像が、freecivのセーブファイルが保存される場所に出力されます。Windows XPの場合は次の場所でした。保存場所はOSによって異なります。
C:\Documents and Settings\(名前)\Application Data\.freeciv\saves
なお、ファイル出力の負荷ためにターン切り替わり時がちょっと重くなるね。


定義1の全体表示の場合 (画像クリックで動画を表示)
途中で海タイルの表示がおかしいのはバグったのかな?
freeciv-T0000-Y-4000-M-bcfktuZ2Pall_map_anim_mini.png


定義2の人間だけ表示の場合 (画像クリックで動画を表示)
freeciv-T0000-Y-4000-M-bcfktuZ2P000human_map_anim_mini.png


なお、メニューからSave Map Imageは、そのターンでのMapImageを規定の名前で保存するようです、Save As...の場合は自分で保存する名前を指定します。自動保存ではなく手動保存の時に使うのかな。
SaveMapImage.png


ゲームを、簡易とはいえリプレイ表示できようになったのは良いことだと思います。Civ4のリプレイ表示と同じレベルは・・・さすがに望みすぎか。
しかしリプレイ動画を作るためには、出力された画像を連結して自分でアニメーションGIFの形にする必要があるのは手間かなー。
これは、スコアログは出力されるけどスコアグラフ表示するには別ソフトが必要であることと同じだね。スコアグラフもリプレイ表示も本体だけで表示可能になって欲しいね。本体が表示するようになってこそ多くの人に使われるものだと考えるし。

(※) Linuxでは mapimg2anim という付属のシェルスクリプトでアニメーションを作成できる。要convert(ImageMagick)、ffmpeg
  1. 2013/08/24(土) 13:40:02|
  2. 日記
  3. | トラックバック:0
  4. | コメント:0
<<プレイヤーカラーの変更方法 | ホーム | もしもfreecivが球体状マップになったら>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://freeciv.blog.fc2.com/tb.php/86-447f6249
この記事にトラックバックする(FC2ブログユーザー)
【 このブログの目次 】

プロフィール

指導者

Author:指導者
これはあなたです。このユニットを失うと、ゲームは負けになります。大切にしてね。

つぶやき

最新記事

最新コメント

カテゴリ

月別アーカイブ

最新トラックバック

FC2カウンター

検索フォーム

RSSリンクの表示

リンク

このブログをリンクに追加する

QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。