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ファイルの演奏も、これとほぼ同じです。 | ||
「play」では音楽CDを演奏させることも出来ます。
音楽CDをCD-ROMドライブに入れてください。 | ||
*define game *start 音楽CDのトラック3を演奏します。@ play "*3" 音楽が演奏されています。@ 演奏を止めてみましょう。@ playstop 演奏が止まりました。@ end | ||
playの後ろに「*トラック番号」を指定するだけでOK。
停止や一回演奏の方法もMIDIと同じです。 | ||
効果音には通常WAVEファイルを用います。
NScripterでWAVEを再生させる方法を解説します。 ※bang.wav、heli.wavをダウンロードしてnscr.exeと同じフォルダ内に置いてください。 | ||
*define game *start 効果音を演奏させます。@ wave "bang.wav" 銃声が鳴りました。@ end | ||
「wave」はWAVEファイルを再生させる命令です。
waveの後ろに「再生するWAVEファイル」を指定するだけでOK。 「wavestop」は文字通り効果音を途中でストップする命令です。 効果音は一回しか再生されないので、あまり使うことは無いでしょう。 「wave」の代わりに「waveloop」を入れると、WAVEファイルを繰り返し再生します。 | ||
最近ではBGMや効果音にMP3が用いられることもあります。
MP3の命令文は基本的にWAVEと同じなので、スクリプト例は割愛します。 「mp3」はMP3ファイルを再生させる命令です。 mp3の後ろに「再生するMP3ファイル」を指定するだけでOK。 「mp3stop」はMP3の再生をストップする命令です。 「mp3」の代わりに「mp3loop」を入れると、MP3ファイルを繰り返し再生します。 mp3loopを用いれば、MP3ファイルを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」は繰り返し再生です。 | ||
今まで「playstop」「wavestop」「mp3stop」と、いろいろな停止命令を解説しました。
しかし実際にこれらを使うことは、あまり無いかもしれません。 NScripterには全ての音をストップする「stop」という命令が用意されています。 よほど音に凝ったゲームを作らない限りは、このstop命令ひとつで済むでしょう。 むしろその方が楽です。 ただし「dwavestop」は使うことがあるかもしれません。 | ||
どれも似たような命令ばかりでしたね。
playだけは他と違い、loopを添えなくても自動的に繰り返し演奏をしてくれます。 playloopやwaveonceなど勝手に命令文を作らないように注意しましょう。 次節は、選択肢による分岐です。 いよいよゲームらしくなってきましたね。 | ||