こんにちは。
お世話になっております。
ただいまHimeWorks様の『HIME_PreTitleEvents.js』によって公式タイトル表示前にイベントを用いてオリジナルのタイトル画面を作成しております。
セーブデータを【セーブデータ画面(SceneManager.push(Scene_Load);)】ではなく
スクリプトコマンド:DataManager.loadGame(1)
SceneManager.goto(Scene_Map);
上記のスクリプトを実行し直接セーブデータファイル1をロードすることが出来ましたが、BGMが再現されません。
正確にはオリジナルタイトル画面で自動実行しているイベントの中でBGMを鳴らしているのですが
そのBGMがロードされたマップでも継続して流れている状態です。
そのマップには『BGM自動演奏』として別のBGMを設定してあるのですがそれが流れません。
そこで2つ質問なのですが
まず1つ目は
上記の方法でセーブデータをロードしたときに
セーブしたマップで流れていたBGMを流すにはどうしたらいいのでしょうか?
作成しているゲームの特質上、いろんなシチュエーションでのセーブポイントの作成を想定しているため、
そのセーブをした場所で流れているBGMを流したいのです。
ちなみにセーブは
スクリプトコマンド:DataManager.saveGame(1)
でセーブの処理を行いました。
このような処理はツクマテのviewtopic.php?t=12974こちらのトピックを参考にさせていただきました。
トピック主様と私とで違う点は私はトリアコンタン様の【ピクチャのボタン化プラグイン】を利用していない点と私の場合はMZであるという点です。
そちらのトピックに返信して教えて頂こうとも考えましたが2年以上経過している為
こちらで新しくトピックを投稿しようと思いました。
スクリプトやプラグインの知識がないため、教えていただけますでしょうか。
そして2つ目は
上記のようなスクリプトコマンドでセーブ・ロードをすることで
「そのやり方だと後々こういったトラブルが起こるよ」とか
「それだけの処理じゃ、~と~が取得できてないよ」等、注意することはありますでしょうか?
よろしくお願い致します。
HimeWorks様:『HIME_PreTitleEvents.js』https://plugin.fungamemake.com/archives/26756
MV用とありますがMZでも作動しました。
【解決済】オリジナルセーブデータロードからのBGMについて
【解決済】オリジナルセーブデータロードからのBGMについて
最後に編集したユーザー ちゃみ [ 2025年3月17日(月) 13:47 ], 累計 1 回
Re: オリジナルセーブデータロードからのBGMについて
SceneManager.goto(Scene_Map);ちゃみ さんが書きました: 上記の方法でセーブデータをロードしたときに
セーブしたマップで流れていたBGMを流すにはどうしたらいいのでしょうか?
作成しているゲームの特質上、いろんなシチュエーションでのセーブポイントの作成を想定しているため、
そのセーブをした場所で流れているBGMを流したいのです。
の直前に
コード: 全て選択
$gameSystem.onAfterLoad()
但しこれが動くためには
DataManager.saveGame(1)
の直前に
コード: 全て選択
$gameSystem.onBeforeSave();
そもそもこの手段はセーブ周りの処理をかなり簡略化しており、色々カットしております。ちゃみ さんが書きました: そして2つ目は
上記のようなスクリプトコマンドでセーブ・ロードをすることで
「そのやり方だと後々こういったトラブルが起こるよ」とか
「それだけの処理じゃ、~と~が取得できてないよ」等、注意することはありますでしょうか?
なので、セーブ周りに手を加えたりするプラグインとは相性悪いです。
そう言ったプラグインを入れないのであれば恐らく問題ないと思いますが…
問題が出た際には順次対処する前提での方法です。
それがダメだというのであれば、使わない方が良いのかなと。
まともにしっかりやるならシーンの構築を考えて、大体20行くらいのプラグインを時間を掛けて書く必要があります。
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
Re: オリジナルセーブデータロードからのBGMについて
剣崎 宗二様
返信ありがとうございます。
教えて頂いた通りに設定しテストプレイをしたところ
エラーが発生してしまいました。
こちらがスタックトレースです。
TypeError: Cannot read property 'name' of null
at Function.AudioManager.playBgm (rmmz_managers.js:1169)
at Game_System.onAfterLoad (rmmz_objects.js:361)
at Game_System.onAfterLoad (PluginCommonBase.js:450)
at Game_System.onAfterLoad (DeadMemberToCoffin.js:554)
at Game_System.onAfterLoad (KMS_DebugUtil.js:1095)
at eval (eval at Game_Interpreter.command355 (rmmz_objects.js:11304), <anonymous>:2:13)
at Game_Interpreter.command355 (rmmz_objects.js:11304)
at Game_Interpreter.executeCommand (rmmz_objects.js:9666)
at Game_Interpreter.update (rmmz_objects.js:9571)
at Game_Map.updateInterpreter (rmmz_objects.js:6801)
私にはこのエラーの対処をするのが難しいので
おとなしく用意されているセーブ・ロードを使おうと思います。
また、実現できそうなプラグインを見つけたら挑戦してみようと思います。
剣崎 宗二様
ご親切に教えてくださりましてありがとうございます。
返信ありがとうございます。
教えて頂いた通りに設定しテストプレイをしたところ
エラーが発生してしまいました。
こちらがスタックトレースです。
TypeError: Cannot read property 'name' of null
at Function.AudioManager.playBgm (rmmz_managers.js:1169)
at Game_System.onAfterLoad (rmmz_objects.js:361)
at Game_System.onAfterLoad (PluginCommonBase.js:450)
at Game_System.onAfterLoad (DeadMemberToCoffin.js:554)
at Game_System.onAfterLoad (KMS_DebugUtil.js:1095)
at eval (eval at Game_Interpreter.command355 (rmmz_objects.js:11304), <anonymous>:2:13)
at Game_Interpreter.command355 (rmmz_objects.js:11304)
at Game_Interpreter.executeCommand (rmmz_objects.js:9666)
at Game_Interpreter.update (rmmz_objects.js:9571)
at Game_Map.updateInterpreter (rmmz_objects.js:6801)
私にはこのエラーの対処をするのが難しいので
おとなしく用意されているセーブ・ロードを使おうと思います。
また、実現できそうなプラグインを見つけたら挑戦してみようと思います。
剣崎 宗二様
ご親切に教えてくださりましてありがとうございます。
Re: オリジナルセーブデータロードからのBGMについて
そう言えばロード、非同期でしたね…
onAfterLoadとloadGameの順番を確保する為
とする事になるかと思います。
ただ、これだとシーン切り替えの際に別問題が発生する可能性があるので、プラグインを書くしかないかと。
(Scene切り替えとonAfterloadをひとまとめにして、thenの部分で呼び出す)
onAfterLoadとloadGameの順番を確保する為
コード: 全て選択
DataManager.loadGame(savefileId)
.then(() => $gameSystem.onAfterLoad())
ただ、これだとシーン切り替えの際に別問題が発生する可能性があるので、プラグインを書くしかないかと。
(Scene切り替えとonAfterloadをひとまとめにして、thenの部分で呼び出す)
----
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
-出先に居る場合回答が未テスト状態である事が多い為、テストは重々にお願いいたします。
-基本自分や友人の問題解決は自分で1からプラグインを書いているので、「こういうプラグインはありますか」に対しては助けになれません。ご了承ください。
Re: オリジナルセーブデータロードからのBGMについて
剣崎 宗二様
返信が遅くなり申し訳ありません。
補足ありがとうございます。
やはり色々と複雑なのですね。
オリジナルセーブ・ロードに関しては
今のところ用意されているものを使おうと思います。
今回の件は
プラグインなしでは複雑な処理をしなくてはならないとわかり
踏ん切りをつけることが出来ました。
助言頂き感謝しております。
ありがとうございました。
返信が遅くなり申し訳ありません。
補足ありがとうございます。
やはり色々と複雑なのですね。
オリジナルセーブ・ロードに関しては
今のところ用意されているものを使おうと思います。
今回の件は
プラグインなしでは複雑な処理をしなくてはならないとわかり
踏ん切りをつけることが出来ました。
助言頂き感謝しております。
ありがとうございました。