【解決】選択肢表示中にセーブし、ロードでその場所に戻る方法

ルンタッタ・ワクテッカ
記事: 9
登録日時: 2020年9月16日(水) 19:06

【解決】選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ルンタッタ・ワクテッカ » 2021年4月26日(月) 22:07

ツクマテ参加者の皆様、いつも大変お世話になっております。ルンタッタと申します。
プログラミングの知識に乏しくツクール歴も浅いのですが、
皆様の書き込みや情報共有を頼りに少しずつ制作を進められております。
この場を借りて改めてお礼申し上げます。

今回、『選択肢表示中にセーブし、ロードでその場所に戻る方法』
がないかと思い書き込みさせていただきました。

現在、トリアコンタン様ご制作のPictureCallCommon.jsをお借りし、
常時メニューが開ける形でゲームを制作しております。
(下記添付画像のような形です)

なので、「選択肢表示中にセーブをする」という点は達成できているのですが、
選択肢が表示されたタイミングでセーブを行うと、
ロードで呼び出されるのは選択肢通過直後のメッセージになってしまいます。

こちらは、
https://tm.lucky-duet.com/viewtopic.php?f=99&t=10988&p=41175&hilit=%E3%82%BB%E3%83%BC%E3%83%96#p41175
上記スレッドでムノクラ様が

例えば、下記のイベントを自動実行で実行し、セーブ画面で開いた時にセーブをします。
そのデータでコンティニューすると、文章はtest2から表示されます。

コード: 全て選択

◆文章:なし, なし, ウィンドウ, 下
:  :test1
◆セーブ画面を開く
◆文章:なし, なし, ウィンドウ, 下
:  :test2
◆セルフスイッチの操作:A = ON


と書き込まれていたので、
セーブ箇所に直接ロードできないというのはツクールの仕様通りの動きなのだと理解したのですが、
拙作にて選択肢でのストーリー分岐を行いたいため、
プレイしてくださる方のお手数を減らすためにも是非選択肢でのセーブ&ロードを行いたく……。


