音声を高速に読み込むプラグイン

くらむぼん

モデレーター
スタッフ
モデレーター
RPGツクールMVで音声、特にBGMが始まるまで時間がかかるなーと思っている皆さん、朗報です!
この度、音声を高速に読み込むプラグインを作りました!!
このプラグインを使えば、すばやく音声を再生開始することができます。
※PC版(ダウンロード版)の場合でも、ブラウザ版(スマホ含む)の場合でも効果があります。

なお、技術的な都合によりどうしてもoggファイルだけで音声を再生するプラグインと別々にすることができませんでしたので、
本プラグインには「oggファイルだけで音声を再生する機能」が同梱されております。
つまり、m4aファイルを用意しなくても音声を再生することができます。

動作環境
本プラグインの動作環境はiOS10以上となります。
iOS8や9で利用できないことが気になるかもしれませんが、これらの古いiOSのシェアは国内では1%を下回っているようです。


プラグイン
https://raw.githubusercontent.com/krmbn0576/rpgmakermv/master/js/plugins/AudioStreaming.js
https://raw.githubusercontent.com/krmbn0576/rpgmakermv/master/js/plugins/stbvorbis_stream.js
https://raw.githubusercontent.com/krmbn0576/rpgmakermv/master/js/plugins/stbvorbis_stream_asm.js
(上の3つのアドレスをそれぞれ右クリックして「保存」してください)

使い方
pluginsフォルダにAudioStreaming.jsとstbvorbis_stream.jsとstbvorbis_stream_asm.jsを3つとも配置してください。
ただし、プラグイン管理で「ON」にするのはAudioStreaming.jsだけにしてください。
他の2つは「OFF」でも構いませんし、プラグイン管理に登録しなくても構いません。


おまけ
プラグインパラメータで「m4aファイルを消去」をONにすると、
次のテストプレイ開始時にそのゲームのすべてのm4aファイルを削除することができます。
念のためバックアップを取ってから使ってください。

  • 製作者: くらむぼん
  • 非商用利用: 自由
  • 商用利用: 自由
  • 再配布: OK
  • 加工: OK
  • 加工後の再配布: OK
  • シリーズ: ツクールMV
 
最後に編集:
僕は割と「ゲームに音楽とかボイスとかいらないんじゃないの」みたいなこと言ってる方なんですが、その理由の大きなものとして、「再生するのに使う時間的コストに見合わない」というのがあります。
つまり、このプラグインは最高です。

 と言いつつ、自作では効果音とかジングルぐらいしか音は出さないと思いますが、それでも「こうかはばつぐんだ!」と思います。
 ありがとう、そしてありがとう!
 

シロガネ

ユーザー
失礼いたします。
こちらのプラグイン早速使わせていただいております。

プロジェクトに最初から含まれている「Cursor1.ogg」が再生できなかったのですが、
何が原因か分かりますでしょうか?
 

kuro

フォーラムスタッフ
Cursor1.oggが再生されない問題について、コメントさせて頂きます。
他の方でも再現確認がとれたそうです。(Twitterで2名観測)
音源Cursor1に着目したのですが

・音源の長さが極端に短い(0.028s)
・比較対象のCursor2は空白入れて2s

Cursor1に空白を入れて長さ調整したら上手くいくのかもしれませんね。
Cursor1に限らず、曲の長さが短いSE音源は確認した方がよさそうです。
 

Attachments

kuro

フォーラムスタッフ
こちら評価情報です。

・宅内wifi
・VSCode + Live Server
・iPhone XR (iOS12.2)
・Safari

AudioStreaming.jsを検証したのですが音源(Cursor1.ogg,Cursor2.ogg,Battle1.ogg)が再生されず。
前作のogg.only+stbvorbis.js+stbvorbis_asm.jsでは再生可能でした。

ほかにiPhone XR (iOS12.2) で検証された方がいらっしゃればお寄せ頂けると幸いです。
(端末の問題なのか、それ以外なのかが分かりそう)。
 

kuro

フォーラムスタッフ
テスト環境を用意しました。

oggonly_test(oggだけの再生環境)
https://game.nicovideo.jp/atsumaru/games/gm11033

AudioStreaming_test(ogg+ストリーミングの再生環境)
https://game.nicovideo.jp/atsumaru/games/gm11032

■機能
・BGMの演奏(Battle1,Field1)
・BGSの演奏(City)
・MEの演奏(Inn)
・SEの演奏(Cursor1,Cursor2)
・BGM/BGS/MEのフェードアウト、SEの停止
・BGMの保存
・BGMの再開
・場所移動後はField1が再生(シーン遷移のチェック用)

■その他
・V1.6.2で作成
・BGMはBaseResource_Compressed版を利用
 
このプラグインをお待ちしておりました

