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

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 MIDI Player作りました

GodotでMIDIファイルを再生できる Godot MIDI Playerを作りました。 https://bitbucket.org/arlez80/godot-midi-player なにこれ Godot Engine 3 向けのライブラリです。SoundFontとMIDI fileがあれば再生できるライブラリです。 ゲームに組み込んで使う目的で開発しました。 仕組み 全て、GDScriptのみで書かれており、C++は使ってません。波形の合成はしていません。 MIDIのシーケンスデータを解釈しながらAudioStreamPlayerで再生します。 AudioStreamPlayerにはmix_rateというのがあり、元のmix_rateから変更すると音階(再生速度)が変わるので、それを利用しています。 再生可能ファイル Standard MIDI File(*.mid) format 0 format 1 format 2には対応していません。 2019-02-10追記、format 1と同じようなように読めるので一応対応という扱いにしておきました。保証はしません。 再生可能ファイル(予定) MOD (*.mod) perserは既に書いています。MOD.gd MIDIのシーケンスデータに変換 + 波形データをMIDIで使えるようにしてこのプレイヤーで再生できるようにします IT (*.it) 仕様は知らないのでこれから調べます ほかにシーケンスデータがあったら対応します。 副産物 SMF.gdというStandard MIDI Fileを読み込むプログラム、SoundFont.gdというSoundFontを読み込むプログラムががついてますので、それだけ切り出してなにかに利用することができます。 ライセンス MITライセンスです。