私の調べた限りではMZでは該当するプラグインがなく、
(MVではこちら→https://paradre.com/saveinevent-plugin/がイメージに近かったのですが)

下記のスレッド
https://tm.lucky-duet.com/viewtopic.php?f=99&t=10644&p=40567&hilit=%E3%82%BB%E3%83%BC%E3%83%96#p40567
リクドウ様の書き込みを参考に、
①メニュー画面を開くコモンイベントに「メニューを開いた」スイッチを追加、ON
②選択肢分岐全ての冒頭に「メニュー開いた」スイッチONの条件分岐を入れる。
 ONの場合、もう同じ1回選択肢が表示されるように(ロード対策)

というのも考えたのですが、セーブ&ロード以外の用途(ステータスやアイテム確認など?)で
メニューを開いた場合もスイッチがONになってしまうので、
謎に同じ選択肢を2回見ることになる方が出てしまうな、と……。

このような感じで、ロクなアイディアが浮かんでおらず……><
もし、解決できる方法に心当たりのある方がいらっしゃいましたら、
お力を貸していただけますと幸いです。
添付ファイル
スクリーンショット 2021-04-26 21.00.29.png
最後に編集したユーザー ルンタッタ・ワクテッカ on 2021年4月28日(水) 17:00 [ 編集 1 回目 ]

アバター
しぐれん
記事: 973
登録日時: 2017年3月28日(火) 22:22
連絡を取る:

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by しぐれん » 2021年4月26日(月) 22:27

ちょうどMZ用に開発していたものがあるので、公開できるように作業を進めます。
ただ、少し動作が強引なため安定性は保証できない面があります。

画像を見る限り、何らかのボタンを用意してそこから表示する動作を想定していると思います。
現在、プラグイン依頼はお休み中です。
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ムノクラ » 2021年4月26日(月) 22:34

ルンタッタ・ワクテッカ さんが書きました:ツクマテ参加者の皆様、いつも大変お世話になっております。ルンタッタと申します。
プログラミングの知識に乏しくツクール歴も浅いのですが、
皆様の書き込みや情報共有を頼りに少しずつ制作を進められております。
この場を借りて改めてお礼申し上げます。

今回、『選択肢表示中にセーブし、ロードでその場所に戻る方法』
がないかと思い書き込みさせていただきました。

現在、トリアコンタン様ご制作のPictureCallCommon.jsをお借りし、
常時メニューが開ける形でゲームを制作しております。
(下記添付画像のような形です)

なので、「選択肢表示中にセーブをする」という点は達成できているのですが、
選択肢が表示されたタイミングでセーブを行うと、
ロードで呼び出されるのは選択肢通過直後のメッセージになってしまいます。

こちらは、
https://tm.lucky-duet.com/viewtopic.php?f=99&t=10988&p=41175&hilit=%E3%82%BB%E3%83%BC%E3%83%96#p41175
上記スレッドでムノクラ様が

例えば、下記のイベントを自動実行で実行し、セーブ画面で開いた時にセーブをします。
そのデータでコンティニューすると、文章はtest2から表示されます。

コード: 全て選択

◆文章:なし, なし, ウィンドウ, 下
:  :test1
◆セーブ画面を開く
◆文章:なし, なし, ウィンドウ, 下
:  :test2
◆セルフスイッチの操作:A = ON


と書き込まれていたので、
セーブ箇所に直接ロードできないというのはツクールの仕様通りの動きなのだと理解したのですが、
拙作にて選択肢でのストーリー分岐を行いたいため、
プレイしてくださる方のお手数を減らすためにも是非選択肢でのセーブ&ロードを行いたく……。


私の調べた限りではMZでは該当するプラグインがなく、
(MVではこちら→https://paradre.com/saveinevent-plugin/がイメージに近かったのですが)

下記のスレッド
https://tm.lucky-duet.com/viewtopic.php?f=99&t=10644&p=40567&hilit=%E3%82%BB%E3%83%BC%E3%83%96#p40567
リクドウ様の書き込みを参考に、
①メニュー画面を開くコモンイベントに「メニューを開いた」スイッチを追加、ON
②選択肢分岐全ての冒頭に「メニュー開いた」スイッチONの条件分岐を入れる。
 ONの場合、もう同じ1回選択肢が表示されるように(ロード対策)

というのも考えたのですが、セーブ&ロード以外の用途(ステータスやアイテム確認など?)で
メニューを開いた場合もスイッチがONになってしまうので、
謎に同じ選択肢を2回見ることになる方が出てしまうな、と……。

このような感じで、ロクなアイディアが浮かんでおらず……><
もし、解決できる方法に心当たりのある方がいらっしゃいましたら、
お力を貸していただけますと幸いです。


ここまで詳細な質問文章が書ける状態であることから期待して、雑な返信をスピード重視で書かせていただくことをお許しください。

リクドウ氏の案を変数にするのとページの切り分けで、解決すると思います。
とはいえ、変数の出現条件は≧しか使えないので、

1.専用の変数を用意する。
2.セーブ前に変数を0等を代入する。(念の為)
3.変数が1以上の出現条件のページを用意して、選択肢の続きを実行するページにする。
出現条件の使用に気をつけて、並び順に注意ください。
4.セーブ画面を出す。
5.選択肢で変数に1以上の値を代入する。

といったアイディアで乗り切れる予感がします。

これで、上手く行かない場合、どうイベントを組んだのかスクリーンショットをいただければ、詳細を調べやすいです。
ご検討ください。


追記

サンプルを作ってみました。
解凍したデータを、新規プロジェクトのdataフォルダに入れてテストしてください。
(選択肢中でない挙動であることは簡便さから許容範囲に入れていただければ…)

Map001.zip
(991 バイト) ダウンロード数: 5 回
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
ルンタッタ・ワクテッカ
記事: 9
登録日時: 2020年9月16日(水) 19:06

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ルンタッタ・ワクテッカ » 2021年4月26日(月) 23:14

しぐれん さんが書きました:ちょうどMZ用に開発していたものがあるので、公開できるように作業を進めます。
ただ、少し動作が強引なため安定性は保証できない面があります。

画像を見る限り、何らかのボタンを用意してそこから表示する動作を想定していると思います。


しぐれん様、早速のご返信誠にありがとうございます。
ツクマテやフォーラムでのご回答、
いつも制作の参考にさせていただいています!
(こんなところでのお礼になり誠に恐縮です)

そして新しいプラグインご開発中とのこと、とても心強いです……!
重ねてお力を借りることになってしまい大変恐れ多いのですが、
リリースを楽しみにお待ちしております><
重ねてになりますがこの度はご回答誠にありがとうございました!
ルンタッタ・ワクテッカ
記事: 9
登録日時: 2020年9月16日(水) 19:06

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ルンタッタ・ワクテッカ » 2021年4月27日(火) 00:19

ムノクラ さんが書きました:
ルンタッタ・ワクテッカ さんが書きました:ツクマテ参加者の皆様、いつも大変お世話になっております。ルンタッタと申します。
プログラミングの知識に乏しくツクール歴も浅いのですが、
皆様の書き込みや情報共有を頼りに少しずつ制作を進められております。
この場を借りて改めてお礼申し上げます。

今回、『選択肢表示中にセーブし、ロードでその場所に戻る方法』
がないかと思い書き込みさせていただきました。

現在、トリアコンタン様ご制作のPictureCallCommon.jsをお借りし、
常時メニューが開ける形でゲームを制作しております。
(下記添付画像のような形です)

なので、「選択肢表示中にセーブをする」という点は達成できているのですが、
選択肢が表示されたタイミングでセーブを行うと、
ロードで呼び出されるのは選択肢通過直後のメッセージになってしまいます。

こちらは、
https://tm.lucky-duet.com/viewtopic.php?f=99&t=10988&p=41175&hilit=%E3%82%BB%E3%83%BC%E3%83%96#p41175
上記スレッドでムノクラ様が

例えば、下記のイベントを自動実行で実行し、セーブ画面で開いた時にセーブをします。
そのデータでコンティニューすると、文章はtest2から表示されます。

コード: 全て選択

◆文章:なし, なし, ウィンドウ, 下
:  :test1
◆セーブ画面を開く
◆文章:なし, なし, ウィンドウ, 下
:  :test2
◆セルフスイッチの操作:A = ON


と書き込まれていたので、
セーブ箇所に直接ロードできないというのはツクールの仕様通りの動きなのだと理解したのですが、
拙作にて選択肢でのストーリー分岐を行いたいため、
プレイしてくださる方のお手数を減らすためにも是非選択肢でのセーブ&ロードを行いたく……。


私の調べた限りではMZでは該当するプラグインがなく、
(MVではこちら→https://paradre.com/saveinevent-plugin/がイメージに近かったのですが)

下記のスレッド
https://tm.lucky-duet.com/viewtopic.php?f=99&t=10644&p=40567&hilit=%E3%82%BB%E3%83%BC%E3%83%96#p40567
リクドウ様の書き込みを参考に、
①メニュー画面を開くコモンイベントに「メニューを開いた」スイッチを追加、ON
②選択肢分岐全ての冒頭に「メニュー開いた」スイッチONの条件分岐を入れる。
 ONの場合、もう同じ1回選択肢が表示されるように(ロード対策)

というのも考えたのですが、セーブ&ロード以外の用途(ステータスやアイテム確認など?)で
メニューを開いた場合もスイッチがONになってしまうので、
謎に同じ選択肢を2回見ることになる方が出てしまうな、と……。

このような感じで、ロクなアイディアが浮かんでおらず……><
もし、解決できる方法に心当たりのある方がいらっしゃいましたら、
お力を貸していただけますと幸いです。


ここまで詳細な質問文章が書ける状態であることから期待して、雑な返信をスピード重視で書かせていただくことをお許しください。

リクドウ氏の案を変数にするのとページの切り分けで、解決すると思います。
とはいえ、変数の出現条件は≧しか使えないので、

1.専用の変数を用意する。
2.セーブ前に変数を0等を代入する。(念の為)
3.変数が1以上の出現条件のページを用意して、選択肢の続きを実行するページにする。
出現条件の使用に気をつけて、並び順に注意ください。
4.セーブ画面を出す。
5.選択肢で変数に1以上の値を代入する。

といったアイディアで乗り切れる予感がします。

これで、上手く行かない場合、どうイベントを組んだのかスクリーンショットをいただければ、詳細を調べやすいです。
ご検討ください。


追記

サンプルを作ってみました。
解凍したデータを、新規プロジェクトのdataフォルダに入れてテストしてください。
(選択肢中でない挙動であることは簡便さから許容範囲に入れていただければ…)

Map001.zip



ムノクラ様、早速のご返信誠にありがとうございます!
そしてツクプラやムノクラのメモ帳など、
日々数え切れないほど参考にさせていただいています。
本当にありがとうございます……!
その上このような個人的な疑問にまで丁寧にご回答いただけ誠に恐縮しております。

早速サンプルプロジェクトも確認させていただきました!
希望通り選択肢の内容がセーブされている!ことにとても感動したのですが、
こちらは選択肢表示前に「セーブ画面を開く」コマンドを
イベント内に実装することが必須になりますでしょうか……><?

私が現在実現したい挙動としては、

①常時表示のボタンピクチャを使いプレイヤーが自由なタイミングでメニューを呼び出す
②メニュー画面からプレイヤーがセーブやロードを選択

という感じなので、ゲーム側から直接セーブを呼び出すことは想定になかったのですが、
その場合でもこちらの方法は応用できるのか、まだ理解が及んでおらず……。

ご教示いただきましたサンプルを参考に拙作にも
・選択肢用の変数を用意
・ページを分けて条件分岐で選択肢以降の内容の実装
を試してみたのですが(下記画像のような形で行っております)、
セーブ&ロードの挙動は導入前と同様、
セーブした直後のメッセージがロードされました。
(選択肢の分岐としては問題なく動作いたしました)

こちらの理解力不足で更にお手数をおかけしてしまい本当に心苦しいのですが、
引き続きご意見を伺えますと幸いです>< 何卒よろしくお願い申し上げます……!
添付ファイル
スクリーンショット 2021-04-27 00.09.23.png
スクリーンショット 2021-04-27 00.08.57.png
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ムノクラ » 2021年4月27日(火) 06:01

ルンタッタ・ワクテッカ さんが書きました:ムノクラ様、早速のご返信誠にありがとうございます!
そしてツクプラやムノクラのメモ帳など、
日々数え切れないほど参考にさせていただいています。
本当にありがとうございます……!
その上このような個人的な疑問にまで丁寧にご回答いただけ誠に恐縮しております。

早速サンプルプロジェクトも確認させていただきました!
希望通り選択肢の内容がセーブされている!ことにとても感動したのですが、
こちらは選択肢表示前に「セーブ画面を開く」コマンドを
イベント内に実装することが必須になりますでしょうか……><?

私が現在実現したい挙動としては、

①常時表示のボタンピクチャを使いプレイヤーが自由なタイミングでメニューを呼び出す
②メニュー画面からプレイヤーがセーブやロードを選択

という感じなので、ゲーム側から直接セーブを呼び出すことは想定になかったのですが、
その場合でもこちらの方法は応用できるのか、まだ理解が及んでおらず……。

ご教示いただきましたサンプルを参考に拙作にも
・選択肢用の変数を用意
・ページを分けて条件分岐で選択肢以降の内容の実装
を試してみたのですが(下記画像のような形で行っております)、
セーブ&ロードの挙動は導入前と同様、
セーブした直後のメッセージがロードされました。
(選択肢の分岐としては問題なく動作いたしました)

こちらの理解力不足で更にお手数をおかけしてしまい本当に心苦しいのですが、
引き続きご意見を伺えますと幸いです>< 何卒よろしくお願い申し上げます……!


いえ、大変申し訳ありません。
床についてから、「勘違いして返信しちゃったな」と気づきました。
先のサンプルのページ分けは、効果はありません。
同じページで続けてイベント処理を書いても変化がないはずです。

メッセージ表示前にセーブ画面を呼び出してプレイヤーにセーブを促すという意味であれば、その部分だけは使えるとは思います。

一応、問題を整理すると

実行の流れ
1.大前提として、プレイヤーがいつでもセーブできる。
2.「文章の表示」「選択肢の表示」を実行して選択肢を表示する。
3.選択肢を表示して、決定する前にセーブをする。

起こる問題
4.3.のセーブデータをロードして、再開する。
5.直前に表示された「文章」が表示されず、「選択肢」だけが表示される。
選択肢の根拠となる「文章」が表示されないので、意味が分からなくなる。

ということですよね?

基本機能での代替案(としては非常にベタな方法)ですが、ピクチャを使うことでしょうか。
直前の文章をピクチャで表示し、選択肢を決定したら、ピクチャを消去する。
であれば、一応は解決できるように思います。

基本機能と言いながら、ピクチャ作成を楽に使うために下記のプラグインを使用しました。

▼動的文字列ピクチャ生成(トリアコンタン様作) - DTextPicture.js
https://plugin-mz.fungamemake.com/archives/346
を使って、試したのが下記のサンプルです。

プラグインコマンドだけだと、通常のウィンドウと幅や色等が合わせられませんでした。
解決するには通常の文章ウィンドウと同じ表示が出来るピクチャを下に表示して、文章だけ座標を合わせて表示するのが現実的じゃないかと予想しています。
※上がピクチャで、下が文章の表示です。
SS01.png


現状、直ぐに手を付けられそうな解決策としては、有効そうな気がしているのですが、どうでしょう?
sample.zip
(12.49 KiB) ダウンロード数: 0 回
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
ルンタッタ・ワクテッカ
記事: 9
登録日時: 2020年9月16日(水) 19:06

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ルンタッタ・ワクテッカ » 2021年4月27日(火) 10:08

ムノクラ さんが書きました:いえ、大変申し訳ありません。
床についてから、「勘違いして返信しちゃったな」と気づきました。
先のサンプルのページ分けは、効果はありません。
同じページで続けてイベント処理を書いても変化がないはずです。

メッセージ表示前にセーブ画面を呼び出してプレイヤーにセーブを促すという意味であれば、その部分だけは使えるとは思います。

一応、問題を整理すると

実行の流れ
1.大前提として、プレイヤーがいつでもセーブできる。
2.「文章の表示」「選択肢の表示」を実行して選択肢を表示する。
3.選択肢を表示して、決定する前にセーブをする。

起こる問題
4.3.のセーブデータをロードして、再開する。
5.直前に表示された「文章」が表示されず、「選択肢」だけが表示される。
選択肢の根拠となる「文章」が表示されないので、意味が分からなくなる。

ということですよね?

基本機能での代替案(としては非常にベタな方法)ですが、ピクチャを使うことでしょうか。
直前の文章をピクチャで表示し、選択肢を決定したら、ピクチャを消去する。
であれば、一応は解決できるように思います。

基本機能と言いながら、ピクチャ作成を楽に使うために下記のプラグインを使用しました。

▼動的文字列ピクチャ生成(トリアコンタン様作) - DTextPicture.js
https://plugin-mz.fungamemake.com/archives/346
を使って、試したのが下記のサンプルです。

プラグインコマンドだけだと、通常のウィンドウと幅や色等が合わせられませんでした。
解決するには通常の文章ウィンドウと同じ表示が出来るピクチャを下に表示して、文章だけ座標を合わせて表示するのが現実的じゃないかと予想しています。
※上がピクチャで、下が文章の表示です。
SS01.png

現状、直ぐに手を付けられそうな解決策としては、有効そうな気がしているのですが、どうでしょう?
sample.zip


ムノクラ様、重ねてのご返信誠にありがとうございます!
そして、私の書き方が分かりにくく誠に申し訳ないです……!

実行の流れ
1.大前提として、プレイヤーがいつでもセーブできる。
2.「文章の表示」「選択肢の表示」を実行して選択肢を表示する。
3.選択肢を表示して、決定する前にセーブをする。


こちらは全く相違ないのですが、
今回解決したい部分は『文章(選択肢の問題文)』が表示されない、というものではなく、
セーブ情報に『選択肢』そのものが含まれない(ロード時に勝手に選択肢を選んだ後の展開になってしまう)
という点になります。

こちら本当にわかりにくくて申し訳ありません……><
具体的には添付画像のような状況になっております。
(選択肢の表示されていた時点にロードされていない)

ただ、こちらは先にも引用させていただきました、

例えば、下記のイベントを自動実行で実行し、セーブ画面で開いた時にセーブをします。
そのデータでコンティニューすると、文章はtest2から表示されます。

コード: 全て選択

◆文章:なし, なし, ウィンドウ, 下
:  :test1
◆セーブ画面を開く
◆文章:なし, なし, ウィンドウ, 下
:  :test2
◆セルフスイッチの操作:A = ON


ムノクラ様のこちらの書き込みの通り、
セーブした瞬間に表示されていた情報(文章や選択肢)はセーブデータに含まれず、
その次の文章(上記における「test2」)しかコンテニューされないという
ツクール仕様通りの挙動かと思われますので、
こちらを何とか回避する方法はないかな……と探している状況になります。

素人考え極まりなく大変お恥ずかしいのですが、
例えばセーブのデータに「(上記における)test1」を一緒に含めてくれるように
コアスクリプトを書き換える……などと妄想してみたりもしたのですが、
今のところ糸口がなく……。

MVでの先行プラグインである蔦森くいな様ご制作の「SaveInEvent.js」
https://plugin.fungamemake.com/archives/13003)ではプラグイン説明に

また、セーブデータをロードした時も、
* セーブした時点で表示されていた文章や選択肢から再開します。
*


と記述があるので、
ツクールの構造上完全に不可能というわけではないのかな?と思っているのですが、
こちらのプラグインはMZでは動作しなかったので、
他に何かいい方法があれば……と思い皆様のお知恵にお縋りした次第です><

毎回長文になってしまう上、説明が分かりにくくムノクラ様に
更なるお手数をおかけしてしまい本当に申し訳ないです……。
もし無事に問題が解決しても選択肢しかセーブされず文章が表示されないという状況になったら
ご提示いただいたアイディア是非参考にさせていただきたいと思います!(他の場面でも応用できそうですね)

引き続きご意見伺えますと大変幸いです。
添付ファイル
スクリーンショット 2021-04-27 09.45.58-1.png
スクリーンショット 2021-04-27 09.46.07.png
スクリーンショット 2021-04-27 09.46.12.png
スクリーンショット 2021-04-27 09.46.20.png
アバター
ムノクラ
記事: 2011
登録日時: 2018年2月23日(金) 11:41
連絡を取る:

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ムノクラ » 2021年4月27日(火) 11:16

ルンタッタ・ワクテッカ さんが書きました:ムノクラ様、重ねてのご返信誠にありがとうございます!
そして、私の書き方が分かりにくく誠に申し訳ないです……!

実行の流れ
1.大前提として、プレイヤーがいつでもセーブできる。
2.「文章の表示」「選択肢の表示」を実行して選択肢を表示する。
3.選択肢を表示して、決定する前にセーブをする。


こちらは全く相違ないのですが、
今回解決したい部分は『文章(選択肢の問題文)』が表示されない、というものではなく、
セーブ情報に『選択肢』そのものが含まれない(ロード時に勝手に選択肢を選んだ後の展開になってしまう)
という点になります。

こちら本当にわかりにくくて申し訳ありません……><
具体的には添付画像のような状況になっております。
(選択肢の表示されていた時点にロードされていない)

ただ、こちらは先にも引用させていただきました、

例えば、下記のイベントを自動実行で実行し、セーブ画面で開いた時にセーブをします。
そのデータでコンティニューすると、文章はtest2から表示されます。

コード: 全て選択

◆文章:なし, なし, ウィンドウ, 下
:  :test1
◆セーブ画面を開く
◆文章:なし, なし, ウィンドウ, 下
:  :test2
◆セルフスイッチの操作:A = ON


ムノクラ様のこちらの書き込みの通り、
セーブした瞬間に表示されていた情報(文章や選択肢)はセーブデータに含まれず、
その次の文章(上記における「test2」)しかコンテニューされないという
ツクール仕様通りの挙動かと思われますので、
こちらを何とか回避する方法はないかな……と探している状況になります。

素人考え極まりなく大変お恥ずかしいのですが、
例えばセーブのデータに「(上記における)test1」を一緒に含めてくれるように
コアスクリプトを書き換える……などと妄想してみたりもしたのですが、
今のところ糸口がなく……。

MVでの先行プラグインである蔦森くいな様ご制作の「SaveInEvent.js」
https://plugin.fungamemake.com/archives/13003)ではプラグイン説明に

また、セーブデータをロードした時も、
* セーブした時点で表示されていた文章や選択肢から再開します。
*


と記述があるので、
ツクールの構造上完全に不可能というわけではないのかな?と思っているのですが、
こちらのプラグインはMZでは動作しなかったので、
他に何かいい方法があれば……と思い皆様のお知恵にお縋りした次第です><

毎回長文になってしまう上、説明が分かりにくくムノクラ様に
更なるお手数をおかけしてしまい本当に申し訳ないです……。
もし無事に問題が解決しても選択肢しかセーブされず文章が表示されないという状況になったら
ご提示いただいたアイディア是非参考にさせていただきたいと思います!(他の場面でも応用できそうですね)

引き続きご意見伺えますと大変幸いです。


度々、説明させてしまって申し訳ありません。
察しが悪くて申し訳ないです…。

いくつかテストしてみたところ、選択肢を表示中(未決定)にセーブすると、選択肢をキャンセルした処理で進んでいるようです。
さっきまでは「禁止」を使用していたので、再現できていませんでした…


さて、シンプルに下記のような処理ではどうでしょうか?
簡単なテストでは問題なさそうでしたが。

コード: 全て選択

◆ラベル:Select1
◆文章:なし, なし, ウィンドウ, 下
:  :私を旅に連れて行ってくれる?
◆選択肢の表示:はい, いいえ (ウィンドウ, 右, #1, -)
:はいのとき
  ◆
:いいえのとき
  ◆
:キャンセルのとき
  ◆ラベルジャンプ:Select1
  ◆
:分岐終了


テストしたサンプルを付けておきます。
sample20210427-2.zip
(12.25 KiB) ダウンロード数: 4 回


キャンセルを禁止にすると、選択肢の表示から再開します。
この場合、直前の文章は見えなくなります。

サンプルでは、キャンセル時を分岐にし、そこでラベルジャンプしています。
ついでに、選択の前フリが長い場合、キャンセルするとラベルのところまで戻るという応用にも使えそうな気がします。
---
JavaScriptの基本を学習せずにツクールのプラグインやスクリプトを使って横着してゲームを作ろうとしている人間です。
そのような者なので、適当な投稿をするかも知れません。
他の方の投稿を信用してください。
ルンタッタ・ワクテッカ
記事: 9
登録日時: 2020年9月16日(水) 19:06

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ルンタッタ・ワクテッカ » 2021年4月27日(火) 22:21

ムノクラ さんが書きました:度々、説明させてしまって申し訳ありません。
察しが悪くて申し訳ないです…。

いくつかテストしてみたところ、選択肢を表示中(未決定)にセーブすると、選択肢をキャンセルした処理で進んでいるようです。
さっきまでは「禁止」を使用していたので、再現できていませんでした…


さて、シンプルに下記のような処理ではどうでしょうか?
簡単なテストでは問題なさそうでしたが。

コード: 全て選択

◆ラベル:Select1
◆文章:なし, なし, ウィンドウ, 下
:  :私を旅に連れて行ってくれる?
◆選択肢の表示:はい, いいえ (ウィンドウ, 右, #1, -)
:はいのとき
  ◆
:いいえのとき
  ◆
:キャンセルのとき
  ◆ラベルジャンプ:Select1
  ◆
:分岐終了


テストしたサンプルを付けておきます。
sample20210427-2.zip

キャンセルを禁止にすると、選択肢の表示から再開します。
この場合、直前の文章は見えなくなります。

サンプルでは、キャンセル時を分岐にし、そこでラベルジャンプしています。
ついでに、選択の前フリが長い場合、キャンセルするとラベルのところまで戻るという応用にも使えそうな気がします。


ムノクラ様、いつも大変お世話になっております!
この度も大変親身なご回答をいただき心より感謝しております……!
(察しが悪いなんて滅相もないです、自分の質問を読み返すと情報の足りなさに冷や汗でした……本当に申し訳ないです)

今回、質問へ対する回答とお礼が遅れてしまいまして誠に申し訳ございません><
ご提示いただきました改善策、
「選択肢にキャンセル時用の分岐を入れてラベルジャンプでロード時強制選択を回避する」というもの、
私もずっとキャンセル禁止を入れていて分岐は試してみたことがなかったので、
なんてシンプルで分かりやすい方法なんだ! と感動し、
早速ご共有いただきましたサンプルを参考に拙作にも反映させていただきました。

すると無事、選択肢表示中にロードで戻ってくることが出来、
大喜び……だったのですが、
こちら何故か回避できる場合とできない場合が分かれてしまい……;;
(下記に画像を添付いたしております)

私の方で、
選択肢分岐内にある選択肢だからダメなのか?
はたまたイベントページ数や位置が問題なのか?
ラベルの貼り方がいけないのか?
などなど、何とか全てのパターンが「回避できた」になるよう、
条件を揃える努力をしてみたのですが、
結局1ケースしか「回避できた」にならず……。

そうなる原因や理屈が分かればその情報を含め、
改善する方法がないかとご相談できたかと思うのですが、
結局何が”できる”になり、何が”できない”になるのか、自分では判別できませんでした。

とても使いやすいアイディアかつ、1ケースは成功しているのに、
解決しました! というご報告ができない結果になってしまい、
ムノクラ様には重ね重ね申し訳ないです……。

こういった結果になっている以上、
私のプロジェクトに何か原因があるのでは? と思うのですが、
今の自分の知識では対処することができないので、
今回の件に関してはしぐれん様がご製作中とのことのプラグインの完成をお待ちしつつ、
ムノクラ様のアイディアを安定して実行する方法を探しつつ、
別の方法も模索しつつ……ということにさせていただこうと思います。

初心者の拙い質問に対しこんなにも親身になってご意見を下さり、
また拙作同様のプラグインまでご用意くださってサンプルをご製作くださった(しかも2回も……;;)
ムノクラ様には感謝の気持ちでいっぱいです。本当にありがとうございました。

ムノクラ様のアイディア、
「選択肢にキャンセル時用の分岐を入れてラベルジャンプでロード時強制選択を回避する」で
同じお悩みを解決できる方も大勢いらっしゃるのでは? と思うのですが、
私のようなケースでも回避できる方法がお伺いできると大変有難いので、
こちらのスレッドは現状、【解決】をタイトルに追加しないまま置かせていただけますと幸いです。

これ以上ご迷惑をお掛けするのが心苦しく、
勝手にまとめの方向へ話を進めてしまいましたが、
もし他にも「選択肢表示中にセーブし、ロードでその場所に戻る方法」に
心当たりがございましたらご教示いただけますととても助かります……!
(また、ムノクラ様のアイディアが上手く作動しない場合の原因に心当たりのある方も……)

何卒、よろしくお願い申し上げます。
添付ファイル
スクリーンショット 2021-04-27 20.48.48.png
スクリーンショット 2021-04-27 20.48.58.png
スクリーンショット 2021-04-27 21.53.24.png
スクリーンショット 2021-04-27 22.11.28.png
ルンタッタ・ワクテッカ
記事: 9
登録日時: 2020年9月16日(水) 19:06

Re: 選択肢表示中にセーブし、ロードでその場所に戻る方法

投稿記事by ルンタッタ・ワクテッカ » 2021年4月27日(火) 22:23

すみません、先ほどの投稿で画像①が添付できておりませんでした……!
念のためにこちらに貼らせていただきます。
(と言ってもただセーブしてるだけの場面で恐縮なのですが……)

お手数をおかけし申し訳ございません。
引き続きよろしくお願い申し上げます。
添付ファイル
スクリーンショット 2021-04-27 20.48.28.png

“MZ:質問” へ戻る