スキップしてメイン コンテンツに移動

Godot Engineで動的にAudioStreamPlayerでパン/リバーブをかける方法

/AudioStreamPlayer(|[23]D)/で、パンを振ったり、リバーブかけるために以下のようにバスを動的に生成する。

AudioServer.add_bus( -1 )
var midi_bus_idx:int = AudioServer.get_bus_count( )
AudioServer.set_bus_name( midi_bus_idx, "test_bus" )
AudioServer.set_bus_send( midi_bus_idx, "master" )
var panner: = AudioEffectPanner.new( )
var reverb: = AudioEffectReverb.new( )
AudioServer.add_bus_effect( midi_bus_idx, 
panner )
AudioServer.add_bus_effect( midi_bus_idx, reverb )
# 以後音を鳴らすときにはtest_busを指定して鳴らす

コメント

このブログの人気の投稿

Godot EngineでHUD表示

3D空間に2DUIの表示についてのメモ。

Viewportノードを作成し、その下に表示したい2D UIを作る:
そして表示用のMeshInstanceも作成しておく。メッシュはQuad、マテリアルはMaterialOverrideに下のような感じに設定する: そして、最後に_ready( )に以下のコードを使用:

# 名前とかは適宜変えてね
func _ready( ):
    $MeshInstance.material_override.albedo_texture = $Viewport.get_texture( )

上下反転しているときは、テクスチャをFilpYするか、ViewportのRenderTarget/VFlipをtrueにすると直る。

Viewportにはスクリーンサイズを設定するところがあるので設定しわすれないように注意する。背景を透明化するときは、TransparentBgをtrueにする。

サンプルのGui in 3dでも使われている、ViewportTextureというのがあったけど、これはBillboardをtrueにすると上手く動かなかった。サンプルでは3Dで描画してたが、今回は常にこっちを向かせたかった。

Godot Engineでローカライゼーション

Godot Engineでローカライゼーションする方法について。

ドキュメントにはスクリプトを使う方法とタイトルを変更する方法、リソースを変える方法は乗っているんですが、スクリプトを使わずにGUIノードのローカライズをする方法が乗っていなかったのでDiscordで聞いてきました。
テキストの準備 UTF8エンコーディングのcsvを用意します。下記のような感じで書いていきます。
,jaJP,en KEY_HELLO,こんにちは,hello 読み込んでおく Project > Project Setting > ローカライズタブ > 追加...でCSVのフォルダにある*.translationを追加する。
ここで、*.csvを指定すると上手く動きません。ちょっとハマりました。 適応する スクリプトを使う方法 下記コードでOKです。 tr("KEY_HELLO") GUIの文字列に対してスクリプト使わない方法 今回の本題。実はなにもしなくても、デフォルトで変換されます。 GUIノードのTextプロパティにキー(上のCSVの場合は、KEY_HELLO)をそのまま指定するだけで大丈夫でした。
どうやら当初言語指定が間違っていたみたいで(Fallbackの指定がja_JPなのに、csv上はjaとしか書いていなかった)、動いていなかったようです。
タイトルを変える方法 こちらも、キーのみを記述すればタイトルが変わります。

Godot Maze Generator公開しました

ぐるんぐるんするゲーム、ぐるんぐるん(仮)を作っています。
そこで、自動で3Dダンジョンを生成するプログラムを作ったのですが、それだけを切り離して公開しました。

https://bitbucket.org/arlez80/godot-maze-generator

部屋を分離してダンジョンを生成します。あとはGridMapなんかを使ってダンジョンを3Dモデル化して使います。

生成したマップのサンプル:

こんな感じになります。