[VX] 地図を表示する

マップ移動中に地図を表示し、現在位置を確認したりイベントの
位置を把握したりできる機能を追加しました。
この機能によって、マップ移動中のシステムを更に充実させる
ことができると思います。

画像


スクリプト素材のダウンロードは↓
http://www.lm-t.com/blog/worldmap_101.zip

[2014/08/10追記]
機能追加を行いました。(Ver 1.01)


-----機能説明ここから-----
■基本情報■
1.機能概要
 ワールドマップスクリプトは、通常のマップとは別に、マップを
 表示するための機能です。この機能を使用することで、以下のような
 機能を持つゲームを作成することができるようになります。

 ・フィールドマップ上で世界地図を表示し、町やダンジョン、
  プレイヤーの位置を地図上で視覚的に表示する。

 ・ダンジョン内で広域のガイドマップを表示し、宝箱の位置、
  注目すべき場所、イベントなどの位置を地図上で視覚的に表示する。

 上記以外にも、設定を工夫することで色々な表現を行うことが
 できるようになります。


2.カスタマイズ方法
 ワールドマップをカスタマイズするには、Configモジュールに記述
 されているパラメータを変更することで行います。
 設定するパラメータは下記の通りです。

 (1) WMAP_ENABLE
  ワールドマップ機能の有効状態を指定します。
  trueを指定すると、ワールドマップ機能が有効化されます。
  falseを指定すると、ワールドマップ機能が無効化されます。
  通常、この値をfalseに設定する意味はありません。

 (2) WMAP_TOGGLE_KEY
  ワールドマップの表示スタイルを切り替える「トグル機能」を
  発動するトリガーとなるキーを指定します。この値は、
  Input::A, Input::F6 などの値を指定します。
  詳細は、RPGツクールVXのヘルプを参照してください。
  トグル機能を使用しない場合は nil を指定してください。
  トグル機能の詳細は4章で解説します。

 (3) WMAP_TOGGLE_SOUND
  トグル機能が発動する度に鳴らす音のファイル名を指定します。
  ファイルは必ず Audio/SE から読み込もうとします。
  ファイル名には拡張子を記述する必要はありません。
  トグル機能を使用しない場合、または音を鳴らしたくない場合は
  nil を指定してください。

 (4) WMAP_DEFAULT_STYLE
  ワールドマップの初期スタイルを0から始まるインデックス値で
  指定します。このインデックス値は、WMAP_STYLESに定義された
  表示スタイル一覧のインデックスを示します。

 (5) WMAP_REMEMBER_MODE
  別のマップへの移動が発生した時に、移動後のマップでの
  表示スタイルの復元方法を指定します。以下の値のいずれかを
  指定します。

  ・0 (復元しない)
  ・1 (変更された表示スタイルをマップごとに記憶する)
  ・2 (変更された表示スタイルをマップ全体で共有する)

  表示スタイルの復元方法についての詳細は7章で解説します。

 (6) WMAP_COLOR_PASSABLE
  マップを表示する際、通行可能なタイルの色を何色で表現するかを
  指定します。この値は Color.new(R, G, B, A) の形式で
  記述します。

 (7) WMAP_COLOR_UNPASSABLE
  マップを表示する際、通行不可能なタイルの色を何色で表現
  するかを指定します。この値は Color.new(R, G, B, A) の形式で
  記述します。

 (8) WMAP_COLOR_EACH_TILES
  マップを表示する際、タイル別に色を変えたい場合に使用する
  色定義の一覧です。色定義は、下記の書式で指定します。

  ["Tileset", X, Y, Color.new(R, G, B, A)],

  ・Tileset
   A~Eのどのタイルかを指定します。

  ・X, Y
   VXエディタ上の左上に表示されているタイル一覧の位置を
   座標値(0から始まる整数値)で指定します。

  ・Color
   何色で表示するかを指定します。
   R,G,B,Aは、0~255の範囲で指定してください。
   (R:赤 G:緑 B:青 A:不透明度)

  画像

  この一覧に定義されていないタイルは、WMAP_COLOR_PASSABLEか、
  WMAP_COLOR_UNPASSABLE の色で表示されます。

 (9) WMAP_STYLES
  ワールドマップの表示スタイルを示す定義の一覧です。
  この一覧には、1つ以上の表示スタイルを記述しておかなければ
  なりません。表示スタイルの定義方法については、3章で
  解説します。