RPGツクールMVで文章に音声(SE)を埋め込むのを多用していますが,特にスマートフォンでプレイすると,文章の表示と音声(SE)の再生にタイムラグが生じていると感じていました

現在,制作中のゲームに,さっそく,このプラグインを使わせていただきます

ありがとうございました
 

くらむぼん

モデレーター
スタッフ
モデレーター
みなさん、好評いただきありがとうございます!

失礼いたします。
こちらのプラグイン早速使わせていただいております。

プロジェクトに最初から含まれている「Cursor1.ogg」が再生できなかったのですが、
何が原因か分かりますでしょうか?
Cursor1.oggが再生されない問題について、コメントさせて頂きます。
他の方でも再現確認がとれたそうです。(Twitterで2名観測)
音源Cursor1に着目したのですが

・音源の長さが極端に短い(0.028s)
・比較対象のCursor2は空白入れて2s

Cursor1に空白を入れて長さ調整したら上手くいくのかもしれませんね。
Cursor1に限らず、曲の長さが短いSE音源は確認した方がよさそうです。
こちら、やはり短い音声ファイルを再生できないバグでした!
すべての環境で発生しますが、修正完了いたしました。

※すでに本プラグインを入手されたみなさんは、このバグを修正するために
記事最上部のリンクからstbvorbis_stream.jsとstbvorbis_stream_asm.jsの再入手をよろしくお願いします!
 
くらむぼん様の今回のプラグインが原因かどうかはわからないのですが,くらむぼん様のプラグインをON状態で

TDDP PreloadManager をON にしてニューゲームを開始すると,エラーが表示されます

TDDP PreloadManager をOFF にすると,エラーになることなく,ゲームが開始します

申し訳ありません。念のための情報提供です
 
くらむぼんさん

非常に革新的かつ意欲的なプラグインで、頭が下がります。
ありがとうございます。
早速使用しています。

2点、このプラグインを適応した際、下記の症状に出くわしたので、報告しておきます。
今後の参考になれば幸いです。

1点目は、
・マップに指定したBGSが、正常にループされない(例えばBGS「Wind.ogg」が1回の再生で止まってしまう)
です。

なお、この症状は、自分のプロジェクト(ver1.6.1)でのみ確認し、新規プロジェクト(ver1.6.1)では起こりませんでした。
OggOnly.js適応時では発生しません。AudioStreaming.jsを適応した際に発生します。
また、自分のプロジェクトで、これ以外のプラグインを全てOFFにしてみましたが、症状は治りませんでした。
コアスクリプトversionは同じなので、原因に確証が持てませんが、プラグインの競合以外の、何か別の原因が考えられます。


もう1点は、
・短いSEの音が薄っぺらく聞こえる(低周波数フィルターがかかったような音になる)
です。

この症状は、自分のプロジェクトと、新規プロジェクトの両方で確認しました。
OggOnly.js適応時では発生しません。AudioStreaming.jsを適応した際に発生します。
スマホなどで聞いていればわからないレベルですが、ヘッドフォンなどで聞いてみると、音にこだわるくらむぼんさんなら明らかにわかる違いだと思います。
聞き分けるサンプルは、「Coin.ogg」などがわかりやすかったです。
「Coin.ogg」を決定音に設定した状態で、AudioStreaming.jsをOFF時、ON時で、聞き比べてみてください。
原因は見当が付きません……1回目の再生なら読み込み途中かもしれないですが、2回目以降の再生でも薄っぺらくなるので……すみません。。。

あとこれは、プラグインの機能と関係がありませんが、プラグインの管理しやすさを考えると、
このプラグインと一緒に必要はファイル名の
stbvorbis_stream.jsとstbvorbis_stream_asm.js
の名前は、プラグイン選択リストの下に2つ並ぶように、
AudioStream_stbvorbis.jsやAudioStream_stbvorbis_asm.js
などとしたほうが、管理しやすいかもしれない、と思いました。(あくまで一例なので、ご参考まででお願いします)

このプラグインが将来のツクールMVのデフォルトになり、コアスクリプトに使われるほど安定して、
より多くの人に使ってもらえることを、切に祈ります。
 
最後に編集:
くらむぼん様のプラグインを現在制作中のゲームに導入してプレイ(ゲームバランスの調整)をしています。スマートフォンでは,体感できる速さで文章の再生が可能となりました(パソコンではもともと処理速度が速いので比較はできていませんが...)。TDDP PreloadManagerは,OFFにしていても,私が制作中のゲームでは,スマートフォンでも,それほどストレスはありません。それ以上に,音声の再生速度が向上したのは,ゲーム制作者として,嬉しい限りです。ありがとうございました。
 

火筒さしゃ

ユーザー
くらむぼん様へ、平素より大変お世話になっております。
こちらのプラグインを導入した所、
目に見えて読込みが高速になりました。感謝で頭が上がりません。

