2020/10/21(水) [n年前の日記]
#1 [godot] Godot Engine上で効果音を鳴らせた
Godot Engine 3.2.3上で効果音を鳴らすことができた。
例えば、プレイヤーがダメージを受けた時にダメージSEを鳴らしたい場合…。
ちなみに、追加した AudioStreamPlayer の名前を変更して「DamageSE」とでもしておけば、$DamageSE.play() みたいな感じで呼べるので記述が分かりやすくなる。
例えば、プレイヤーがダメージを受けた時にダメージSEを鳴らしたい場合…。
- プレイヤー関係を担当するノードの下に AudioStreamPlayer ノードを追加。
- AudioStreamPlayer にダメージSEのwavを指定。
- プレイヤー関係のスクリプト内で、鳴らしたいタイミングで $AudioStreamPlayer.play() を呼ぶ。
ちなみに、追加した AudioStreamPlayer の名前を変更して「DamageSE」とでもしておけば、$DamageSE.play() みたいな感じで呼べるので記述が分かりやすくなる。
◎ ループ指定について。 :
以前、プロジェクト上で oggをインポートした際は、自動でループが有効の状態になったけれど。今回 wavをインポートした時は、ループは無効の状態になっていた。
おそらくだけど、「ogg はBGMとして使うもの」「wav は効果音として使うもの」と判断しているのかなと。あるいは、ogg にしろ wav にしろ音の長さを見て、音が短ければたぶん効果音だろうからループ無効、音が長ければ曲だろうからループ有効、みたいな処理になってるのかもしれない。わからんけど。
何にせよ、音をループ再生させるかどうかは、ogg や wav のインポート設定で指定できるので、そこらへんをチェック。みたいな。
おそらくだけど、「ogg はBGMとして使うもの」「wav は効果音として使うもの」と判断しているのかなと。あるいは、ogg にしろ wav にしろ音の長さを見て、音が短ければたぶん効果音だろうからループ無効、音が長ければ曲だろうからループ有効、みたいな処理になってるのかもしれない。わからんけど。
何にせよ、音をループ再生させるかどうかは、ogg や wav のインポート設定で指定できるので、そこらへんをチェック。みたいな。
◎ 種類が増えたらどうしよう。 :
一応これで効果音を鳴らせたけれど、ちと疑問が。これって効果音の種類の数だけ、AudioStreamPlayer ノードをチクチクと追加することになるのだろうか…? 例えば効果音の種類が128種類あったら、ノードが128個ほどずらりと並ぶのかな…。そんなアホな…。もっと上手い方法がありそうな気がする…。
[ ツッコむ ]
以上です。