1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

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

くらむぼん2019-05-24に開始した「ツクールMV」の中の討論

  1. くらむぼん

    くらむぼん モデレーター スタッフ モデレーター

    ループタグの件、いろいろ想定を超える数値をぶちこむファイルが多いですね><
    特にloopstartのみの場合に至っては、そもそもループタグを入れた人の意図が不明になってしまうのでどうしよう、という感じもします…
    とはいえ、元の挙動に合わせますが…loopstartのみの場合の元の挙動って、いつもloopLength=曲の終端まで、でしたでしょうか?
    そして確かに、ループ終点が終わりを超えるパターンは想像もしていませんでした!
    デフォルトBGMにその事例があるのはあまりにも、悲しすぎますが…><

    こうして再現条件までご報告いただけたので、すぐ修正に取りかかれそうです!
    ありがとうございます!!
     
    #21
    メルサイアワタベ がいいね!しています
  2. くらむぼん

    くらむぼん モデレーター スタッフ モデレーター

    そしてこちらの報告ですね。
    正直なところ…この2点が一番難易度が高い気がしていて震えています><

    まず1点目ですが、ゲームをアップロードしていただければ調査できるかと思います。
    ただ、同じ条件でプロジェクト新規作成しても再生できるということで、
    本当に本プラグインが問題を引き起こしているかも含め全く予想がつかなくなっており、大変かも!

    そして2点目ですが、こちらは音そのものへの問題ということで直せたか判定しづらいやつですね><
    一応、Coin.oggを聴き比べたら、違う感じがする…?
    と私も思うのですが、言われると思い込みやすいというのもあるので
    他の方にも聞いてもらいつつ調査に入りたいと思います!
     
    #22
    メルサイアワタベ がいいね!しています
  3. メルサイア

    メルサイア ユーザー

    くらむぼんさん
    良かれと思って報告したことで、負荷をかけてしまい、申し訳ありません><。。。
    あまり無理をしないで、まずは心身ともにゆっくり休養してください。
    音声のストリーミング配信なんて、「超!」が付くほど画期的過ぎるサービスなので、不具合が出ることがあるのは皆さん重々に承知しているかと思います。
    こんな素晴らしいプラグインを開発してくれたくらむぼんさんに対する喜びの声の方が大きいと思いますので、
    くらむぼんさんの体調面も考えると、修正に入るのは、いったん2~3日お休みになってから、でいいと思います。

    以下は、報告した不具合の原因を探るための情報です。ゆっくり休養を取ってから、作業を進めていただけるとうれしいです。

    検証環境の一例として、私のゲームプロジェクトのアツマール版アップロードのURLを送ります。
    アツマール版の動作品質は特にこだわっていません(ただでさえ他の原因で挙動が不安定…)ので、AudioStreaming.jsを適応した環境をそのままアップロードしています。
    煮るなり焼くなり、好きにしてください。
    https://game.nicovideo.jp/atsumaru/games/gm10558
    プロジェクトファイルも添付しておきます。こちらが必要であれば、煮るなり焼くなり…以下同文です。
    https://38.gigafile.nu/0627-mf2fa9961d5ee599b245159359965c6e1
    (ギガファイル便で250MBあるので少々時間がかかります。30日限定です。6/27まで)。


    1点目の件、TagScannerで、私のゲームプロジェクト内で、正常にループ再生ができないBattle6.ogg、Wind.oggのタグを調べてみました。
    43acb36a2a89c63893553c81f93142ba.png
    なお、Audacityでサンプル数を調べた所、Wind.oggのサンプル数は120254、Battle6.oogは1391041でした。
    どちらも、明らかにLOOPSTART+LOOPLENGTHはサンプル数を超過しています。
    アストラルさんがおっしゃっているように、正常なループ再生ができない原因は、これが事件の発端になっている気がします。

    なお、正常にループ再生ができる、他BGSの音声ファイルは、ループタグが空白(設定されていない状態、上画面のCoin.oggと同じ)でした。
    ループタグが空白の場合は、AudioStreaming.jsを適応しても、きちんと正常に最初から最後までループ再生できているものと思われます。

    【追記】同じく、v1.6.1の新規プロジェクトのWind.oggもTagScannerで調べてみましたが、
    LOOPSTARTとLOOPLENGTHとサンプル数は同じで、ビットレートが65kbps、ファイルサイズが37KBでした。
    そして、私のゲームプロジェクト内で、Wind.ogg(44kbps、30KB)を新規プロジェクトのものに上書きして置き換えてみると、
    【正常にループ】されました。
    つまり、原因は、プロジェクトファイルのものではなく、oggファイルの中身の違いだったようです。
    この原因として考えられるのは、古いv1.3.3等で公式配布された64bpkのogg変換処理の際に、何かしら情報が欠損した可能性が考えられます。
    v1.6.1の新規プロジェクトで生成されるoggはそれよりもバージョンアップされており、その欠損情報がきちんと保管されている可能性があります。

    ツクールMVデフォルトのoggファイルが正常にループできない方は、新規プロジェクトの同ファイルに置き換えてみるといいかもしれません。

    2点目のCoin.oggなどの音声が薄っぺらく感じる件と、3点目のstbvorbis_stream.jsとstbvorbis_stream_asm.jsのファイル名についてですが、
    これは後回しでいいと思います。
    薄っぺらさもスマホやPCスピーカーなどで聞くにはそこまでわかりませんし、特に音にこだわる人と、UIにこだわる人向けの話です。
    耳のことなので聞き間違えもあるかもしれませんし、こちらも数日程ゆっくり時間を取って確認してみるので、
    しばらくお待ちいただけるとうれしいです。
     

    添付ファイル:

    最後に編集: 2019-06-02
    #23
    くらむぼんワタベ がいいね!しています
  4. アストラル

    アストラル ユーザー

    対応ありがとうございます。
    ストリーミング再生は画期的なのでとてもありがたいです。

    loopstartのみは設定ミスやスペルミスの類で発生すると思います。
    コアスクリプトのloopstartのみの場合は、loopstart = 0 loopLength=曲の終端(totalTime)でした。
    AudioStreaming.jsの場合には、loopstartはタグ上のままで、loopLength=曲の終端(totalTime)となっていたので、実時間を超えてました。
     
    #24
    くらむぼん, メルサイアワタベ がいいね!しています
  5. 火筒さしゃ

    火筒さしゃ ユーザー

    くらむぼん様へ、
    他プラグインとの兼ね合いや影響を考慮せぬまま投稿し
    余計な手間と負担を掛けさせてしまい申し訳有りません。

    前回同様 拙作「金のなる木」の
    AudioStreaming.js導入Verを作成致しました。
    https://game.nicovideo.jp/atsumaru/games/gm11060?key=b14031fd843a
    もしプロジェクト一式が必要であれば別途ご連絡下さい。

    確率で発生する不具合なので手順が確立しておりませんが
    音源再生全般の一定確率で発生するので、
    数分ほど操作するとエラーに遭遇すると思います。

    現在音源再生に影響しそうな心当たりのある他のプラグインは以下の通りです。
    ロード失敗エラーのすり抜けプラグイン(ThroughFailedToLoad.js)
    https://raw.githubusercontent.com/triacontane/RPGMakerMV/master/ThroughFailedToLoad.js
    Android Chromeで音が鳴らない問題を解決するプラグイン(dwango_androidpatch.js)
    https://ch.nicovideo.jp/indies-game/blomaga/ar1156958

    後ほど、これらをOFFにして検証してみようと思います。
    そしてAudioStreaming.jsはプラグイン管理画面にて最下部に配置しておりますが、
    もし適切な配置が御座いましたらご教授をお願いします。

    以上、宜しくお願い致します。
     

    添付ファイル:

    #25
    くらむぼん, メルサイアワタベ がいいね!しています
  6. アストラル

    アストラル ユーザー

    >NotSupportedError: Operation is not supported
    こちら検証してみましたが、
    result.data[0].lengthが0になる場合があって、
    createBuffer(1, 0, 44100)
    となり発生していました。
    なんでこうなるのかはまではわかりませんが。
     
    #26
    くらむぼん, メルサイアワタベ がいいね!しています
  7. 火筒さしゃ

    火筒さしゃ ユーザー

    エラー発生箇所直前にconsole.log(result)を仕込んで何が入っているかを調べました。
    アストラル様の仰る通り、result.data[0]に何も入っていない場合があるようです。
     

    添付ファイル:

    #27
    くらむぼん, メルサイアワタベ がいいね!しています
  8. 火筒さしゃ

    火筒さしゃ ユーザー

    という訳で、根本的な原因は不明ですが
    この場合だけ回避すれば進行不能は防げるようでした。
     

    添付ファイル:

    #28
    くらむぼん, メルサイアワタベ がいいね!しています
  9. くらむぼん

    くらむぼん モデレーター スタッフ モデレーター


    メルサイアさん、アストラルさん、火筒さしゃさん、ご報告ありがとうございます!
    特にいずれのご報告も調査検証をして頂いて原因究明まで手伝ってくださり、本当に助かります!

    >ループタグが終点を超えている場合
    >コアスクリプトのloopstartのみの場合

    こちら、修正いたしました!
    記事トップよりAudioStreaming.jsプラグインの再入手をよろしくお願いします~。

    >Wind.oggの件

    これは調査していただいたとおりで、ツクールMVの古いバージョンではbgsへのループタグ付を失敗しているようです。
    (ツクールMVのSteam版更新履歴に記載されていました)
    そのため上の「ループタグが終点を超えている場合」の条件を満たしてしまったようです…!
    この件については正しい方のbgsを使うか、
    または終点を超えているバグが直った最新版プラグインを使っていただけば直りそうですね~

    >音質

    こちら、調査続行中です。

    >ファイル名

    すみません、これについては人による好みが表れそうですので気になる場合ご自身で直してもらえるとありがたいです…!

    >NotSupportedError: Operation is not supported

    こちら、解決策をご提示いただきありがとうございます!
    ただ提示いただいたreturn文さえあればエラーは回避できますが、
    もしこの際に必要な分の音声データが失われているのだとしたらちょっと困りますので、
    できれば原因の根本究明と解決までいきたいところです。

    限定公開のゲームでは、数分遊べば現れるということでしたが
    私はWindowsのPCからChromeで数分遊んでも(木に突撃しては全滅しているだけです)同じ現象になりませんでした…
    特定の楽曲でいつもなるというわけではないんですよね?どういうことなんだろう…

    さらに協力を求めることになってしまいますので、良かったらで構わないのですが、
    もし再現手順などのパターンがございましたら教えてもらえると大変ありがたいです…><
    どうぞよろしくお願いします。
     
    #29
    メルサイア, くろうど, とんび@鳶嶋工房他1人 がいいね!しています
  10. くらむぼん

    くらむぼん モデレーター スタッフ モデレーター

    >NotSupportedError: Operation is not supported

    すみません、この件やっぱりreturn文を書くのが正しいとの確認が取れましたので
    調査を打ち切り、修正しました。
    ご協力、ありがとうございました!
     
    #30
    メルサイア, くろうど, とんび@鳶嶋工房他1人 がいいね!しています
  11. くらむぼん

    くらむぼん モデレーター スタッフ モデレーター

    >音質

    こちらの件、もう一度Coin.oggを中心に聞き直してみたのですが
    私も最初は音が違うように感じていたのですが「違いがわかりません」という方もおり、
    またそれとは別に「心なしか音質がよくなった気がする」と指摘する方もいらっしゃいました。
    それらの意見を目にしながら聴き比べていると今度は私も音の違いがわからなくなってしまい…><

    思うに音声の問題は評価しづらく、気分などによって聞こえ方がやや左右されがちなのかもしれません。
    一応音質の件については、普通のスピーカーの範囲では違いを感じられないことと、
    明らかにこちらのプラグインの音質のほうが悪いという見解が複数出ていないことから、
    新たなご意見があるまでしばらく様子見させていただきたいと思います。
    ご期待に添えずすみませんが、どうぞよろしくお願いします><

    だいぶ過去の話になりますが、ひょっとしてここまでの不具合修正の結果、
    こちらの問題も解決していたりしませんか?
    もしよければ、試していただければ幸いです。
    (一応これが本スレ不具合報告で最後に残ったやつのはずなので)

    ・追記
    ツイッターにて、上記の件不具合が直った報告いただきました!
    これで不具合報告に対する対応がすべて済んだと思います~。
     
    最後に編集: 2019-06-04
    #31
    メルサイアワタベ がいいね!しています
  12. メルサイア

    メルサイア ユーザー

    >くらむぼんさん
    お疲れ様です。

    原因が難しいものが多い中、丁寧に究明くださり、ありがとうございます。
    これだけの難解なものをたった数日で解決してしまうなんて、本当にすごいと思います。

    ファイル名の件と、音質の件、了解しました。
    どちらも好みの問題ですので、様子見でOKです。
     
    最後に編集: 2019-06-02
    #32
    とんび@鳶嶋工房, くらむぼんワタベ がいいね!しています
  13. 火筒さしゃ

    火筒さしゃ ユーザー

    くらむぼん様へ、対応誠にありがとうございます。
    先日のAudioStreaming.js検証環境を最新jsに更新し、ざっくり動作確認致しました。
    https://game.nicovideo.jp/atsumaru/games/gm11060?key=b14031fd843a

    ループで無音になる件、謎の進行不能エラーが無事解消され
    特に問題点は見当たらなかった為、
    次回アップデートにて本番環境へ導入したいと思います。

    本件に尽力頂き、心の底から感謝しております。
     
    #33
    とんび@鳶嶋工房, くらむぼん, ワタベ他1人 がいいね!しています
  14. くらむぼん様へ

     本日,くらむぼん様の「音声を高速に読み込むプラグイン」を実装した新作ゲーム

     【ぱんつが見えちゃう】あかりの不思議な冒険

    を公開しました

     素晴らしいプラグインをありがとうございました

    https://game.nicovideo.jp/atsumaru/games/gm10405?link_in=index_new
     
    #34
    とんび@鳶嶋工房 がいいね!しました
  15. kuro

    kuro フォーラムスタッフ

    以前投稿した件ですが、2019/6/4時点の最新版で再生できることを確認しました。
    共有まで。

    >こちら評価情報です。
    >
    >・宅内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) で検証された方がいらっしゃればお寄せ頂けると幸いです。
    >(端末の問題なのか、それ以外なのかが分かりそう)。
     
    #35
    くらむぼん がいいね!しました
  16. RyanBram

    RyanBram ユーザー

    こんにちは "くらむぼん"。
    この便利なプラグインを作成していただきありがとうございます。

    グーグル翻訳の助けを借りて話しているので、私が日本語で正しく話していないのは本当に残念です。

    私はあなたがEMSCRIPTENを使ってOGGをサポートしていないプラットフォームをサポートしているのを見ました。 今、私は「RPGツール」で同様のテクニックがMIDIサポートの機会を開くことができるかどうか本当に興味があります。 私はMIDIとサウンドフォントを再生できるJAVASCRIPTライブラリを見つけました。 あなたはここでそれをチェックすることができますhttps://schellingb.github.io/TinySoundFont/CustomSoundFont.html。ソースコードはhttps://github.com/schellingb/TinySoundFont/archive/gh-pages.zip からダウンロードできます。 そしてこれがメインのリポジトリhttps://github.com/schellingb/TinySoundFont/tree/masterです。

    ご清聴ありがとうございました。
     
    最後に編集: 2019-06-15
    #36
    とんび@鳶嶋工房 がいいね!しました
  17. くらむぼん

    くらむぼん モデレーター スタッフ モデレーター

    こんにちは、RyanBramさん。
    お褒めいただきありがとうございます。
    海外でもこのプラグインがたくさん利用されるとうれしいので、ご面倒でなければ他人にもプラグインを勧めてください ;->

    EmscriptenとTinySoundFontを併用して、ブラウザ上でMIDIを演奏できるのは非常に興味深いです。
    ただ私が試したところ、それはMicrosoft Edgeブラウザでは正常に動作しませんでした。
    より多くのブラウザ上で安定的に動作するようになれば、より注目されるようになると思います。

    あなたの研究は素晴らしいと思います。
    幸運を祈っています!
     
    #37
    RyanBramワタベ がいいね!しています
  18. Awaya_Matana

    Awaya_Matana ユーザー

    暗号化した際、うまく音声が再生されないのは仕様ですか?
     
    #38
    ワタベ がいいね!しました
  19. くらむぼん

    くらむぼん モデレーター スタッフ モデレーター

    おや、特にそんな仕様にはしてないですが…と思って実際に動作させてみたら、確かに動きませんでした><
    暗号化でも再生されるように修正しました!最上部のリンクからAudioStreaming.jsを再入手してください~
     
    #39
    Awaya_Matana, ワタベ, RyanBram他2人がいいね!しています
  20. RyanBram

    RyanBram ユーザー

    こんにちは、くらむぼん。

    TinySoundfotがMicrosoft Edgeでうまく機能しないかどうかはわかりません。 私はTinySoundfontの作者がMicrosoft Edgeの問題を解決するためにソフトウェアをアップデートして、MIDIをできるだけ多くのブラウザでサポートできるようにしたいと思います。

    WebAssemblyをサポートするように素材を更新して、パフォーマンスがさらに向上する可能性はありますか

    ソフトウェアを共有する許可をいただきありがとうございます。 私はこの素晴らしいニュースをできるだけ多くの人々に伝えたいと思います。

    宜しくお願いします
     
    最後に編集: 2019-06-17
    #40
    くらむぼん がいいね!しました

このページを共有