ただ1点、私の環境でもツクールMVデフォルトBGMのいくつかが
BGMのループ1回で無音になる現象を確認しました。

一例としてデフォルトBGM「Battle6」を挙げますが
こちらは63.085msの曲に対し、ループ開始が5.486ms、
ループ終点が63.086msとなっております。

これをループ終点63.085msに修正した所、
正常にループされるようになりました。
 

火筒さしゃ

ユーザー
くらむぼん様へ、平素より大変お世話になっております。
こちらのプラグインを導入し、RPGアツマール本番環境にUPした所、
未キャッシュのBGM、SE再生のタイミングで
以下のエラーにて進行不能になるケースが多発しました。

NotSupportedError: Operation is not supported rpg_managers.js:1919:5
https://html5.nicogame.jp/games/gm4666/118/js/plugins/AudioStreaming.js 343

お手数ですがご確認の程、宜しくお願い致します。
 

J.S

ユーザー
くらむぼん様、kuro様、
こんばんは、J.Sという者です。

この度、くらむぼん様のお作りいただいたプラグインでの
kuro様がご用意いただいたテスト環境(A
udioStreaming_test)の
自分の環境での動作報告をさせていただきます。

OS:LIFEBOOK・Windows8.1up(Google Chrome74.0.3729.169・Firefox67.0)  
   Xperia・Android5.1.1(Google Chrome74.0.3729.157) 


上記環境でゲーム内に置かれた音声は全て再生に成功しました。
ただ、カーソルの決定音(メニューを開く際を含む)と場所移動の効果音のみ
再生できませんでした。
(無い設定であったらすみません)


ご参考になるか分かりませんが
お役に立てれば幸いです。

既出・投稿の不備等ありましたら申し訳ありません。
 

kuro

フォーラムスタッフ
J.S様

>カーソルの決定音(メニューを開く際を含む)と場所移動の効果音のみ再生できませんでした。

こちら未設定です。
貴重なご情報、ありがとうございました。
 
  • Like
Reactions: J.S

くらむぼん

モデレーター
スタッフ
モデレーター
うおーっす!
みなさん、予想を超える勢いでのご利用とご報告ありがとうございます!!

頂いた不具合報告については、調査と不具合解消の作業を継続しています。
ただ、その高負荷により只今くらむぼんは一時的に応答を返せない状態となっております。
いわば、私のサーバーダウンですが…;;

ただ、高負荷状態に陥ったサーバーでも
「アクセスしても反応はないけど、実は内部でちょこっとずつ処理は進んでいる」
ということはよくあります。
それと同じように、私もきっと応答は返しますので、どうぞ引き続きお待ち下さい。
よろしくお願いします~!

(もし新報告などあれば、それも気兼ねなく書いといてください。いつかは全部対処できるでしょうから…><)
 

J.S

ユーザー
こんばんは、J.Sです。

kuro様へ
>カーソルの決定音(メニューを開く際を含む)と場所移動の効果音のみ再生できませんでした。
>こちら未設定です。

そうでしたか!早とちりしてしまい大変失礼しました。
教えて頂きありがとうございました。

くらむぼん様へ
お疲れ様です。
これだけ画期的なプラグインですので
皆様からの期待も非常に大きい分
くらむぼん様も大変かと思いますが
無理はなさらず
よろしくお願いします。

ありがとうございました。
 

くらむぼん

モデレーター
スタッフ
モデレーター
くらむぼん様のプラグインを現在制作中のゲームに導入してプレイ(ゲームバランスの調整)をしています。スマートフォンでは,体感できる速さで文章の再生が可能となりました(パソコンではもともと処理速度が速いので比較はできていませんが...)。TDDP PreloadManagerは,OFFにしていても,私が制作中のゲームでは,スマートフォンでも,それほどストレスはありません。それ以上に,音声の再生速度が向上したのは,ゲーム制作者として,嬉しい限りです。ありがとうございました。


一般に「同じ目的を持つ」プラグイン同士は競合しやすいということがあります。
PreloadManagerということはリソースを先読みしてすばやく再生しようということだと思うので、
それでちょっとうまくいかなかったのかもしれません。

ただ結果としてはAudioStreaming.jsのみでストレスがないということで、
解決したようで何よりです~。

くらむぼん様へ、平素より大変お世話になっております。
こちらのプラグインを導入し、RPGアツマール本番環境にUPした所、
未キャッシュのBGM、SE再生のタイミングで
以下のエラーにて進行不能になるケースが多発しました。

NotSupportedError: Operation is not supported rpg_managers.js:1919:5
https://html5.nicogame.jp/games/gm4666/118/js/plugins/AudioStreaming.js 343

お手数ですがご確認の程、宜しくお願い致します。


こちらについてはすみません、現状は不具合の手がかりを推察できないので、
前回同様にエラーが出る方のものを限定公開していただけると大変助かります。
 
トップ