Cave: はじめてのガイド
音声の基本
Lesson 18 of 19 • 10 XP
Keep your place in this quest
Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.
Caveのオーディオは非常にシンプルです:オーディオファイルをインポートし、エディタ内でプレビューを行い、ゲーム内で何かが起こったときに再生します。
このレッスンでは、以下のことを学びます:
- アセットブラウザにおけるオーディオアセットの動作。
- オーディオファイルのプレビュー方法。
- オーディオを
.oggとしてエクスポートまたは置き換える方法。 - Pythonからオーディオを再生する方法。
- ボリュームとピッチの意味。
- 戻り値のオーディオハンドルが何に使えるか。
- Audio Monitorタブがオーディオのデバッグにどのように役立つか。
複雑なセットアップは必要ありません。サウンドをインポートしてボタン、ドア、ピックアップ、キャラクターのアクションが起こったときに再生できるなら、コアのワークフローをすでに理解しています。
オーディオのインポート
Caveはプロジェクトにオーディオファイルをオーディオアセットとしてインポートできます。アセットのインポートセクションで見たように、Caveは.oggオーディオファイルをサポートします。
オーディオがインポートされると、他のプロジェクトコンテンツと同様にアセットブラウザに表示されます。そこから、スクリプト、UIコールバック、Logic Bricks、タイムラインイベント、またはサウンドを再生する必要のある他のシステムで使用できます。
例えば、プロジェクトには以下のようなオーディオアセットが含まれているかもしれません:
Button ClickDoor OpenPickup CoinFootstepForest Ambience
読める名前は非常に便利です。なぜなら、オーディオはPython内で名前で参照されることが多いからです。
オーディオアセットのプレビュー
オーディオファイルをインポートした後、Cave内で直接プレビューできます。
これを行うには、2つの簡単な方法があります:
- アセットブラウザでオーディオアセットをダブルクリックして、すばやくプレビューを再生します。
- 一度左クリックして選択し、そのプロパティを表示させ、プレビューコントロールを使用して再生します。
プロパティビューは、プレビュー中により多くのコントロールを提供するので便利です。例えば、ゲームでそのサウンドを使用する前に、さまざまなピッチ値でオーディオがどのように聞こえるかをテストできます。
これは、足音、衝撃、UIクリック、生き物の音などの効果に特に役立ちます。小さなピッチ変更により、繰り返しの音が同じに聞こえにくくなります。
オーディオのエクスポートまたは置き換え
オーディオアセットは、.oggファイルとして再エクスポートすることもできます。これは、外部ツールでオーディオを編集したい場合に便利です。
また、別の.oggファイルでオーディオアセットを置き換えることもできます。これは、ロジックがすでにアセット名を参照しているが、実際のサウンドを変更したい場合に実用的です。
例えば、ゲームですでにDoor Openという名前のアセットを使用している場合、そのアセット内のオーディオを置き換えることで、Door Openを再生するスクリプトは名前を変更する必要なく動作し続けることができます。
Audio Componentを使ったオーディオの再生
時には、環境音やメインメニューの音楽など、シンプルなループサウンドを再生したい場合があります。この場合、オーディオコンポーネントで十分です:

