オーディオ
音楽やサウンドの再生は、どんなゲームでも欠かせない要素です。GDevelop には音楽ファイルの再生に関連する条件とアクションが用意されています。
サウンドや音楽ファイルを再生する
Warning
サウンドや音楽ファイルを再生する前に、プレイヤーがゲームを操作する必要があります(オーディオのアンロックは、ただ画面をクリック/タッチするだけで十分です)。これはブラウザーの制限事項で、回避策はありません。最終的に公開するゲームでは、最初のシーンに「続けるには何かキーを押すか画面をタッチしてください」というメッセージを表示することをお勧めします。
音楽ファイルを再生する一番簡単な方法は、「サウンドを再生する」や「音楽ファイルを再生する」アクションを実行することです。 どちらのアクションも最初のパラメーターに再生したいファイルを指定します。
サウンドと音楽の違いはもっぱらその長さと容量の大きさに起因していて、音楽の方がふつう時間が長くサイズの大きいファイルになります。サウンドはたいていの場合、数秒ていどの長さです。GDevelop で推奨している音楽ファイルのフォーマットは次の通りです。
- サウンドには
wav
- 音楽には
mp3
ゲームを Web で公開するなら、ブラウザーによっては他のファイルフォーマットを使える場合があります。たとえば ogg
です。ogg
は音楽用の mp3
に代わる優れた代替フォーマットです。残念ながら、すべてのブラウザーがこれに対応しているわけではありません。くわしくは Wikipedia を参照してください。
Note
音楽ファイルを選択すると、それはゲーム起動時に読み込むためにゲームのリソースに追加されます。
ゲームのサイズを軽くするためには、ゲームで使用しなくなった音楽ファイルを削除するようにしてください。
シーンの切り替え時に音楽やサウンドを再生し続ける
新しいシーンの開始時には、デフォルトで音楽とサウンドが停止します。途切れずに再生を続けたい場合は、シーンのプロパティを開き(シーンエディターでシーンを右クリック)、次のチェックボックスのチェックを外してください。
チャンネルを使用する
「サウンドを再生する」や「音楽ファイルを再生する」アクションを実行すると、音楽ファイルがすぐに再生されます。再生を完了すると、メモリーから削除されます。ただしリピート再生した場合は別です。音楽ファイルをリピート再生すると、それは永遠に流れ続けます(エンドレスループ)。音楽やサウンドを止めるには、そのためのアクションが必要です。
より細かい制御が必要な場合は、「チャンネルでサウンドを再生する」や「チャンネルで音楽ファイルを再生する」アクションを使ってください。このアクションは先ほどと同じ使い方ですが、一点だけチャンネル識別子に番号を指定するという違いがあります。チャンネル識別子は後ほど、他のアクションや条件で再利用します。「チャンネル識別子」は、サウンドがチャンネルで再生中かどうかをチェックしたり、再生中の音楽の何かのプロパティを変更するのに使われます。これを使うと、たとえばプレイヤーの近くに敵がいるかどうかに応じて、音楽の音量を動的に変更することが可能になります。
音量
サウンドと音楽はデフォルトで音量 100% で再生されます。これは最大音量です。サウンドや音楽を開始するときに、その音量を指定することができます(0~100)。
また「ゲームグローバル音量」アクションを使ってゲーム全体のオーディオ音量を変更できます。値 0 は無音で、サウンドや音楽が何も聞こえない状態を指します。このアクションはプレイヤーにミュートを許可したり、ゲームの音量を調整させるのに便利です。たとえばゲームの設定画面を用意して、そこでゲームの音量を設定項目として提示することができます。またモバイルゲームではゲームサウンドをミュートするためのボタンが用意されていることがよくあります。
パフォーマンスに関する留意事項
音楽やサウンドの初回再生時は、ファイルを読み込むためのタイムラグが発生します。この遅延を避けることが必須の場合は、それを使用するシーンの開始時に音楽やサウンドを再生してしまいましょう。ただし音量は 0 にします。これによって、音楽やサウンドの読み込みが強制されます。そしてオーディオデータがメモリー上にキャッシュされます。その後、関連アクションを実行したときにはすぐに反応するでしょう。
サウンド/音楽の状態に関する詳細
チャンネルでサウンド/音楽ファイルを再生するアクションを実行すると、まだメモリーに読み込んでいる途中であったとしても、「再生中」 という状態が設定されます。
そのため(チャンネルの)「サウンドは再生中である」条件はこの時点で真になります。(チャンネルの)「サウンドは停止している」条件は偽で、(同じくチャンネルの)「サウンドは一時停止している」条件も偽です。 サウンドの読み込みが完了すると、デバイス上で実際の再生が開始されます(音が聞こえるようになります)。
サウンドは次のいずれかのときに停止します。
- 最後まで再生し終わって、リピート再生が設定されていない
- 読み込み時にエラーが発生した(数ミリ秒のあいだ再生してから、その後で読み込みできないために停止したものと見なされる)
- アクションを実行して、チャンネル内のサウンドか音楽を停止した