【解決】マップタイルをコピー(レイヤーを部分的に上書き)

good
記事: 5
登録日時: 2021年1月02日(土) 06:19

【解決】マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by good » 2021年1月02日(土) 06:31

RPGツクールMZで、MV用のプラグイン
SupponChangeTileId.jshttps://tm.lucky-duet.com/viewtopic.php?f=5&t=338&start=30
(製作者:Suppon様)を使用したいと考えています。

MZ用にプラグインを書き換えなくても概ね動作するのですが、このプラグインの機能の一つである

コピー元にB~Eタイルが無く、コピー先にB~Eタイルがある場合、
コピー先にあるB~Eはそのまま残ります。
」(引用元:プラグインヘルプ)

という機能は発揮されません。
ここで私が「できたらいいな」と思っているのは以下の内容です。

例えば

コピー元:(x,y)地点の全レイヤーのタイルIDの配列  [0,0,0,1000]
コピー先:(a,b)地点の全レイヤーのタイルIDの配列  [1,2,3,4]

という状況のとき、プラグインコマンドを実行すると

変更後:(a,b)地点の全レイヤーのタイルIDの配列  [1,2,3,1000] こうなる。


この例で言うと「(x,y)地点のレイヤー1のタイル(ID:1000)で、(a,b)地点のレイヤー1のタイル(ID:4)を上書きしたい(他のレイヤーには手を加えない)」ということになります。

SupponChangeTileIdはオートタイル機能などもあって素晴らしいプラグインなのですが、
私の能力ではこの部分の改変ができませんでした。
どなたかプラグインの改変、あるいは別のプラグインの制作は可能でしょうか。
よろしくお願い申し上げます。


追記
拙いながらプラグインコマンドをMZ用に書き換えたファイルを用意しました。
作者であるSuppon様に許可を頂きましたのでアップロード致します。こちらをご確認頂けますと幸いです。
ベースプラグインとして『PluginCommonBase』が必須です。

【サンプルプロジェクト】
MZ : https://18.gigafile.nu/0304-d55213b28387924022b43ae9e103e05b3
MV : https://18.gigafile.nu/0304-c3ed20d0db34ea97d6897165239b08e76
添付ファイル
SupponChangeTileId_.js
プラグインコマンド変更版 2
(24.18 KiB) ダウンロード数: 12 回
SupponChangeTileId_.js
プラグインコマンド変更版
(20.95 KiB) ダウンロード数: 7 回
最後に編集したユーザー good on 2021年1月04日(月) 07:48 [ 編集 4 回目 ]

アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by ムノクラ » 2021年1月02日(土) 08:50

good さんが書きました:RPGツクールMZで、MV用のプラグイン
SupponChangeTileId.jshttps://tm.lucky-duet.com/viewtopic.php?f=5&t=338&start=30
(製作者:Suppon様)を使用したいと考えています。

MZ用にプラグインを書き換えなくても概ね動作するのですが、このプラグインの機能の一つである

コピー元にB~Eタイルが無く、コピー先にB~Eタイルがある場合、
コピー先にあるB~Eはそのまま残ります。
」(引用元:プラグインヘルプ)

という機能は発揮されません。
ここで私が「できたらいいな」と思っているのは以下の内容です。

例えば

コピー元:(x,y)地点の全レイヤーのタイルIDの配列  [0,0,0,1000]
コピー先:(a,b)地点の全レイヤーのタイルIDの配列  [1,2,3,4]

という状況のとき、プラグインコマンドを実行すると

変更後:(a,b)地点の全レイヤーのタイルIDの配列  [1,2,3,1000] こうなる。


この例で言うと「(x,y)地点のレイヤー1のタイル(ID:1000)で、(a,b)地点のレイヤー1のタイル(ID:4)を上書きしたい(他のレイヤーには手を加えない)」ということになります。

SupponChangeTileIdはオートタイル機能などもあって素晴らしいプラグインなのですが、
私の能力ではこの部分の改変ができませんでした。
どなたかプラグインの改変、あるいは別のプラグインの制作は可能でしょうか。
よろしくお願い申し上げます。


一応、確認なのですが使用しているバージョンは最新版 version 1.10
SupponChangeTileId110.js
でしょうか?
viewtopic.php?f=5&t=338&start=30#p867

Suppon氏のプラグインはあちこちにバージョン違いがおいてあるケースが多いので…
(ご自身のウェブサイトには1.09があります。
http://suppon2008.web.fc2.com/Project1/ ... ileId.html
上記の最新返信内には2つのバージョンが置いてあるので、誤解している可能性があるかと)

また、MVで正常に動作しない場合、Suppon氏に連絡をすると対応いただける可能性があります。
(過去に何度か連絡を取っていて、対応いただけています)
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
good
記事: 5
登録日時: 2021年1月02日(土) 06:19

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by good » 2021年1月02日(土) 18:35

