Difference between revisions of "Tutorial:Audio (日本語)"

m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
LÖVEのオーディオは[[love.audio]]モジュール内で、OpenALを利用して再生されます。love.audioは[[Source]]という単一のオーディオオブジェクトを持っています。下記のようにして、読み込んで再生できます。
+
LÖVE では、音声は [[love.audio (日本語)|love.audio]] モジュールの領域であり、OpenAL を使用して再生されます。 love.audio には音声オブジェクト型 - [[Source (日本語)|Source]] があります。このようにすると音声を読み込んで再生することができます:
 
<source lang="lua">
 
<source lang="lua">
sound = love.audio.newSource("pling.wav", "static") -- the "static" tells LÖVE to load the file into memory, good for short sound effects
+
sound = love.audio.newSource("pling.wav", "static") -- "static" はファイルを一括でメモリへ読み込むことを LÖVE に指定します。短い効果音に対して適しています。
music = love.audio.newSource("techno.ogg") -- if "static" is omitted, LÖVE will stream the file from disk, good for longer music tracks
+
music = love.audio.newSource("techno.ogg") -- "static" を省略した場合は、ファイルを段階的にメモリへ読み込むことを LÖVE に指定します。長めの楽曲に対して適しています。
love.audio.play(sound)
+
sound:play()
love.audio.play(music)
+
music:play()
 
</source>
 
</source>
  
== フォーマットについて ==
+
== 対応形式 ==
 +
 
 +
LÖVE は [[love.sound (日本語)|love.sound]] モジュールにより様々な音声形式に対応しています。処理時には全てデコードして扱います。下記の形式に対応しています:
  
LÖVEは沢山のオーディオフォーマットに対応しています。ありがとう、[[love.sound]]。対応しているファイルフォーマットは下記の通りです。
 
 
* MP3
 
