GALV Map Travel MZ はヘルプに書いてあるように「入れただけで簡単には動かず、それなりのイベント知識が必要」です。
これを可能な限り簡単なサンプルを作り、情報の整理します。
目次
サンプルプロジェクト
このサンプルプロジェクトにはプラグインは含まれていません。
(再配布が禁止されている為)
下記より、別途入手してください。
galvs-scripts.com/2020/09/05/mz-map-travel/
画像の用意
最低でも、下記の画像が必要です。
- 世界地図
- 場所のキャラクター
- 前景
- 背景
これらはプロジェクト内の img/maptravel 内に入れる必要があります。
世界地図
今回はデフォルトにあるフィールドマップから作成していきます。
マップツリーを右クリック「画像として保存」
で世界地図を作成しました。
大きさは変更していません。
場所のキャラクター
画像の仕様は下記です。
横:フレーム数分
縦
上:未選択時
中:選択中
下:非有効時
今回はタイルマップから切り出して、下記のように作りました。
前景と背景
前景と背景は使用しないとエラーになります。
今回は、ダミーの画像(1x1の透明png)を使いました。
座標の調べ方
ワールドマップを表示するには、ワールドマップの解像度や位置に合わせた座標が必要です。
雑ですが、簡単な計算方法をやってみましょう。
世界地図の画像サイズから座標を計算する
今回は1680x1200でした。
ツクール編集画面の座標は
左上:0,0
右下:139,99
です。
計算しやすく、座標に1足し
1,1 から 140,100 と考えると12で割った数値が、世界地図の画像上での右下座標になります。
つまり、1タイルのサイズが12x12になっているということです。
今回のスタート地点はマップ上で 84,83 なので、世界地図上での概ねの位置は
x:12*84=1008
y:12*83=996
になります。
城の座標は 61,63 なので、世界地図上での概ねの位置は
x:12*61=732
y:12*63=756
になります。
この概算で表示してみて、用意したキャラクターのサイズにより微調整が必要ならば調整するというのがお薦めです。
座標はキャラクターの中心になるようなので、それを参考に調整できると思います。
プラグインの設定
プラグインの入手と日本語化
下記からダウンロードしてください。
galvs-scripts.com/2020/09/05/mz-map-travel/
こちらのプラグインは「クレジット必須、ゲーム作品に含めて以外の再配布禁止」です。
ですので、日本語化したプラグインを配布することができません。
プラグインをpluginフォルダに入れた後に、日本語化パッチを下記からダウンロードして貼り付けてください。
fungamemake.com/archives/11136
日本語化は必須ではありませんが、この後の情報の整理は日本語化されたものの画面で情報の整理します。
また、本家のプラグインパラメーターには、少々のミスが有り、日本語化パッチでは、これを修正してあります。
変数の設定
プラグイン管理に追加し、パラメーター(変数)を設定します。
デフォルトで変数ID1から3が割り当てられています。
このプラグイン専用(というか座標用)とだけ使用する前提のものを使用します。
変数の名前を設定しておきましょう。
ワールドマップシステムとしての設定
コモンイベント作成
プラグインコマンドやスクリプトでマップ画面を表示します。
今回は、お手軽にアイテムで呼び出せるように設定します。
◆変数の操作:#0001 マップID = マップID
◆変数の操作:#0002 X = プレイヤーのマップX
◆変数の操作:#0003 Y = プレイヤーのマップY
◆プラグインコマンド:GALV_MapTravelMZ, マップを開く
: :マップID(必須) = 0
: :キャンセル防止 = false
◆場所移動:{マップID} ({X},{Y})
アイテムの作成
これで、重要アイテム「世界地図」を使用すると、世界地図が表示されます。
ワールドマップを設定
アイテムの世界地図を渡すと同時に、ワールドマップの作成をプラグインコマンドで行います。
◆文章:なし, なし, ウィンドウ, 下
: :世界地図をあげる。
: :大事なものだから、大切にしてね。
◆アイテムの増減:世界地図 + 1
◆プラグインコマンド:GALV_MapTravelMZ, マップの作成
: :マップID(必須) = 0
: :マップ画像(必須) = WorldMap
: :背景画像(必須) = ["Dummy,0,0,255"]
: :前景画像(必須) = ["Dummy,0,0,255"]
ワールドマップに場所を設定
◆文章:なし, なし, ウィンドウ, 下
: :北西に行くと城があるから、行ってみたら良い。
: :ここに戻って来られるように、場所を登録しておく。
◆プラグインコマンド:GALV_MapTravelMZ, 場所の設定
: :マップID(必須) = 0
: :場所名(必須) = 村
: :画像名(必須) = Village
: :X位置(必須) = 1008
: :Y位置(必須) = 996
: :転送マップID(必須) = 1
: :転送マップX(必須) = 84
: :転送マップY(必須) = 84
: :場所の情報 =
: :アニメーションフレーム = 2
◆スクリプト://マップシーンの開始位置をマップ0の村に設定
: :Galv.MAPT.initLocation(0,"村");
実は、この作りにはミスがあります。
マップを作成した後に、場所を1つも設定していない状態でワールドマップを開くと、エラーが発生します。
今回の例では、一人目に世界地図をもらった直後に、ワールドマップを表示させ、決定キーを押すとエラーになります。
本来はマップの作成の直後に場所を1つ設定すべきです。
(直すのが面倒だったわけではなく、こうするとエラーになるという例のために作りました…)
また、ワールドマップを作成する前に、場所を設定しても無効ですので、順番に注意してください。
文末のスクリプトは必須ではありませんが、入れておくとユーザビリティが上がると思います。
ワールドマップに場所を追加
◆文章:なし, なし, ウィンドウ, 下
: :また、ここに来られるように世界地図に登録してやろう。
◆プラグインコマンド:GALV_MapTravelMZ, 場所の設定
: :マップID(必須) = 0
: :場所名(必須) = 黄色い城
: :画像名(必須) = YellowCastle
: :X位置(必須) = 732
: :Y位置(必須) = 756
: :転送マップID(必須) = 1
: :転送マップX(必須) = 62
: :転送マップY(必須) = 66
: :場所の情報 =
: :アニメーションフレーム = 2
これで、2つ目の場所が設定されます。
総括と注意点
最初のコモンイベントを読み解くと分かりますが、このプラグインは、ワールドマップで登録されているマップへ移動させるものではなく、指定した変数へ数値を代入するものです。
なので、ワールドマップを開く前に、現在地を保存しておかないと、閉じた時に変な場所へ移動されてしまう場合があります。
また、移動処理を入れないと、マップで選択肢を選んでも、その場には移動しません。
また、デプロイメントで「未使用ファイルを除外する」を使用すると、maptravelフォルダが含まれなくなります。
RPGツクールMZでは、新規プロジェクトからあるフォルダ以外は「未使用ファイルを除外する」を使用すると含まれないようです。
つまり、RPGツクールMZでは、systemやpicturesフォルダに入れる作りのプラグインを作ったほうが良いということになりそうです。