3.表示スタイルの定義方法
 2章に記載の表示スタイル(WMAP_STYLESのデータ)は、表示に関する
 複数の情報の集合体です。この情報群は、{} で囲い、その中に
 必要な情報を記述します。{} の代わりに nil を指定すると、
 「ワールドマップを表示しない」という表示スタイルになります。

 下記に、定義しなければならない情報の一覧と内容を記載します。

 (1) :x, :y
  ワールドマップを画面上のどこに表示するかを示す座標値です。

 (2) :width, :height
  ワールドマップの幅と高さをピクセル数で指定します。
  この値は、1~ゲーム画面の幅・高さの範囲で指定してください。

 (3) :tile_width, :tile_height
  :width, :heightで指定した範囲に、何タイル分を表示するかを
  指定します。この値には1~255の範囲の奇数で指定してください。
  偶数値を指定するとエラーになります。

 (4) :draw_background
  ワールドマップの背景画像を表示するかどうかを指定します。
  trueを指定すると、背景画像を表示します。
  falseを指定すると、背景画像を表示しません。
  背景画像の詳細は、8章で解説します。

 (5) :draw_map
  マップを表示するかどうかを指定します。
  trueを指定すると、マップを表示します。
  falseを指定すると、マップを表示しません。

 (6) :draw_character
  プレイヤー・イベントの位置をキャラクター画像で表示するか
  どうかを指定します。
  trueを指定すると、キャラクターを表示します。
  falseを指定すると、キャラクターを表示しません。
  キャラクター画像の詳細は、9章で解説します。

 (7) :scroll
  プレイヤーの位置に応じてマップをスクロールさせるかどうかを
  指定します。
  trueを指定すると、プレイヤーの位置に合わせてマップと
  キャラクターがスクロールします。また、プレイヤーは常に中央に
  表示されます。
  falseを指定すると、マップは固定されます。

 (8) :file_background
  背景画像のファイル名を指定します。
  背景画像は常に Graphics/System から読み込もうとします。
  背景画像を表示しない場合は nil を指定してください。

 (9) :file_character
  キャラクター画像のファイル名を指定します。
  キャラクター画像は常に Graphics/System から読み込もうと
  します。キャラクター画像を表示しない場合は nil を指定して
  ください。


4.トグル機能について
 トグル機能は、指定のキーを押すことによって、ワールドマップの
 表示スタイルを切り替える機能です。

 WMAP_TOGGLE_KEYで指定したキーを押す度に、WMAP_STYLESで指定した
 表示スタイルを順番に切り替えていきます。その際、
 WMAP_TOGGLE_SOUNDが指定されていればその音を鳴らします。

 ただし、上記のトグル機能を有効にするにはEx.set_wmap_toggleable
 を実行してトグル機能を有効化しておかなければなりません。
 (6章の(5)を参照)


5.マップごとに初期スタイルを設定する方法
 初期スタイルは WMAP_DEFAULT_STYLE に設定しますが、特定のマップ
 だけ例外的に初期スタイルを変更したい場合、マップ名に下記の
 ように記述することで実現できます。

 任意のマップ名

 (1) INDEX
  0から始まるインデックス値で指定します。
  このインデックス値は WMAP_STYLES に定義された表示スタイル
  一覧のインデックスを示します。