* MP3
* OGG
+
* Ogg Vorbis
* WAV
+
* WAVE
* 他にもいわゆる「tracker」フォーマット - XM, MIDI, MODの他、12種類ものフォーマットに対応しています。(訳者注:trackerは日本国外ではわりと著名な音楽制作ソフトの1カテゴリなんですが、日本でマニアックなフォーマットかも。ご注意。)
+
* 各種トラッカー形式に関しても熟考することができます。 ― XM, MOD, [http://sourceforge.net/p/modplug-xmms/git/ci/master/tree/libmodplug/README#l39 およびその他二十種類以上の形式]。
 +
 
 +
推奨形式は Ogg Vorbis および 16-bit WAVE です。それ以外の形式は細部で奇癖がある場合があります。例えば MP3 デコーダーでは、作成時に使用されたエンコーダーによりサンプルのパディング挿入処理を行うことがあります。これらの問題は LÖVE が音声ファイルのデコードに使用しているライブラリが原因ですので LÖVE の内部で直接的な修正を行うことはできません。
 +
 
 +
== 静的と段階的の比較 ==
 +
 
 +
<code>[[love.audio.newSource (日本語)|love.audio.newSource]]</code> の第二引数へ "static" を渡した場合は、音声ファイルはメモリへ一括展開されます。これで 5MB の .ogg ファイルを読み込むと、 RAM を ~50MB ほど消費して展開されてしまうことを覚えておいてください。このような場合は "static" を使用しないことを考慮してください。
 +
 
 +
"static" を省略した場合、音声ファイルは演奏しながら段階的に読み込まれます。これを重量級のファイルを取り扱う場合に使用するとメモリを大幅に節約することができます。
  
== 静的読み込み vs. ストリーミング ==
+
== 再生操作 ==
  
<code>[[love.audio.newSource]]</code>の第二引数"static"にご注意。静的読み込みモードを示すこの指定を行うと、サウンドファイルはメモリに読み込まれるのですが、5MBの.ogg圧縮フォーマットを展開すると50MBにもなります。このことは熟慮が必要なケースがあります。
+
一時停止、停止、音量の変更、繰り返し、音程変更、などを行うには、単純に [[Source (日本語)|Source]] の関連メソッドを呼び出します。
この"static"指定を省くと、ストリーミング再生するようになります。特に大きなファイルを再生するとき、メモリ消費量を大きく抑えることができます。
 
  
== オーディオコントロール ==
 
一時停止、停止、音量変更、ループ、ピッチ、などなど……オーディオオブジェクト[[Source]]の備えるシンプルなメソッドを呼ぶだけで、簡単に制御できます。
 
 
<source lang="lua">
 
<source lang="lua">
 
src1 = love.audio.newSource("bang.wav", "static")
 
src1 = love.audio.newSource("bang.wav", "static")
 
src2 = love.audio.newSource("bgm.mp3")
 
src2 = love.audio.newSource("bgm.mp3")
  
src1:setVolume(0.9) -- 90% of ordinary volume
+
 
src1:setPitch(0.5) -- one octave lower
+
src1:setVolume(0.9) -- 通常音量を 90% にします。
 +
src1:setPitch(0.5) -- 1オクターブ下げます。
 
src2:setVolume(0.7)
 
src2:setVolume(0.7)
  
love.audio.play(src1)
+
src1:play()
love.audio.play(src2)
+
src2:play()
 
</source>
 
</source>
  
その他の詳細については[[Source|Sourceのドキュメント]]から参照できます。
+
より詳しい情報は [[Source (日本語)|Source のドキュメンテーション]] にあります。
  
[[Category:Tutorials (日本語)]]
+
== 関連 ==
 +
* [[TEsound (日本語)|TEsound]] - 音響効果と楽曲の利用をより容易にするための音声管理器。
 +
* [[Minimalist Sound Manager (日本語)|Minimalist Sound Manager]] - love.audio の利用をより容易してソースの自動管理をするための[[Category:Snippets (日本語)|コード断片]]です。
  
{{#set:LOVE Version=0.6.1}}
+
== そのほかの言語 ==
{{#set:Description=[[love.audio]]の使い方のチュートリアル}}
+
{{i18n|Tutorial:Audio}}
  
 +
[[Category:Tutorials]]
  
== その他の言語 ==
+
{{#set:LOVE Version=0.6.1}}
{{i18n|Tutorial:Audio}}
+
{{#set:Description=[[love.audio (日本語)|love.audio]] の使用方法を学習するための教本。}}
 +
{{#set:Tutorial=Yes}}

Latest revision as of 06:20, 15 May 2017

LÖVE では、音声は love.audio モジュールの領域であり、OpenAL を使用して再生されます。 love.audio には音声オブジェクト型 - Source があります。このようにすると音声を読み込んで再生することができます:

sound = love.audio.newSource("pling.wav", "static") -- "static" はファイルを一括でメモリへ読み込むことを LÖVE に指定します。短い効果音に対して適しています。
music = love.audio.newSource("techno.ogg") -- "static" を省略した場合は、ファイルを段階的にメモリへ読み込むことを LÖVE に指定します。長めの楽曲に対して適しています。
sound:play()
music:play()

対応形式

LÖVE は love.sound モジュールにより様々な音声形式に対応しています。処理時には全てデコードして扱います。下記の形式に対応しています:

推奨形式は Ogg Vorbis および 16-bit WAVE です。それ以外の形式は細部で奇癖がある場合があります。例えば MP3 デコーダーでは、作成時に使用されたエンコーダーによりサンプルのパディング挿入処理を行うことがあります。これらの問題は LÖVE が音声ファイルのデコードに使用しているライブラリが原因ですので LÖVE の内部で直接的な修正を行うことはできません。

静的と段階的の比較

love.audio.newSource の第二引数へ "static" を渡した場合は、音声ファイルはメモリへ一括展開されます。これで 5MB の .ogg ファイルを読み込むと、 RAM を ~50MB ほど消費して展開されてしまうことを覚えておいてください。このような場合は "static" を使用しないことを考慮してください。

"static" を省略した場合、音声ファイルは演奏しながら段階的に読み込まれます。これを重量級のファイルを取り扱う場合に使用するとメモリを大幅に節約することができます。

再生操作

一時停止、停止、音量の変更、繰り返し、音程変更、などを行うには、単純に Source の関連メソッドを呼び出します。

src1 = love.audio.newSource("bang.wav", "static")
src2 = love.audio.newSource("bgm.mp3")


src1:setVolume(0.9) -- 通常音量を 90% にします。
src1:setPitch(0.5) -- 1オクターブ下げます。
src2:setVolume(0.7)

src1:play()
src2:play()

より詳しい情報は Source のドキュメンテーション にあります。

関連

  • TEsound - 音響効果と楽曲の利用をより容易にするための音声管理器。
  • Minimalist Sound Manager - love.audio の利用をより容易してソースの自動管理をするためのです。

そのほかの言語