1.6 BGMや効果音の演奏

今回の目的
 BGMや効果音の演奏を行います。

 画像の扱いと違って単純明快なので、さらりと行きましょう。

 


MIDIによるBGM演奏
 BGMデータとして最もポピュラーなのはMIDIです。
 まずはNScripterでMIDIを演奏させる方法を解説します。

bgm.midをダウンロードしてnscr.exeと同じフォルダ内に置いてください。

*define


game
*start

音楽を演奏させます。@
play "bgm.mid"

音楽が演奏されています。@

演奏を止めてみましょう。@
playstop

演奏が止まりました。@
end
 「play」はMIDIファイルを演奏させる命令です。
 playの後ろに「演奏するMIDIファイル」を指定するだけでOK。

 「playstop」は文字通り演奏をストップする命令です。

 「play」の代わりに「playonce」を入れると、MIDIファイルを一回だけ演奏します。

 CDやWAVEファイルの演奏も、これとほぼ同じです。

 


音楽CDによるBGM演奏
 「play」では音楽CDを演奏させることも出来ます。
 音楽CDをCD-ROMドライブに入れてください。

*define


game
*start

音楽CDのトラック3を演奏します。@
play "*3"

音楽が演奏されています。@

演奏を止めてみましょう。@
playstop

演奏が止まりました。@
end
 playの後ろに「*トラック番号」を指定するだけでOK。

 停止や一回演奏の方法もMIDIと同じです。

 


WAVEによる効果音再生
 効果音には通常WAVEファイルを用います。
 NScripterでWAVEを再生させる方法を解説します。

bang.wavheli.wavをダウンロードしてnscr.exeと同じフォルダ内に置いてください。

*define


game
*start

効果音を演奏させます。@
wave "bang.wav"

銃声が鳴りました。@
end
 「wave」はWAVEファイルを再生させる命令です。
 waveの後ろに「再生するWAVEファイル」を指定するだけでOK。

 「wavestop」は文字通り効果音を途中でストップする命令です。
 効果音は一回しか再生されないので、あまり使うことは無いでしょう。

 「wave」の代わりに「waveloop」を入れると、WAVEファイルを繰り返し再生します。

 


MP3の再生
 最近ではBGMや効果音にMP3が用いられることもあります。
 MP3の命令文は基本的にWAVEと同じなので、スクリプト例は割愛します。

 「mp3」はMP3ファイルを再生させる命令です。
 mp3の後ろに「再生するMP3ファイル」を指定するだけでOK。

 「mp3stop」はMP3の再生をストップする命令です。

 「mp3」の代わりに「mp3loop」を入れると、MP3ファイルを繰り返し再生します。
 mp3loopを用いれば、MP3ファイルをBGMとして使うことが出来ます。

 


bgm命令
 さて、長々とMIDI、WAVE、MP3について説明してきましたが、
 じつはこれらのファイルの再生は「bgm」これ一つで全て出来てしまいます。

 しかし、この命令だけでまかなおうとするとMIDIとWAVEが同時に演奏できない等の 問題が生じてしまいます。

 特に理由がなければ「play」「wave」「mp3」を使い分ける、
 もしくは、MP3の演奏のみに「bgm」を使うのがよろしいかと思います。

 


別々の効果音を同時に再生
 wave命令では、一つのWAVEファイルを再生しているときに別のWAVEファイルを再生しようとすると、 先に再生していた方がストップしてしまいます。

 これを回避するために「dwave」という命令があります。

*define


game
*start

ヘリコプター音を再生させます。@
dwaveloop 0,"heli.wav"

同時に、銃声音を再生させます。@
dwave 1,"bang.wav"

ヘリコプター音をバックに銃声が聞こえましたね。@

ヘリコプター音を止めてみましょう。@
dwavestop 0

止まりました。@
end
 「dwave」には「再生するWAVEファイル」の前に数字があります。

 この数字はチャンネルナンバーといい、この数字が違うWAVEファイルならば同時に再生することが出来るのです。

 チャンネルナンバーは0〜49まで設定できます。

 「dwavestop」は、指定したチャンネルナンバーの再生のみストップします。
 「dwaveloop」は繰り返し再生です。

 


stop
 今まで「playstop」「wavestop」「mp3stop」と、いろいろな停止命令を解説しました。
 しかし実際にこれらを使うことは、あまり無いかもしれません。

 NScripterには全ての音をストップする「stop」という命令が用意されています。
 よほど音に凝ったゲームを作らない限りは、このstop命令ひとつで済むでしょう。
 むしろその方が楽です。

 ただし「dwavestop」は使うことがあるかもしれません。

 


まとめ
 どれも似たような命令ばかりでしたね。

 playだけは他と違い、loopを添えなくても自動的に繰り返し演奏をしてくれます。
 playloopwaveonceなど勝手に命令文を作らないように注意しましょう。

 次節は、選択肢による分岐です。
 いよいよゲームらしくなってきましたね。

 


前へ    TOPへ戻る    次へ