6.イベント処理からのワールドマップ操作
 ワールドマップは、イベントのスクリプト命令から操作することが
 できます。操作の一覧は下記の通りです。

 ・現在のマップの表示スタイルを取得する
 ・現在のマップの表示スタイルを設定する
 ・マップの表示スタイルをトグルする
 ・トグル機能の有効状態を取得する
 ・トグル機能の有効状態を設定する

 (1) 現在のマップの表示スタイルを取得する
  イベントのスクリプト命令で、下記のように記述します。

  Ex.get_wmap_style

  この命令は、0から始まるインデックス値を返します。
  ワールドマップ機能が無効化されていると、0を返します。
  例えば、インデックス値を変数10に格納したい場合、
  下記のように記述します。

  $game_variables[10] =
   Ex.get_wmap_style


 (2) 現在のマップの表示スタイルを設定する
  イベントのスクリプト命令で、下記のように記述します。

  Ex.set_wmap_style(
   index
  )


  ・index
   WMAP_STYLES に対応する0から始まるインデックス値を
   指定します。

  ワールドマップ機能が無効化されていると、何も行いません。
  この命令を実行後、表示スタイルが変更されます。
  WMAP_REMEMBER_MODE が1または2の場合、表示スタイルは
  セーブデータの一部として保存されます。

 (3) マップの表示スタイルをトグルする
  イベントのスクリプト命令で、下記のように記述します。

  Ex.toggle_wmap_style

  この命令は、WMAP_TOGGLE_KEY が指定されていなくても、
  トグル機能が無効化されていなくても、表示スタイルのトグルを
  実行します。ただし、WMAP_TOGGLE_SOUND が指定されていても
  音は鳴りません。
  ワールドマップ機能が無効化されていると、何も行いません。

 (4) トグル機能の有効状態を取得する
  イベントのスクリプト命令で、下記のように記述します。

  Ex.get_wmap_toggleable

  トグル機能が有効の場合、1を返します。
  トグル機能が無効の場合、0を返します。
  ワールドマップ機能が無効化されていると、0を返します。
  WMAP_TOGGLE_KEY が指定されていない場合、常に0を返します。

  例えば、有効状態を変数10に格納したい場合、下記のように
  記述します。

  $game_variables[10] =
  Ex.get_wmap_toggleable


 (5) トグル機能の有効状態を設定する
  イベントのスクリプト命令で、下記のように記述します。

  Ex.set_wmap_toggleable(
   state
  )


  ・state
   トグル機能の有効状態を指定します。
   0を指定するとトグル機能を無効化します。
   1を指定するとトグル機能を有効化します。
   それ以外の値を指定しても、何も行いません。
   ワールドマップ機能が無効化されていると、何も行いません。

  この値は、セーブデータの一部として保存されます。


7.スタイルの復元方法
 マップを移動した時、データをロードした時など、別のマップに
 切り替わった際に表示スタイルを復元する方法は、
 WMAP_REMEMBER_MODEの設定内容ごとに、優先して使用される
 表示スタイルが異なります。

 (1) 0 (復元しない)
  1. マップに指定された初期スタイル
  2. WMAP_DEFAULT_STYLE

 (2) 1 (変更されたスタイルをマップごとに記憶する)
  1. Ex.set_wmap_style で指定した表示スタイル
  2. マップに指定された初期スタイル
  3. WMAP_DEFAULT_STYLE

 (3) 2 (変更されたスタイルをマップ全体で共有する)
  1. Ex.set_wmap_style で指定した表示スタイル(※)
  2. マップに指定された初期スタイル
  3. WMAP_DEFAULT_STYLE

  ※別のマップで指定された表示を共有します


8.背景画像について
 背景画像は、ワールドマップ表示領域の背面に表示する画像の
 ことを意味します。この画像は表示スタイルの :width, :height に
 合わせて引き伸ばして表示されます。画質を損ないたくない場合は
 :width, :height と同じサイズの画像を使用してください。

 また、背景画像は一度読み込まれるとメモリ上にキャッシュするので
 あまり大きな画像を使用することは推奨しません。


