v
Skip to content

オーディオ設計 ​

雨音と遠くの心音の SFX が流れるサバイバルスリラーは、文章がまったく同じでも、文字だけのものとは違って感じられます。設定は手軽です。トラックをいくつかアップロードして、どう流すかを決めれば、あとはエンジンがやります。

トラックの種類(BGM、SFX、Ambient)と設定の基本は ビジュアルとオーディオ を見てください。

トラックの ID を調べるには、パネル → オーディオ でトラックを選び、読み取り専用の 音声トラック ID を、横にある ID をコピー でコピーします。この値を playAudio(trackId) や [audio: trackId play] のようなディレクティブに使います。アセットにある素材 ID はアップロードしたファイルの ID で、音声トラック ID とは別のものです。以下の例の door-slam などの ID は、自分のトラックの実際の ID に置き換えてください。


オーディオが鳴るしくみ ​

ワールドでオーディオを鳴らす方法は 4 つあります。シンプルなものから順に、だんだん自由がききます。

1. プレイリスト:設定したらあとはおまかせ ​

デフォルトプレイリスト は、プレイヤーがワールドに入ると、トラックを順番に自動で流します。ほとんどのワールドはこれだけで足ります。

パネル → オーディオ の BGM設定 で設定します。

設定何をするか
トラックどの BGM をどの順番で流すか
再生モードループ(最初からくり返す)、シャッフル(ランダム)、順番(全部流してからくり返す)
自動再生ワールドの読み込み時に再生を試みる
最初のメッセージを待つプレイヤーが最初のメッセージを送るまで流さない。キャラクター作成やオープニングの演出があるワールドに便利
トラック間の間隔(秒)(0-30)曲と曲のあいだの無音。「レコードをかけ替える」感じが出る

Sakura Season と PRTS Terminal はどちらも、いちばんシンプルな設定を使っています。BGM がひとつ、ループ、自動再生オン。オーディオの設定はそれだけです。

最小の設定

オーディオファイルをひとつアップロードし、BGM のトラックを作り、自動再生 をオンにしてプレイリストに入れます。ブラウザが自動再生をブロックした場合は、その後のクリックなどの操作で再試行します。ワールドを離れると、その音声は停止します。

2. スマートトラッキング:用意した合図から AI が選ぶ ​

パネル → オーディオ では、トラックごとに この曲を AI に流させる(SFX なら この効果音を AI に鳴らさせる)があります。いつ流すか に、「にぎやかで楽しい。お祭り、市場、追いかけっこ」のような一文を書きます。効果音なら「誰かが刀を抜く」のように書きます。返信のたびに、スマートトラッキングがその場面をこの合図と照らし合わせ、物語がトラックに合えば曲を切り替え、効果音はその瞬間が来たら一度鳴らします。空にしておけば、そのトラックはプレイリストと条件付きのルールにだけ従います。

物語の AI が何かを書き忘れる心配がないので、プレイヤーがどのモデルを使っていても動きます。ほかの音楽とどう付き合うかは、いくつかの設定で決めます。

  • AI が曲を変えたいのに、条件ルールが自分の曲を流しているとき:ルール優先(ルールの曲がそのまま流れる)か、AI 優先(AI が選んだ曲が終わるか、AI が戻すまで、そちらに切り替える)
  • AI が選んだ曲が終わったら:AI が切り替えるまでループし続けるか、一度だけ流してデフォルトプレイリストに戻る
  • AI が効果音を鳴らす間は BGM を下げ、終わったら戻す

スマートトラッキングは最初からオンです。カードの設定 にある同じ名前のスイッチがそれです。

3. AI ディレクティブ:語り手に BGM のきっかけを出させる ​

AI は、変数のディレクティブと同じ括弧の書き方で、返信にオーディオの命令を埋め込めます。プレイヤーにはこれは見えません。文章を表示する前にエンジンが取り除きます。

この方法で操作できるのは、AI による操作を許可 がオンのトラックだけです。最初からオンになっています。トラックをカスタム UI、スクリプト、ビヘイビア、プレイリスト専用にしたいときは、オフにしてください(キャンバスでトラックをクリックするか、パネル → オーディオ で)。ディレクティブやカスタム UI の呼び出しを書くときは、ID をコピー でトラックの 音声トラック ID をコピーします。

The door flies open with a deafening crash. [audio: door-slam play]
An armored figure steps through the smoke.

プレイヤーはきれいな物語を読みながら、同時にドアが叩きつけられる音を聞きます。

使えるディレクティブ:

ディレクティブ何をするか
[audio: trackId play]トラックを流す
[audio: trackId stop]トラックを止める
[audio: trackId crossfade 2.0]いまの BGM から 2 秒かけて切り替える
[audio: trackId volume 0.5]止めずに音量を変える
[audio: trackId play chain:nextTrackId]このトラックを流し、終わったら次のトラックを自動で流す

chain のディレクティブは場面の切り替えに便利です。戦の角笛の SFX を鳴らし、角笛が終わったら戦闘の BGM に移る、ということが、ディレクティブをもうひとつ書かなくてもできます。

AI のディレクティブは、同じ返信の中で状態の変更と混ぜて書けます。

