HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0609
まっきーMCIでループをさせると繰り返しでラグが出る6未解決


まっきー

リンク

2019/6/9(Sun) 22:15:19|NO.87579

現在、ゲームのBGMとして以下のような構文を組んでいるのですが、
繰り返しの部分でどうしてもラグが発生してしまいます。
これは仕方のないことなのでしょうか?
解決方法をご存知の方、ご教授願います。

oncmd gosub *msrepeat,0x03B9 goto *normal *msrepeat if wParam = 1{ mci "play bgm from 2000 notify" } return *normal mci "open \"" + dir_cur + "\\bgm.mp3\" alias bgm" mci "play bgm from 0 notify" stop



この記事に返信する


GrapeColor

リンク

2019/6/10(Mon) 11:00:35|NO.87584

MCIはかなりレガシーなインターフェイスで、処理の遅さは仕方ない部分があります。
純粋なリピート再生方法も、もしかしたらあるのかもしれませんが、私は知らないのでとりあえず。

MCIを使用しない方法としては、MIA氏の「HSP DirectSound Extension」というプラグイン内のループ再生命令を使用すると、純粋に切れ目のないループ再生が実現できます。
しかし、このプラグインでは基本的にWAVE形式と一部のMP3形式しか扱えないので、あまり現実的では無いかもしれません。

そこで、inovia氏の「HSPDSP.dll」などはいかかでしょうか。
こちらのプラグインは動画再生を主体としたプラグインですが、音声ファイルをロードして再生することも可能です。
先ほどのプラグインのように純粋なループ再生用の命令は用意されていないため、自前でループ再生の処理を行う必要がありますが、それでもMCIよりはラグを少なくできます。
是非お試しください。

HSPDSP.dll / https://hsp.moe/#hspdsp



まっきー

リンク

2019/6/12(Wed) 23:01:59|NO.87591

ありがとうございます!
ゲームのBGMとしてループさせたいのですが
効果音をユーザーの操作に合わせて鳴らしたいと思ってます。
複数の音を同時にならすことはできるのでしょうか?



GrapeColor

リンク

2019/6/12(Wed) 23:24:25|NO.87592

HSPDSP.dllの場合ですが、dsp_SetActiveSel命令で操作IDを変更することで複数の音声を制御することができます。
操作対象が変わるたびにこの命令を実行する必要があるため、若干不便ではありますが。
詳しくはプラグインのドキュメントを読んでみてください!



リンク

2019/6/14(Fri) 10:46:21|NO.87595

昔はovplay.dllという超優秀なライブラリがあったのですが、ジオシティーズ閉鎖に伴い消えてしまいました。再配布していいんでしょうかね…。



X

リンク

2019/6/14(Fri) 11:30:02|NO.87596

VectorでvAudioと検索すれば音声ファイル用のHSPプラグインが出てきます。
そこそこ高機能なので勧めです。



GrapeColor

リンク

2019/6/14(Fri) 14:58:28|NO.87598

>>猫さん
WEBアーカイブ経由なら、まだダウンロードできますね
https://web.archive.org/web/20181105130509/http://www.geocities.jp/anachronism128/plugin.html

>>Xさん
こんないいプラグインがあったなんて…
質問者じゃないですけど、有難く使わせて頂きます…



ONION software Copyright 1997-2023(c) All rights reserved.