9.キャラクター画像について
 キャラクター画像の画像ファイルには規定の書式があります。
 画像は、下記のような書式である必要があります。

 画像

 (1) charについて
  char0 はプレイヤー専用のキャラクター画像です。
  char1~3 はイベントのキャラクター画像です。
  イベントへのキャラクター画像の割り当て方法は10章に
  記載されています。

 (2) anmについて
  それぞれのキャラクター画像は、4パターンからなる画像で
  アニメーションします。anm0~anm3を1セルあたり15フレームの
  間隔で表示し、それを繰り返します。
  画像をアニメーションしたくない場合は、anm0~anm3に全く同じ
  画像を並べてください。

 (3) その他注意点
  画像の幅、高さ共に4~256ピクセルの画像を使用してください。
  画像の幅、高さは4で割り切れるピクセル数を推奨します。
  画像は一度読み込まれるとメモリ上にキャッシュします。


10.ワールドマップ上にイベントを表示する
 ワールドマップ上には、全てのイベントが表示されるわけでは
 ありません。ワールドマップにイベントを同期させて表示するには
 表示したいイベントに対して設定を行う必要があります。
 表示したいイベントの名前に、下記のように記述します。

 任意の名前

 (1) NUMBER
  どのキャラクター画像を使用するかを1~3の数字で指定します。
  この数字はキャラクター画像のchar1~char3に対応しています。
  (詳細は9章を参照してください)

 (2) SWNO
  どのスイッチがONになっている時にイベントを表示するかを
  スイッチ番号で指定します。sw:SWNOの定義は記述しなくても
  構いません。

 記述例:
  Ev001
  Ev002


 ワールドマップ上にイベントが表示されるためには、いくつかの
 条件を全て満たしていなければなりません。下記にその条件を
 記載します。

 ・wmevが定義されていること。
 ・sw:SWNOのスイッチがON、またはsw:SWNOが未定義であること。
 ・いずれかのイベントページの出現条件を満たしていること。
 ・一時消去されていないこと。

 上記いずれかの条件が一つでも不一致の場合、ワールドマップ上には
 表示されません。


11.使用例
 ワールドマップスクリプトの使用例を下記に記載します。

 (1) ガイドマップ
  画像

 (2) レーダー
  画像

 (3) 世界地図
  画像

 (4) 世界地図 (背景画像使用版)
  画像

  素材利用:CLOSET (http://eurs.blog65.fc2.com/)


■導入手順■
1.導入前の準備
 このスクリプトは

 ・環境変数スクリプト
 ・拡張オプションスクリプト

 上記スクリプトを最初に導入しておいてください。
 すでに導入済みの場合はこの作業を省略できます。


2.スクリプトの追加と置換
 (1) 追加
  以下のスクリプトは標準のスクリプトには存在しないものなので、
  手動で追加する必要があります。スクリプトの名前は各ファイル名
  から「.txt」を除いたものにしてください。

  Config.txt
  Controller_WorldMap.txt
  Ex.txt
  Spriteset_WorldMap.txt

  ただし、過去に公開された拙作のスクリプト素材を導入済みで、
  すでに同じ名前のスクリプトが存在する場合は、以下のコメントで
  囲まれている部分を手動で追加してください。

  #T14-057 NEW--->
  #<--------------

 (2) 置換
  以下のスクリプトの内容を書き換える作業を行います。

  Game_Map.txt    → Game_Map
  Game_Temp.txt   → Game_Temp
  Scene_Map.txt   → Scene_Map
  Spriteset_Map.txt → Spriteset_Map

  上記で示したスクリプトに、以下のコメントで囲まれている部分を
  手動で追加してください。

  #T14-057 ADD--->
  #<--------------

  変更する箇所を間違えないように注意してください。

 ●注意
 置換作業を行う前に必ずバックアップを取っておくようにしてください。
 元のスクリプトの状況によっては、置換を行うことでスクリプトが
 正常に動作しなくなることがあります。
-----機能説明ここまで-----

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

J-SON
2014年04月27日 22:47
2014/04/27 22:30よりも以前に当ページの素材をダウンロードされた方は、お手数ですが再ダウンロードをお願いします。

一部のファイルが文字化けしてしまい、スクリプトが正常に認識されなくなっておりました。

この記事へのトラックバック