A rumbling echoes from deep in the dungeon. [audio: earthquake-sfx play]
Debris falls from the ceiling. [health: -5]
The ambient sound grows oppressive. [audio: ambient-cave volume 0.3]

弱点: AI はディレクティブを書き忘れることがあります。返信が長いときや、込み入った物語に集中しているときは特にそうです。決まった瞬間に必ず鳴ってほしいオーディオには、条件付きBGMかビヘイビアを使ってください。

4. 条件付きBGM:音楽が物語についてくる ​

条件を決めておくと、それが満たされたときにエンジンがトラックを切り替えます。AI は関わりません。パネル → オーディオ の 条件付きBGM で 条件付きルールを追加 を押します。

ゲームの状態についてくる BGM ができます。酒場にいるときは酒場の曲、戦闘中は戦闘の曲、それ以外は探索の曲、という具合です。

条件付きBGM のルールには、次の設定があります。

設定何をするか
トリガー何を見張るか:変数条件、プレイヤーキーワード / AIキーワード(文字の一致)、ターン数、セッション開始
条件変数のチェック(変数条件 のとき)。すべての条件を満たす か いずれかの条件を満たす で組み合わせる
再生どのトラックに切り替えるか
優先度いくつもの条件が当てはまったら、数字の大きいほうが勝つ
フェードイン(秒) / フェードアウト(秒)切り替えの速さ(秒)
前のBGMを停止ふつうはオン。複数のトラックを重ねたいときだけオフにする
終了時条件が成り立たなくなったら何を流すか:デフォルトプレイリストに戻る、前のトラックに戻る、または特定のトラック
例:戦闘の曲への切り替え

BGM のトラックが 2 つあります。explore-bgm と battle-bgm。プレイリストはふだん探索の曲を流しています。条件付きBGM のルールが location が battle_arena であるかを見張り、そうなったらエンジンが 0.5 秒かけて戦闘の曲に切り替えます。プレイヤーがアリーナを出ると、デフォルトプレイリストに戻る で探索の曲に戻ります。

AI がオーディオのことを何も覚えていなくても、戦闘が始まるたび、終わるたびに、音楽がなめらかに切り替わります。


ビヘイビアでオーディオを鳴らす ​

ビヘイビアには 音楽を再生、効果音を再生、オーディオを停止 の 3 つのオーディオの効果があり、AI をまったく通さずにオーディオを操作できます。決まった瞬間に必ず鳴ってほしいオーディオには、いちばん確実な方法です。

Battle Royale は、オーディオの道具として death-sfx と heartbeat-sfx のトラックを使っています。いまの版では AI のディレクティブで鳴らしていますが、ビヘイビアにつなげば、体力が 20 を切ったら心音の SFX、体力が 0 になったら死の音、と決まった瞬間に必ず鳴らせます。

効果何をするか
音楽を再生BGM を流す
効果音を再生一度きりの音を鳴らす
オーディオを停止トラックを止める

変数がしきい値を越える のトリガーと組み合わせれば、必ず鳴るオーディオのきっかけが作れます。

WHEN:     health drops below 20
EFFECT:   Play music → crisis-bgm

フェードや音量の変更は、ビヘイビアの効果にはありません。それには条件付きBGM、AI のディレクティブ、または画面のコードからの api.playAudio(trackId, { fadeDuration, volume }) を使います。


設計のアドバイス ​

音量のバランス ​

BGM は、たいていのワールドで 0.3〜0.5 がちょうどいいです。プレイヤーは文章を読んでいるので、音楽が大きすぎると集中のじゃまになります。Ambient のトラックは背景の質感として、さらに低く(0.1〜0.3)てもかまいません。SFX は短く、瞬間を際立たせるためのものなので、大きめ(0.7〜0.9)にします。

トラックは少なく、効果は大きく ​

Battle Royale のオーディオトラックは 4 つです。キャラクター作成の BGM、ゲーム中のプレイリストの BGM、心音の SFX、死の SFX。何時間も続くサバイバルゲームの緊張感を作るには、これで足ります。20 曲のライブラリはいりません。よく選んだ数曲となめらかなフェードのほうが、ごちゃごちゃしたサウンドトラックより効きます。

何でもフェードさせる ​

音がいきなり切れると耳障りです。BGM のトラックは フェードイン(秒) を 2、フェードアウト(秒) を 1.5 にして、切り替えをなめらかにしましょう。トラックを切り替えるときは、止めてから流すのではなく crossfade を使います。条件付きBGM のデフォルトのフェード(イン 1 秒、アウト 1 秒)は、最初の目安としてちょうどいい値です。

AI に任せるときと、自動にするとき ​

きっかけが 物語 のときは、AI に任せましょう。ドアが叩きつけられる、キャラクターが息をのむ、爆発が起きる。こうした瞬間はいつ来るか読めませんが、書いている AI にはわかります。

きっかけが しくみ のときは、自動にしましょう。ある場所に入る、体力がしきい値を越える、特定のターンになる。こうした決まった状態の変化は、AI よりエンジンのほうが正確に追えます。

多くのワールドは組み合わせて使っています。ベースの音楽はプレイリスト、場所による切り替えは条件付きBGM、ここぞという SFX は「いつ流すか」の合図か AI のディレクティブ、という具合です。


関連項目 ​

オーディオのスキーマとプレイリストの設定の全体 → World Spec:オーディオ