指定したオーディオを無限に再生し、ボリューム、ピッチ、サウンドが3Dかどうか、最大距離を制御できます。オーディオを何回ループするかなどの追加オプションは提供されません。もしもっとカスタマイズが必要な場合は、コードを通じてオーディオを再生する必要があります。
Pythonからのオーディオの再生
Pythonからオーディオアセットを再生する最も簡単な方法は、cave.playSound()を使用することです。
cave.playSound("Button Click")
これは、Button Clickという名前のオーディオアセットを再生します。
ボリューム値を渡すこともできます:
cave.playSound("Door Open", volume=0.8)
ボリュームのデフォルトは1.0で、通常のボリュームを意味します。値が低いほど音は静かになります。
例えば:
| ボリューム | 意味 |
|---|---|
2.0 |
追加の大音量。 |
1.0 |
通常の音量。 |
0.5 |
半分の音量。 |
0.0 |
静か。 |
ほとんどの場合、1.0から始めて、その後調整します。
ボリュームとピッチ
- ボリュームは音の大きさを制御します。
- ピッチは音の高さや低さを制御します。この値は再生速度も変え、高いピッチは速く鋭い音に、低いピッチは遅く深い音になります。
ボリュームとピッチのデフォルト値は1.0です。
例えば:
| 値 | ボリュームの結果 | ピッチの結果 |
|---|---|---|
1.0 |
通常の音量。 | 通常のピッチ。 |
0.5 |
静か。 | 低くて遅い。 |
1.5 |
音量として使用される場合は大きく。 | 高くて速い。 |
cave.playSound()を使用する際には、音が始まるときにボリュームが直接渡されます。ピッチは通常、関数から返されたオーディオハンドルを通じて変更されます。
オーディオハンドル
cave.playSound()を呼び出すと、Caveはオーディオハンドルを返します。
このハンドルは、現在再生中のサウンドインスタンスを表します。
sound = cave.playSound("Footstep Stone", volume=0.8)
sound.pitch = 1.0
このハンドルを使用して、音が始まった後にサウンドを制御できます。
例えば:
sound = cave.playSound("Cave Ambience", volume=0.6, loop=True)
# または、getterとsetterを使用できます:
sound.setPitch(0.9)
sound.setVolume(0.4)
このハンドルを使ってできることは:
- ボリュームの変更。
- ピッチの変更。
- 音の一時停止。
- 音の再開。
- 音の停止。
- 進行状況のチェック。
- 音を3Dエンティティから出させる。
例えば、ドアの音がドアエンティティから出るべき場合:
sound = cave.playSound("Door Open", volume=1.0)
sound.setSource3D(self.entity, maxDistance=20)
すべてのサウンドにこのハンドルは必要ありません。もし、クイックボタンクリックを再生したいだけなら、これで十分です:
cave.playSound("Button Click")
追加の制御が必要なときにハンドルを使用します。
足音を少しランダム化して、より多様性を持たせることも可能です。追加のサウンドを必要とせずに:
sd = cave.playSound("Footstep Stone")
# その3Dソースをそれを再生しているエンティティに設定:
sd.setSource3D(entity, 20)
# ピッチとボリュームをランダム化:
sd.pitch = cave.random.uniform(0.5, 1.5)
sd.volume = cave.random.uniform(0.1, 0.3)
上記のコードは、Caveプロジェクトを新しく作成する際にデフォルトのProto Characterの歩行と走りのアニメーションコールバックで見られるものに非常に似ています。
Audio Monitorタブ
Caveには、ゲームが実行されている間にオーディオをデバッグするためのAudio Monitorタブも含まれています。

エディタの左上のタブメニューから開けます。
Audio Monitorは、現在再生中のオーディオに関する情報を表示し、再生進捗も示します。エントリを展開して詳細を確認できるため、プロジェクトで多くのサウンドが同時に再生されているときに非常に役立ちます。
例えば、Audio Monitorは次のような質問に答えるのに役立ちます:
- この音は実際に再生されていますか?
- 同じ音があまりにも多く再生されていますか?
- ループしている環境音はまだアクティブですか?
- サウンドはどのくらい再生されていますか?
小さなプロトタイプではAudio Monitorが常に必要というわけではありませんが、より複雑なシーンをデバッグするときには非常に便利になります。
覚えておくべきこと
Caveにおけるオーディオはシンプルです:オーディオファイルをインポートし、アセットブラウザでプレビューし、Pythonでcave.playSound()を使用して再生します。
ボリュームで音の大きさを制御し、ピッチで音の高さや低さを制御し、再生が始まった後に音を制御する必要がある場合は、戻り値のハンドルを保持します。
オーディオのトラッキングが難しくなったときは、タブメニューからAudio Monitorタブを開いて、再生されている内容を確認します。