HSPでのOGG再生について【hspogg.dll】
ぐっもーにん☆
たぶん、今までにないぐらい役に立つのでは!
要するに、hspogg.dllなるものがhspに付属しているよって話です。
それの使い方を大雑把にチェックしていきます。
(2015/10/10追記分)
使用ライブラリ表記とサンプルの話はこっち(かなり重要)
→http://ch.nicovideo.jp/milky_way/blomaga/ar889365
追記ここまで
上級者の方はもう戻ってもいいんじゃないですかね。
でもんすとれーしょんにあったのである
今は昔、こんなゲームを私は作りました。
(マーケティングはしっかりしてゆく)
で、このときoggファイルの再生に苦労していたわけです。
ogg再生できるdllファイルとか探したりしてやっと見つけたものが
メモリ食いまくって続編も作れなくなったやつですね。
飽きたのもあるけど。
そして今もとあるゲームの体験版をリリースするために
asファイルとdllファイルを漁っていたのですが、
DEMOの中にoggファイルが…?どうやって再生しているんだろう…
→「hspogg.dll」が使われていた!
しかも綺麗にループしてやがる
ゆるせねぇです。(一年前の苦労を思いながら)
前置きはここまでにしておいて
使い方を見てゆきましょう!
そんなわけでHSPのエディタでF1を押してもらって
ヘルプからogg_sndtest.hspというサンプルをみながら
最低限の機能が使える感じに。
■読み込み
#include "hspogg.as"
■初期化
dmmini
おまじないだと思ってとりあえず記述。
配布時はきちんとdllも同梱しようね。
■ファイルをロード
dmmload "ファイル名",p1 ,p2
この命令でoggファイルと一応wavファイルも読み込めます。
p1はサウンドIDといって読み込んだファイルを
識別する番号です。-1にしておけば自動で割り当ててくれます。
安心。
p2が再生モードです。
1にするとwavがループしますが、
今回はoggをループさせるので無関係。
■ファイルを再生
dmmplay p1 ,p2
さっき指定されたサウンドIDをp1に代入して
再生できます。
p2は初期スタート地点を指定できます。
oggの場合の単位はサンプル数です。
これで再生はできるね!
■ファイルのループ設定
dmmloop p1 ,p2
p1は例の如くサウンドID
p2でループ地点の設定が出来ます。
当然ながら再生前に行っておく必要があります。
そして単位はサンプル数です。
サンプル数だと細かい数値になるので
調整が意外と大変。
単位を覚えればいいんですけど。
ヘルプには
(44.1kHzの場合は、44100分の1秒)
って書いてありますので、自作曲でない場合は
お手持ちの素材のサンプリング数をお確かめください
としか。
詳しい説明はヘルプに載ってるし、こんなもんでいいかな。
あとはdmmstopで再生を停止できるよぐらいのもんです。
その他はじっさいに使い始めてからじゃないと
こうピンとこないかな。
■あとがき。
…とんでもねえもん見つけてしまったせいで
年末は「マジカルな拳」のアップデート祭りに
なってしまうではないか。
ボスの挙動もコピペのまんまだし。
ああ、新作いつ完成するんだろ。
おわり。