マップ一つに使えるタイルセットを無制限にする【プラグイン】
マップ一つに対してタイルセットを無制限で使用可能にします。
枠が足りないので増やしたいという方におすすめです。
WebGLの仕様で現状7つまでっぽいです。
通行判定のみを増やしたい方はRegionCollisionExをご利用ください。
凝ったマップを作る際、ペイントソフトで編集してまでタイルセットの最適化をしなきゃいけないデフォの仕様がアホらしいので作りました。
更新履歴
【MZ版】
2022/10/17:Ver.1.0.0 公開。
2022/10/17:Ver.1.0.1 処理を最適化。
2022/10/20:Ver.1.0.2 合成したタイルセットの格納先を$dataTilesetExに変更。
2022/10/23:Ver.1.1.0 ベースマップを入れ替える機能を追加。MV版のプラグインコマンドに対応。
2022/11/15:Ver.1.1.1 イベントテスト時にエラーが起こる問題の修正。
2022/12/07:Ver.2.0.0 競合対策。バグ修正。プラグインコマンドの仕様を変更。
2022/12/08:Ver.2.0.1 $gameMap.hasMapEx()の判定基準をより厳密に。
2022/12/08:Ver.2.0.2 競合対策。
2022/12/09:Ver.2.0.3 競合対策。
2023/02/01:Ver.3.0.0 タイルセット数を無制限にしました。
2023/02/12:Ver.4.0.0 余分なデータを破棄する仕様に変更。
2023/03/13:Ver.4.0.1 カウンター属性のタイルのグラフィックを修正。
2024/01/09:Ver.4.0.2 オートタイル属性を修正。キャラクターグラフィックの処理を削減。
2024/01/24:Ver.4.1.0 影の合成に対応しました。
2024/02/25:Ver.4.1.1 特定状況下で通行判定が正しく反映されない現象を修正。
2024/11/29:Ver.4.2.0 特定状況下でタイルセットが正しく反映されない不具合を修正。
2025/08/01:Ver.4.2.1 タイルIDが-1の時に発生する不具合を修正。
【MV版】
2022/10/19:Ver.1.0.0 公開。
2022/10/20:Ver.1.0.1 合成したタイルセットの格納先を$dataTilesetExに変更。
2022/10/23:Ver.1.1.0 ベースマップを入れ替える機能を追加。
2022/11/15:Ver.1.1.1 イベントテスト時にエラーが起こる問題の修正。
2022/12/07:Ver.2.0.0 競合対策。バグ修正。
2022/12/08:Ver.2.0.1 $gameMap.hasMapEx()の判定基準をより厳密に。
2022/12/08:Ver.2.0.2 競合対策。
2022/12/09:Ver.2.0.3 競合対策。
2023/02/01:Ver.3.0.0 タイルセット数を無制限にしました。
2023/02/12:Ver.4.0.0 余分なデータを破棄する仕様に変更。
2024/01/09:Ver.4.0.1 WebGLモードのグラフィック、カウンター属性のタイルのグラフィック、オートタイル属性を修正。キャラクターグラフィックの処理を削減。
2024/01/24:Ver.4.1.0 影の合成に対応しました。
2024/02/25:Ver.4.1.1 特定状況下で通行判定が正しく反映されない現象を修正。
2024/11/29:Ver.4.2.0 特定状況下でタイルセットが正しく反映されない現象を修正。
ダウンロード
【MZ版】
TilesetEx.js Ver.4.2.1
利用にはRPGツクールMZのユーザー登録が必要です。
【MV版】
TilesetExMV.js Ver.4.2.0
利用にはRPGツクールMVのユーザー登録が必要です。
※MV版はWebGLモード時にタイルセットを3つ以上使うと3つ目以降のグラフィックがおかしくなる現象が確認されています。
2つまでなら正常です。不具合の回避方法を発見された方はどうかご意見をお寄せください。
※MV版はVer.4.0.1より、WebGLモードでもCanvasモードと同様のマップ描画を行う事で不具合を回避しています。
使い方
不足しがちなタイルB~Eを補う目的での使用も可能ですが、今回は例として視覚的に分かりやすい、外装と内装を複合したマップを作ります。
(1) 親マップ(外装マップ)を描きます。
(3) もう一つのマップ、もとい子マップ(内装マップ)を作成します。
マップをグループ化し、名前を"tilesetEx"という文字列が含まれるようにします。
例えば"自宅内装_tilesetEx"でも構いません。幅、高さは必ず親マップと同じにして下さい。
遠景に保存したマップ画像を指定します。
(4) エディタに親マップが表示されるので編集しやすくなります。
今後は親マップを編集するたびに画像として保存を行うだけで、子マップの遠景も更新されるようになります。(5) 親マップに合わせて子マップを描きます。内装タイルを使用したイベントも置けます。
ちなみに遠景を無くすとこんな見た目です。
(6) 初期位置や場所移動は親マップを指定してください。
子マップを指定すると二つのマップが合体しません。
(7) 実際にゲームを起動すると二つのマップが合わさり最強になります。
(8) さらに追加する場合はこのように並べます。
仕様
・子マップのイベントIDは 親マップの最大イベントID+子マップのイベントID となります。
・子マップのタイルIDは 本来のタイルID+Tilemap.TILE_ID_MAX となります。
・子マップのタイルIDは 本来のタイルID+Tilemap.TILE_ID_MAX となります。
・マップの幅、高さのどちらかが64以上になると縮小された状態(MVは64未満でも縮小される)でマップ画像が保存されるため、適宜ペイントソフトなどで拡大してください。例えば64以上128未満だと画像を二倍に拡大しないと縮尺が合いません。
・親マップと子マップの同じマスにタイルがある場合、レイヤーが一致していると子マップのタイルに上書きされるため、組み合わせるときはレイヤーに注意を払ってください。
・子マップの遠景はゲーム上で表示されません。
この記事へのコメント
こちらのプラグインを使用させて頂いているのですが、重ねるレイヤー層を2つ3つと増やすことはできないでしょうか?
「DataManager.loadMapExData」のメソッドを繰り返すことで対応できないかと試行してみたのですが、さっぱりわかりませんでした……。
厚かましいお願いかとは存じますが、もし可能でしたら対応頂けると幸いです。
Ver.3.0.0に更新いたしました。
ご希望に添える内容になったかと思われます。
>匿名さん
>
>こんにちは。いつもお世話になっております。
>こちらのプラグインを使用させて頂いているのですが、重ねるレイヤー層を2つ3つと増やすことはできないでしょうか?
>
>「DataManager.loadMapExData」のメソッドを繰り返すことで対応できないかと試行してみたのですが、さっぱりわかりませんでした……。
>
>厚かましいお願いかとは存じますが、もし可能でしたら対応頂けると幸いです。
さっそく確認させて頂きました。素敵な機能が実装されて、より表現の幅が拡がりそうです。
ますます制作頑張りたいと思います。
お忙しい中、ご対応ありがとうございました。
>匿名さん
>
>あわやまたな様。
>さっそく確認させて頂きました。素敵な機能が実装されて、より表現の幅が拡がりそうです。
>
>ますます制作頑張りたいと思います。
>お忙しい中、ご対応ありがとうございました。
マップの表現の幅が広がるということで、こちらのプラグインを導入させていただいております。
一点だけ報告がありまして、カウンター属性を持ったA2タイルを子マップに設置すると、実際のゲーム画面での描写が少しおかしくなりました。
A2タイルにカウンター属性をつけると12ドット長さが延長されるというツクールの仕様が関係していると思われますが、きれいに表示させることは可能でしょうか?
お忙しいところ恐れ入りますが、ご確認いただけますと幸いです。
早速修正致しましたのでご確認ください。
>無名のツクラーさん
>
>はじめまして!
>マップの表現の幅が広がるということで、こちらのプラグインを導入させていただいております。
>一点だけ報告がありまして、カウンター属性を持ったA2タイルを子マップに設置すると、実際のゲーム画面での描写が少しおかしくなりました。
>A2タイルにカウンター属性をつけると12ドット長さが延長されるというツクールの仕様が関係していると思われますが、きれいに表示させることは可能でしょうか?
>お忙しいところ恐れ入りますが、ご確認いただけますと幸いです。
こちらのプラグインの方をお借りして販売を視野に入れたゲームの制作を行いたいのですが、商用での使用は可能でしょうか?
作者様のほかのプラグインを拝見させてただきましたところ、MITライセンスにおりましたがこちらのページでは見当たらなかったため念のため確認させて頂きたい次第です。
初歩的なところで申し訳ないのですが、つい最近制作を始めたばかりでプラグイン導入もこちらが初めてとなり、お借りする際の記載方法などで注意などありましたらお教えいただければ幸いです。
コアスクリプトからコピペした箇所があるのでMITライセンス付けてないだけです。
ツクールMZの規約が許す限り自由です。
「あわやまたな」という名前と本サイトのURL、https://awaya3ji.seesaa.netを併記して下さると助かります。
>匿名さん
>
>こんにちは!とても便利なプラグインを公開してくださりありがとうございます!
>
>こちらのプラグインの方をお借りして販売を視野に入れたゲームの制作を行いたいのですが、商用での使用は可能でしょうか?
>作者様のほかのプラグインを拝見させてただきましたところ、MITライセンスにおりましたがこちらのページでは見当たらなかったため念のため確認させて頂きたい次第です。
>
>初歩的なところで申し訳ないのですが、つい最近制作を始めたばかりでプラグイン導入もこちらが初めてとなり、お借りする際の記載方法などで注意などありましたらお教えいただければ幸いです。
子マップ(マップID157,タイルセット003内装)を006近未来内装に変更した場合は、
①プラグインコマンド「タイルセットEXの変更」→「マップインデックス157」
②イベントコマンド「タイルセットの変更」→「近未来内装」
これでやっても変化が起きないのですがやり方を間違っているのですか?
インデックスはマップIDではなく、上から何番目の子マップかで決めています。
上から一つ目の子マップなら0、上から二つ目の子マップなら1となります。
②について
あってます。
>さん
>
>コマンド「タイルセットEXの変更」について教えてください。
>子マップ(マップID157,タイルセット003内装)を006近未来内装に変更した場合は、
>
>①プラグインコマンド「タイルセットEXの変更」→「マップインデックス157」
>②イベントコマンド「タイルセットの変更」→「近未来内装」
>
>これでやっても変化が起きないのですがやり方を間違っているのですか?
>インデックスはマップIDではなく、上から何番目の子マップかで決めています。上から一つ目の子マップなら0、上から二つ目の子マップなら1となります。
ありがとうございます!問題解決しました!