トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

チュートリアル 4: サウンドと音楽

大抵の良くできたゲームには音楽やサウンドエフェクトが、または少なくともどちらか一方があります。
DSLuaはサウンドエフェクトとして.RAW形式を,音楽として.MOD形式のみ対応しています。

.MODファイルはThe Mod ArchiveかGoogleで検索すれば見つかります。
または、好きなら自身で作ってはいかがでしょうか。

RAWファイルは .WAVか.MP3から変換できます。
私は無料のSmart Audio Converterを使用しましたが、探せばもっと良いものがあるかと思います。

注意:現時点ではDualisはどちらの再生にも対応していません。
MODファイルは度々スローダウンし、RAWファイルは常にスローダウンしてしまいます。

まず、音楽の再生方法から説明します。心配しなくても結構です。とても簡単です。
はじめにMODファイルを読み込みます。ファイル名が「music.mod」なら、以下のようにします。

ModSongname = Music.LoadMod( "music.mod" )

そして、再生するにはModSongname:Play()を使用します。
停止するにはModSongname:Stop()を使用し、一時停止する場合はModSongname:Pause()を使用します。

プログラムの最後か、以降MODファイルを再生しない場合は、ModSongname:Free()を使用してメモリを開放してください。
以下にこれら全ての機能を利用したデモンストレーションのプログラムを記載します。
Aで音楽を再生し、Bで停止します。Lで一時停止し、スタートでプログラムを終了します。

-- 音楽ファイルを読み込み
ModMusic = Music.LoadMod( "music.mod" )

while Pads.Start() == false do
     if Pads.A() then
          ModMusic:Play()
     end
     if Pads.B() then
          ModMusic:Stop()
     end
     if Pads.L() then
          ModMusic:Pause()
     end
end

ModMusic:Free() 

サウンドエフェクトもほぼ同じです。が、一度再生したら停止したり一時停止したりすることができません。

音楽の再生方法が分かったなら、サウンドエフェクトの再生方法はこのコードを見ればすぐに分かるでしょう。

-- サウンドエフェクトを読み込み
SndGun = Sound.LoadRaw( "gun.raw" )
SndVoice = Sound.LoadRaw( "voice.raw" )

while Pads.Start() == false do
      if Pads.A() then
          SndGun:Play()
     end
     if Pads.B() then
          SndVoice:Play()
     end
end

SndGun:Free()
SndVoice:Free()