Akashic Engine 逆引きリファレンス

効果音・BGM を再生する

音声アセットは g.AudioAsset#play() メソッドを用いて再生することができます。

凡例

scene.asset.getAudioById("sound1").play(); // アセット ID "sound1" の音声アセットが再生される

音声アセットは play() メソッドで再生できます。 効果音として登録されたアセットは一度だけ、BGM として登録されたアセットはループ再生されます (後述)。

利用例

次のコンテンツでは、「SE」の矩形をクリックすると効果音が、「BGM」の矩形をクリックするとが BGM が再生されます。

詳細

Akashic Engine で音声を扱うには、音声ファイルをアセットとして game.json に登録する必要があります。 音声ファイルは Ogg Vorbis 形式 (.ogg) と AAC 形式 (.aac) の二種類のファイルを用意する必要があります。これは、Web ページで音を再生する際に、利用可能な形式がブラウザごとに異なっているためです。

音声ファイルを audio/ ディレクトリ (または assets/ ディレクトリ) に配置して akashic scan asset を実行するとアセットとして game.json に登録されます。 音声アセットは全て効果音 ("sound") として登録されます。BGM (ループ再生する) としたい場合は game.json の対応するアセットを探して systemId: "sound" になっている箇所を systemId: "music" に変更してください。例えば以下のアセット ID "bgm1" を BGM としたい場合以下のように編集します。

"bgm1": {
  "type": "audio",
  "path": "audio/bgm1",
-  "systemId": "sound",
+  "systemId": "music",
  "duration": 36227
}

音声アセットの再生・停止はシーンの読み込み後に行う必要があります。このシーンの読み込み完了のタイミングを知るには scene.onLoad トリガーを利用します。 シーン内で読み込まれている音声アセットは scene.asset.getAudioById()scene.asset.getAudio() で取得できます。アセットはシーンの生成時に assetIds または assetPaths で指定して読み込ませることができます。

var scene = new g.Scene({ game: g.game, assetIds: ["sound1"] }); // シーン生成時にそのシーンで利用する音声アセットを予め指定する
scene.onLoad.add(function() {
  // 中略
  var sound1 = scene.asset.getAudioById("sound1"); // アセット ID "sound1" の音声アセットを取得
  sound1.play();
});

Ogg Vorbis 形式 と AAC 形式の複数の音声ファイルを用意するために、complete-audioを利用することができます。これは .wav, .mp4, .mp3, .ogg, .aac のどれか一つのファイルを与えると、Akashic Engine で必要な形式のファイルを一揃え生成するツールです。

関連情報