ページ 11

歩数の変数管理について

Posted: 2025年3月31日(月) 00:47
by ちゃみ
こんばんわ。

いつもお世話になっております。
ツクールMZにてゲーム制作に挑戦してます。

ただいま弱い敵の出現を防ぐアイテム『せいすい』を作っており、
ノロワレ様の『CSVN_preventWeakEnemies.js』https://plugin-mz.fungamemake.com/archives/3271
を利用しています。

プラグインパラメーターで有効スイッチIDを設定し、そのスイッチがONになったときに
設定した弱い敵が出現しない効果が発動するようになるのですが、
その効果を切らすためにはそのためのイベントを組む必要があるようです。
効果を歩数によって切らす様にしたいと思いました。(ドラゴンクエストにある聖水といえばわかりやすいかも知れません。)

そこで、コモンイベントでアイテムの『せいすい』を使った時に処理されるコモンイベントを作り、
そのコモンイベントの中に、『CSVN_preventWeakEnemies.js』を発動させるスイッチと
歩数によって効果が切れるようにするための並列処理イベントを発動させるスイッチを入れました。

並列処理イベントの方なのですが特定の歩数(今回わかりやすくテスト用に10歩としてあります)で効果が切れる様にイベントを組み、マップの端に並列処理で置いておいたのですが
効果が発動しません。

根本的に変数の使い方を間違えてるっぽくてとても恥ずかしいのですが
まだイマイチ変数の取り扱いに慣れていない為、ご教授いただきたく書き込みました。
特定の歩数分歩いたら『せいすい』の効果が切れ、また再び『せいすい』を使用できるようにしたいのですが
どういったイベントを組むと良いのでしょうか?


初歩的な質問かも知れませんが、よろしくお願いいたします。

スクリーンショットを載せましたが
ゲーム制作上の都合でひらがなばかりで見辛く申し訳ありません。

Re: 歩数の変数管理について

Posted: 2025年3月31日(月) 13:13
by ecf5DTTzl6h6lJj02
こんにちは。
ちゃみ さんが書きました:こんばんわ。

いつもお世話になっております。
ツクールMZにてゲーム制作に挑戦してます。

ただいま弱い敵の出現を防ぐアイテム『せいすい』を作っており、
ノロワレ様の『CSVN_preventWeakEnemies.js』https://plugin-mz.fungamemake.com/archives/3271
を利用しています。

プラグインパラメーターで有効スイッチIDを設定し、そのスイッチがONになったときに
設定した弱い敵が出現しない効果が発動するようになるのですが、
その効果を切らすためにはそのためのイベントを組む必要があるようです。
効果を歩数によって切らす様にしたいと思いました。(ドラゴンクエストにある聖水といえばわかりやすいかも知れません。)

そこで、コモンイベントでアイテムの『せいすい』を使った時に処理されるコモンイベントを作り、
そのコモンイベントの中に、『CSVN_preventWeakEnemies.js』を発動させるスイッチと
歩数によって効果が切れるようにするための並列処理イベントを発動させるスイッチを入れました。

並列処理イベントの方なのですが特定の歩数(今回わかりやすくテスト用に10歩としてあります)で効果が切れる様にイベントを組み、マップの端に並列処理で置いておいたのですが
効果が発動しません。

根本的に変数の使い方を間違えてるっぽくてとても恥ずかしいのですが
まだイマイチ変数の取り扱いに慣れていない為、ご教授いただきたく書き込みました。
特定の歩数分歩いたら『せいすい』の効果が切れ、また再び『せいすい』を使用できるようにしたいのですが
どういったイベントを組むと良いのでしょうか?


初歩的な質問かも知れませんが、よろしくお願いいたします。

スクリーンショットを載せましたが
ゲーム制作上の都合でひらがなばかりで見辛く申し訳ありません。
まず、歩数のカウントを行うイベントは、マップごとに、並列処理のイベント置くのも面倒ですし、
並列処理のコモンイベントにしておいた方が便利かなと思います。

並列処理のイベントについてですが、
これは、出現条件(コモンイベントの場合はスイッチ条件)を満たしている間、
一番上から一番下まで全部、繰り返し実行されるものであるということを、
正しく理解できていますでしょうか?
これを、きちんと理解できていない人がたまにいるので一応確認しておきます。

で、肝心の並列処理で行っている内容ですが、
『すうち1』 という変数に現在の歩数を入れた直後、
『すうち2』という変数に同じく現在の歩数を入れています。
タイミングとして、ほぼ同じタイミングで、値が入りますので、
『すうち1』にも『すうち2』にも同じ値が入ると思います。
(タイミング次第では、違う数値が入ることもあり得ますが…)
なので、『すうち2』から『すうち1』を引いても 0 になります。

上でも書いていますが、並列処理のイベントは、
条件を満たしている間、一番上から一番下まで、繰り返し実行されていますので、
『すうち1』も『すうち2』も常に、現在の歩数に更新されていることになり、
『すうち2』引く『すうち1』は、ほぼ常時 0 (タイミングによっては 1 になりえる場合も) となるため、
条件分岐の条件を満たすことがありません。

『すうち1』(『せいすい』を使用した時の歩数)は、
『せいすい』を使用した時のコモンイベント上で値を代入し、
歩数カウントのイベントでは、数値を変更しないようにしてください。

Re: 歩数の変数管理について

Posted: 2025年3月31日(月) 15:24
by ちゃみ
こんにちは。

ecf5DTTzl6h6lJj02様

いつもありがとうございます。

教えて頂いた通り、こんな感じかなと変数を組んでみたら思った通りの動作になりました。

以前の並列処理イベントだといくら歩いても常に歩数が0扱いになってしまうため
条件分岐の条件を満たせなかったんですね。

