Hextrategy 音声ファイル 30個上限に対応した


2020年 6月 23日
 
 
 BGMは主に 0番を使うとして、SEは戦闘の始めに必要なものを 2~29番にロードする方法にした。

 最大 6人 × アイテムスロット 7つと考えて、最大 SE数はザッと 42個と仮定できる。

 27個以上の場合は、その SEは鳴らない事にする。
 
 

 左上の緑の数字が読み込んだ音声ファイル No.の最大数、白い数字は各 SEが何番のファイル No.に割り当てられたかを示す。
 
 

 戦闘に入る直前に割り当てと読み込みを行う。

 senoの配列変数は、各 SEが何番の音声ファイルNo.かを格納する。

 senonは音声ファイルNo.

 状態異常の 5個は必ずセットする、これはソース内に散見されるので、それを拾うプログラムが煩雑になるため。
 
 
 *se_set、ここでそのユニットがどの SEを鳴らすのかを特定する。

 これを書くのに時間がかかった。

 今回は付けたし変更だったため、このような無様な(笑)ソースになったが、始めからならもう少し合理的な方法を考えたい所。
 
 
 特定したら、その SEの音声ファイルNo.をセットし、その No.にデータを読み込む。

 データの読み込みが戦闘の始めに行われるため、戦闘に入るまでにタイムラグが発生してしまう、たぶん市販のゲームの LOADINGもこんな感じなんだろうな。

 全部検証したらボリュームのセットを行う。
 
 
 音を鳴らすときは今まで使っていた mmplays(作った関数)を少し改造したものを使う、呼び出しの鳴らす方のソースはそのままで済む。

 mmplay seno(senon)で、指定の SEを鳴らす事ができる訳だ。
 
 
 音声関係の調整はまだ全部終わってませんけど、おおむねこれで対応できたと思います。
 
 

コメントを残す

メールアドレスが公開されることはありません。