1.09版と1.10版の違いはプラグインコマンド関連の修正でした。
その点も含め、プラグインコマンドをMZ用に(ほぼ無理やり)書き換える程度のことはできたのですが、
肝心のタイル置き換え処理のことはさっぱり分からず……という具合です。
Suppon様には改変したファイルのアップロード許可を頂きましたので、トップにファイルを添付しました。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by ムノクラ » 2021年1月02日(土) 18:48

good さんが書きました:1.09版と1.10版の違いはプラグインコマンド関連の修正でした。
その点も含め、プラグインコマンドをMZ用に(ほぼ無理やり)書き換える程度のことはできたのですが、
肝心のタイル置き換え処理のことはさっぱり分からず……という具合です。
Suppon様には改変したファイルのアップロード許可を頂きましたので、トップにファイルを添付しました。


MVで同じ問題は発生したのでしょうか?
未確認でしょうか?
これによって、MVで修正後に移植すべきか、移植したもののMZとの差異を探すのか、全く作業が異なります。

また、簡単なサンプルプロジェクトをアップいただけると、どなたかが手を付けてくださるかも知れません。
少なくとも、自分はマップを弄り回すことがないので、これまで挙げていただいた文章では、マップ上で何がどうなっているのか分からないのです…
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
Artemis

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by Artemis » 2021年1月02日(土) 21:46

good様、こんにちは。
趣旨が間違っていたらすみません。
やりたいことのイメージとして以下で実現できていますでしょうか?
(ご提供いただいたソースを一部改変した、動作確認用ファイルです)

※確認して頂けたため、削除
最後に編集したユーザー Artemis on 2021年1月03日(日) 21:04 [ 編集 1 回目 ]
good
記事: 5
登録日時: 2021年1月02日(土) 06:19

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by good » 2021年1月03日(日) 09:54

i_1.png
i_1.png (466.71 KiB) 閲覧数: 3110 回
i_2.png

前回アップロードしたファイルにはミスがあったため、再度編集してアップロードいたしました。

MV、MZから『EventCommandByCode.js』を使用して呼び出し、MZ用に編集したプラグインコマンドからの呼び出し、
3つとも同じような動作をします。
(内部の動作が違うのかもしれませんが、私には分かりませんでした……)

改めて確かめたところ、私が困っているのは
mv、mz共に発生する「ペースト方法に「auto」を指定すると、全レイヤーが上書きされる?」という現象でした。
仕様なのか分からないので、改めて作者様にもご連絡をしてみようと思います。

サンプルプロジェクトを用意しました。
good
記事: 5
登録日時: 2021年1月02日(土) 06:19

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by good » 2021年1月03日(日) 10:27

Artemis様
ファイルを確認させて頂きました!
特に気になっていた「ペースト方法に「auto」を指定すると、全レイヤーが上書きされる?」という現象が
起きなくなり、とても理想に近い動作でした。

私が最初に書き換えた部分のせいでリピートの挙動がおかしかったので、
Artemis様のファイルのその部分を貼り替えたところ、改善しました。(添付ファイル)

完全に確認しきれたかは分からないのですが、かなり良い感じです!
ありがとうございます。
添付ファイル
SupponChangeTileId_a.js
(23.6 KiB) ダウンロード数: 12 回
Artemis

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by Artemis » 2021年1月03日(日) 20:49

こんにちは。

good さんが書きました:Artemis様
ファイルを確認させて頂きました!
特に気になっていた「ペースト方法に「auto」を指定すると、全レイヤーが上書きされる?」という現象が
起きなくなり、とても理想に近い動作でした。

私が最初に書き換えた部分のせいでリピートの挙動がおかしかったので、
Artemis様のファイルのその部分を貼り替えたところ、改善しました。(添付ファイル)

完全に確認しきれたかは分からないのですが、かなり良い感じです!
ありがとうございます。

good様ご提供のプラグインコマンド変更版 2のファイルをベースに修正致しました。
(前回の修正では交換時が機能しなくなってしまうので、こちらも考慮しました)
これで追加/交換/オートは意図されている動作になっているはずです。

※ワンオフとして解決されたため、プラグインは削除致しました。
最後に編集したユーザー Artemis on 2021年2月16日(火) 00:25 [ 編集 1 回目 ]
good
記事: 5
登録日時: 2021年1月02日(土) 06:19

Re: マップタイルをコピー(レイヤーを部分的に上書き)

投稿記事by good » 2021年1月04日(月) 07:47

Artemis様

ファイルをプロジェクトで確認致しました。
私が思っていた通りの動作で感激です! :D
早急にご対応いただきまして、本当にありがとうございました。

“MZ:プラグイン素材のリクエスト” へ戻る