【解決済み】指定した座標にリージョンを追加するor設置済みリージョンIDを変更する方法

返信する
能生寧夢
記事: 5
登録日時: 2021年3月26日(金) 13:32

【解決済み】指定した座標にリージョンを追加するor設置済みリージョンIDを変更する方法

投稿記事 by 能生寧夢 »

ご覧くださり、ありがとうございます。
ツクールMVのイベントコマンド「スクリプト」における記述方法についての質問になります。

Yanfly Engine様のプラグイン「YEP_RegionRestriction」を用いて、マップに通行可否設定を付けています。
これについて、スクリプトを用いることで特定の変数(例:変数ID_18)の値しだいで指定する座標にリージョンを新たに設置できるorあらかじめ設置されたリージョンのIDが変更できるようにしたいと考えています。

value18 = $gameMap.regionId(2, 2)
$gameVariables.setValue(4, value18)

とスクリプトに記述すれば「X座標2、Y座標2のリージョンIDを変数ID_18へ格納する」というところまでは出来ましたが逆に「(あらかじめ指定座標にリージョンをセットしておき)X座標2、Y座標2のリージョンIDを61に変更する」または「X座標2、Y座標2にリージョンID61をセットする」と指示できる記述方法はあるのでしょうか?
格納したい値をベタ打ちする方法でも、指定した変数IDの値を代入する方法でも大丈夫です。

具体的な用途としては、ダンジョンにおいて乱数分岐を用いた変則的なランダムマップを用いており、通行不可ポイントをフレキシブルに指定する必要があるためです(プライオリティを「プレイヤーと同じ」にした空イベントをバラまくことも考えましたが、数が多くなりすぎるため諦めました >_<)。
なおリージョンの使い道は通行可否を判定するだけのもので、ダンジョン内ではセーブ不可なので永続的な変更でなくてもOKです。また、マップ移動すれば破棄される情報でも問題ありません。
そのマップにプレイヤーが入る~別マップに移動するまでの間、暫定処理として使いたいものです。

よろしければお知恵を拝借いたしたく思います。
最後に編集したユーザー 能生寧夢 [ 2021年4月11日(日) 14:37 ], 累計 1 回
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 指定した座標にリージョンを追加するor設置済みリージョンIDを変更する方法

投稿記事 by ムノクラ »

能生寧夢 さんが書きました:ご覧くださり、ありがとうございます。
ツクールMVのイベントコマンド「スクリプト」における記述方法についての質問になります。

Yanfly Engine様のプラグイン「YEP_RegionRestriction」を用いて、マップに通行可否設定を付けています。
これについて、スクリプトを用いることで特定の変数(例:変数ID_18)の値しだいで指定する座標にリージョンを新たに設置できるorあらかじめ設置されたリージョンのIDが変更できるようにしたいと考えています。

value18 = $gameMap.regionId(2, 2)
$gameVariables.setValue(4, value18)

とスクリプトに記述すれば「X座標2、Y座標2のリージョンIDを変数ID_18へ格納する」というところまでは出来ましたが逆に「(あらかじめ指定座標にリージョンをセットしておき)X座標2、Y座標2のリージョンIDを61に変更する」または「X座標2、Y座標2にリージョンID61をセットする」と指示できる記述方法はあるのでしょうか?
格納したい値をベタ打ちする方法でも、指定した変数IDの値を代入する方法でも大丈夫です。

具体的な用途としては、ダンジョンにおいて乱数分岐を用いた変則的なランダムマップを用いており、通行不可ポイントをフレキシブルに指定する必要があるためです(プライオリティを「プレイヤーと同じ」にした空イベントをバラまくことも考えましたが、数が多くなりすぎるため諦めました >_<)。
なおリージョンの使い道は通行可否を判定するだけのもので、ダンジョン内ではセーブ不可なので永続的な変更でなくてもOKです。また、マップ移動すれば破棄される情報でも問題ありません。
そのマップにプレイヤーが入る~別マップに移動するまでの間、暫定処理として使いたいものです。