教えて頂いた通り『すうち1』は『せいすい』を使用したときのコモンイベントの方に組み込みました。
また、並列処理イベントをマップに配置するのではなくコモンイベントにしました。
こういうやり方もあったのですね。教えて頂きありがとうございます。

まだ変数や、変数を使った並列処理など完璧に理解できたとはとても思えませんが
おかげさまで一歩先に進めた気がします。

ありがとうございます。

Re: 歩数の変数管理について

Posted: 2025年3月31日(月) 15:51
by ecf5DTTzl6h6lJj02
ちゃみ さんが書きました:こんにちは。

ecf5DTTzl6h6lJj02様

いつもありがとうございます。

教えて頂いた通り、こんな感じかなと変数を組んでみたら思った通りの動作になりました。

以前の並列処理イベントだといくら歩いても常に歩数が0扱いになってしまうため
条件分岐の条件を満たせなかったんですね。

教えて頂いた通り『すうち1』は『せいすい』を使用したときのコモンイベントの方に組み込みました。
また、並列処理イベントをマップに配置するのではなくコモンイベントにしました。
こういうやり方もあったのですね。教えて頂きありがとうございます。

まだ変数や、変数を使った並列処理など完璧に理解できたとはとても思えませんが
おかげさまで一歩先に進めた気がします。

ありがとうございます。
変数名や、スイッチ名、コモンイベントの名前などは基本的にプレイヤーからは見えませんし、
見やすい、分かりやすい名前を付けたほうがいいです(わざわざ、ひらがなのみの名前にする必要はないです)。

『せいすいかいしじほすう 』という変数を新たに作っていますが、
『せいすい』のコモンイベントで、『すうち1』に現在の歩数を代入した後、
『せいすいこうかぎれ』のコモンイベントでは、
『すうち1』の変数に対して、一切操作を行わなければいいだけですので、
この変数はいらないです。

『せいすい』のコモンイベントから、
◆変数の操作:#0153 せいすいかいしじほすう = 歩数
を消し、
◆変数の操作:#0151 すうち1 = せいすいかいしじほすう
を、
◆変数の操作:#0151 すうち1 = 歩数
に変え、
『せいすいこうかぎれ』のコモンイベントから
◆変数の操作:#0151 すうち1 = せいすいかいしじほすう
を消してしまっても、
提示されているイベント内容と同じ挙動になるはずです。

Re: 歩数の変数管理について

Posted: 2025年3月31日(月) 18:42
by ちゃみ
ecf5DTTzl6h6lJj02様

私も余計な変数を入れてるかなと思ったのですが、
教えていただいた変数を組んでテストプレイをして、F9で変数管理を見てみたところ
『ほすう1』しかカウントされていなく、何歩歩いても効果が切れませんでした。

また、変数名やスイッチ名についてなんですが、
ゲーム内でのフォントが、かな・カナ・英数字のみのフォントを使ってるため
テストプレイ時にスイッチや変数を参照したときエディターで漢字を使った部分は表示されなくなってしまい
何が何だかわからなくなってしまうのでこのようにしてます。
エディター内がひらがなだらけなので正直私も見にくいです;

しかし、このような場所では回答者様に見やすくなるように一時的にでも漢字を使うべきでした。
配慮が足らず申し訳ありませんでした。

申し訳ないのですが、今から漢字に変えると返ってわかりにくくなると思いますので
今回の質問ではひらがなのままでよろしいでしょうか。

Re: 歩数の変数管理について

Posted: 2025年3月31日(月) 20:01
by ecf5DTTzl6h6lJj02
ちゃみ さんが書きました:ecf5DTTzl6h6lJj02様

私も余計な変数を入れてるかなと思ったのですが、
教えていただいた変数を組んでテストプレイをして、F9で変数管理を見てみたところ
『ほすう1』しかカウントされていなく、何歩歩いても効果が切れませんでした。

また、変数名やスイッチ名についてなんですが、
ゲーム内でのフォントが、かな・カナ・英数字のみのフォントを使ってるため
テストプレイ時にスイッチや変数を参照したときエディターで漢字を使った部分は表示されなくなってしまい
何が何だかわからなくなってしまうのでこのようにしてます。
エディター内がひらがなだらけなので正直私も見にくいです;

しかし、このような場所では回答者様に見やすくなるように一時的にでも漢字を使うべきでした。
配慮が足らず申し訳ありませんでした。

申し訳ないのですが、今から漢字に変えると返ってわかりにくくなると思いますので
今回の質問ではひらがなのままでよろしいでしょうか。
記事を書いたときに、テストはしませんでしたので、改めてテストしてみましたが、
きちんと動作する筈なので、
他のイベント等で『すうち1』や『すうち2』の値が変更されてしまっていないかをチェックしてください。

因みに、スイッチも、せいすいしようのスイッチ1つだけで大丈夫なはずです。

一応、こちらで正しく動くように作った内容を貼っておきます。
プラグインの設定
プラグインの設定
せいすい使用時のコモンイベント
せいすい使用時のコモンイベント
歩数チェックのコモンイベント
歩数チェックのコモンイベント
ご確認ください。

Re: 歩数の変数管理について

Posted: 2025年3月31日(月) 20:47
by ちゃみ
ecf5DTTzl6h6lJj02様

返信をいただき、何か他のイベントによって『すうち1』や『すうち2』の値が変わってしまっているか
調べてみたら、試行錯誤しているときにマップに置いておいたいくつかの並列処理イベントのひとつが干渉してました。
申し訳ありませんでした。

貼っていただいた通りコモンイベントを組んだところ、希望通りの動きになりました。

変数となると未だに構えてしまいます、ここまでシンプルに出来るのですね。

色々とご指摘やアドバイスをいただき、ありがとうございました。