よろしければお知恵を拝借いたしたく思います。
自分としては、一度ボツにされた案を別プラグインで簡易にすることをお勧めしたいです。

https://fungamemake.com/archives/367

テンプレートプラグインとリスポーンプラグインを利用して、マップに同じ通行不可イベントを複数ランダム(一定条件もつけられます。例えば地形タグ等)に配置できます。

同じことを考えて作ったのが下記ですが、テンプレートの利用方法を理解しない時点での記事ですので、近日中にリライトしようと思います。
https://fungamemake.com/archives/329
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
能生寧夢
記事: 5
登録日時: 2021年3月26日(金) 13:32

Re: 指定した座標にリージョンを追加するor設置済みリージョンIDを変更する方法

投稿記事 by 能生寧夢 »

ムノクラ 様

お知らせくださり、ありがとうございました。
自作のランダムダンジョンは無作為に選ばれた小部屋同士を連結させたもので、部屋をチョイスする際に使用した変数とリンクして小部屋内の通行可能/不可ポイントも変わる、という形にしたいのです。
なので、変数を用いて(あるいは直接指定で)特定の座標へリージョンを置いたり変更したりする方法があれば……と考えています。
アバター
くろうど
記事: 318
登録日時: 2016年1月22日(金) 20:52
お住まい: 東京都
連絡する:

Re: 指定した座標にリージョンを追加するor設置済みリージョンIDを変更する方法

投稿記事 by くろうど »

こんにちは。

リージョンを変更するより良い方法がある気はしますが、やりたい事が分からないので、私が以前作って放置しているリージョン変更プラグインを置いておきます。

下のリンク先の KRD_SetRegion.js または KRD_RandomTile.js が該当プラグインです。
ヘルプを書いていないのでJavaScriptの知識がいくらか必要なことと、MITライセンスなので保証はありません。

README によると「シーンが変わると元に戻ります」と書いているので、場所移動やセーブ・ロードはもちろん、メニュー画面の開閉でも元に戻るかもしれません。
昔のプラグインなので、忘れました。

https://github.com/kuroudo119/RPGMV-Plugin

よろしくおねがいします。
▼だいたいTwitterにいます。たぶん。
https://twitter.com/kuroudo119
アバター
ムノクラ
記事: 2118
登録日時: 2018年2月23日(金) 11:41
連絡する:

Re: 指定した座標にリージョンを追加するor設置済みリージョンIDを変更する方法

投稿記事 by ムノクラ »

おぉう、くろうど氏が先に…

▼Suppon Change Tile ID(Suppon様作) - SupponChangeTileId.js
https://plugin.fungamemake.com/archives/16630
マップタイルIDのコピー&ペーストを行います。

リージョンもコピーされるようなので、これも使えるかもしれません。

ただ、時折リージョンの書き換えの質問は来ますが、大抵が他の方法のほうが無難だったりするので、実現したいことの詳細を説明して、別の方法を探すほうが、後々無難な気がします。

ちなみに、通常イベントコマンドで、リージョンの取得はできます。
イベントP3の右上あたりにあります。
(無理にJavaScriptで行う必要性はありません)
◆指定位置の情報取得:#0001, リージョンID, (1,1)
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
能生寧夢
記事: 5
登録日時: 2021年3月26日(金) 13:32

Re: 指定した座標にリージョンを追加するor設置済みリージョンIDを変更する方法

投稿記事 by 能生寧夢 »

くろうど 様
ムノクラ 様

プラグインをお知らせくださり、ありがとうございました。さっそくダウンロードいたしました。
お二方に教えていただいたプラグインを組み合わせることで思っている通りの演出が出来ましたので、どちらも使わせていただきます。
大変助かりました!
返信する

“MV:質問”に戻る