-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fixes for 4.3 compat, in-engine docs.
- Loading branch information
Showing
21 changed files
with
324 additions
and
27 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
[submodule "src/lib/godot-cpp"] | ||
path = src/lib/godot-cpp | ||
url = https://github.com/stechyo/godot-cpp | ||
branch = gdext/steam-audio | ||
branch = 4.3-steam-audio | ||
[submodule "src/lib/steamaudio"] | ||
path = src/lib/steamaudio | ||
url = https://github.com/ValveSoftware/steam-audio |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioConfig" inherits="Node3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
</brief_description> | ||
<description> | ||
This node makes [SteamAudioServer] tick. You must have one, and only one, instance of it in your scene if you'd like the extension to do anything. | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<members> | ||
<member name="diffuse_samples" type="int" setter="set_num_diffuse_samples" getter="get_num_diffuse_samples" default="32"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N21IPLSimulationSettings17numDiffuseSamplesE]IPLSimulationSettings.numDiffuseSamples[/url] | ||
</member> | ||
<member name="global_log_level" type="int" setter="set_global_log_level" getter="get_global_log_level" enum="SteamAudio.GodotSteamAudioLogLevel" default="1"> | ||
The global log level for this extension. Setting it to a lower level will show more logs. | ||
</member> | ||
<member name="hrtf_volume" type="float" setter="set_hrtf_volume" getter="get_hrtf_volume" default="1.0"> | ||
Audio volume (see [url=https://valvesoftware.github.io/steam-audio/doc/capi/hrtf.html#_CPPv4N15IPLHRTFSettings6volumeE]IPLHRTFSettings.volume[/url]) | ||
</member> | ||
<member name="max_ambisonics_order" type="int" setter="set_max_ambisonics_order" getter="get_max_ambisonics_order" default="1"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N21IPLSimulationSettings8maxOrderE]IPLSimulationSettings.maxOrder[/url] | ||
</member> | ||
<member name="max_occlusion_samples" type="int" setter="set_max_num_occ_samples" getter="get_max_num_occ_samples" default="64"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N21IPLSimulationSettings22maxNumOcclusionSamplesE]IPLSimulationSettings.maxNumOcclusionSamples[/url] | ||
</member> | ||
<member name="max_reflection_duration" type="float" setter="set_max_refl_duration" getter="get_max_refl_duration" default="2.0"> | ||
Higher values will result in more realistic reflections, but this will impact performance - see [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N21IPLSimulationSettings11maxDurationE]IPLSimulationSettings.maxDuration[/url] | ||
</member> | ||
<member name="max_reflection_rays" type="int" setter="set_max_num_refl_rays" getter="get_max_num_refl_rays" default="4096"> | ||
Overrides each source's max_reflection_rays setting - see [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N21IPLSimulationSettings10maxNumRaysE]IPLSimulationSettings.maxNumRays[/url] | ||
</member> | ||
<member name="max_reflection_sources" type="float" setter="set_max_num_refl_srcs" getter="get_max_num_refl_srcs" default="8.0"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N21IPLSimulationSettings13maxNumSourcesE]IPLSimulationSettings.maxNumSources[/url] | ||
</member> | ||
<member name="reflection_threads" type="float" setter="set_num_refl_threads" getter="get_num_refl_threads" default="2.0"> | ||
Number of threads that reflection simulation will use (see [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N21IPLSimulationSettings10numThreadsE]IPLSimulationSettings.numThreads[/url]) | ||
</member> | ||
<member name="scene_type" type="int" setter="set_scene_type" getter="get_scene_type" enum="IPLSceneType" default="1"> | ||
The ray tracing implementation to use - see [url=https://valvesoftware.github.io/steam-audio/doc/capi/scene.html#_CPPv412IPLSceneType]IPLSceneType[/url] | ||
</member> | ||
</members> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioDynamicGeometry" inherits="Node3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
Dynamic geometry that will affect SteamAudio simulation. | ||
</brief_description> | ||
<description> | ||
This node will attempt to get a mesh from its parent at [code]_ready()[/code] and add it to the internal SteamAudio scene. Adding a node after the game has started probably works, but it is not supported. If this object isn't going to move, then just use [SteamAudioGeometry]. | ||
|
||
This node can extract meshes from the following nodes: | ||
- [MeshInstance3D] | ||
- [CollisionShape3D], [b]if its shape is one of[/b]: | ||
- [BoxShape3D] | ||
- [CylinderShape3D] | ||
- [CapsuleShape3D] | ||
- [SphereShape3D] | ||
- [ConcavePolygonShape3D] | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<methods> | ||
<method name="recalculate"> | ||
<return type="void" /> | ||
<description> | ||
</description> | ||
</method> | ||
</methods> | ||
<members> | ||
<member name="material" type="SteamAudioMaterial" setter="set_material" getter="get_material"> | ||
The geometry's material. | ||
</member> | ||
</members> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioGeometry" inherits="Node3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
Static geometry that will affect SteamAudio simulation. | ||
</brief_description> | ||
<description> | ||
This node will attempt to get a mesh from its parent at [code]_ready()[/code] and add it to the internal SteamAudio scene. Adding a node after the game has started probably works, but it is not supported. If you want to move this node's transform at runtime, use [code]recalculate()[/code] or consider (if you want more detailed simulation and don't mind worse performance) [SteamAudioDynamicGeometry]. | ||
This node can extract meshes from the following nodes: | ||
- [MeshInstance3D] | ||
- [CollisionShape3D], [b]if its shape is one of[/b]: | ||
- [BoxShape3D] | ||
- [CylinderShape3D] | ||
- [CapsuleShape3D] | ||
- [SphereShape3D] | ||
- [ConcavePolygonShape3D] | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<methods> | ||
<method name="recalculate"> | ||
<return type="void" /> | ||
<description> | ||
Changes the internal SteamAudio scene to reflect any changes in transform that you may have made to the object. If you plan on calling this every frame to account for an object's motion, it's probably better to use [SteamAudioDynamicGeometry]. | ||
</description> | ||
</method> | ||
</methods> | ||
<members> | ||
<member name="disabled" type="bool" setter="set_disabled" getter="is_disabled" default="false"> | ||
Whether the geometry is disabled. | ||
</member> | ||
<member name="material" type="SteamAudioMaterial" setter="set_material" getter="get_material"> | ||
The geometry's material. | ||
</member> | ||
</members> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioListener" inherits="Node3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
This node's transform is used for simulating the listener's transform in the SteamAudio simulation. You'll likely want to have this as a child of your [Camera3D]. | ||
</brief_description> | ||
<description> | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<members> | ||
<member name="irradiance_min_distance" type="float" setter="set_irradiance_min_dist" getter="get_irradiance_min_dist" default="1.0"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N25IPLSimulationSharedInputs21irradianceMinDistanceE]IPLSimulationSharedInputs.irradianceMinDistance[/url] | ||
</member> | ||
<member name="reflection_ambisonics_order" type="int" setter="set_refl_ambisonics_order" getter="get_refl_ambisonics_order" default="1"> | ||
May be overriden by [SteamAudioConfig] - see [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N25IPLSimulationSharedInputs5orderE]IPLSimulationSharedInputs.order[/url] | ||
</member> | ||
<member name="reflection_bounces" type="int" setter="set_num_refl_bounces" getter="get_num_refl_bounces" default="16"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N25IPLSimulationSharedInputs10numBouncesE]IPLSimulationSharedInputs.numBounces[/url] | ||
</member> | ||
<member name="reflection_duration" type="float" setter="set_refl_duration" getter="get_refl_duration" default="2.0"> | ||
May be overriden by [SteamAudioConfig] - see [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N25IPLSimulationSharedInputs8durationE]IPLSimulationSharedInputs.duration[/url] | ||
</member> | ||
<member name="reflection_rays" type="int" setter="set_num_refl_rays" getter="get_num_refl_rays" default="4096"> | ||
May be overriden by [SteamAudioConfig] - see [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N25IPLSimulationSharedInputs7numRaysE]IPLSimulationSharedInputs.numRays[/url] | ||
</member> | ||
</members> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioMaterial" inherits="Resource" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
The acoustic properties of a surface. | ||
</brief_description> | ||
<description> | ||
This resource is a Godot translation of [url=https://valvesoftware.github.io/steam-audio/doc/capi/scene.html?highlight=iplmaterial#_CPPv411IPLMaterial]IPLMaterial[/url]. Low, middle, and high refer to frequency bands with center frequencies of 400Hz, 2.5kHz and 15kHz. | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<members> | ||
<member name="absorption_high" type="float" setter="set_absorption_high" getter="get_absorption_high" default="0.0"> | ||
Fraction of sound energy absorbed at high frequencies. | ||
</member> | ||
<member name="absorption_low" type="float" setter="set_absorption_low" getter="get_absorption_low" default="0.0"> | ||
Fraction of sound energy absorbed at low frequencies. | ||
</member> | ||
<member name="absorption_mid" type="float" setter="set_absorption_mid" getter="get_absorption_mid" default="0.0"> | ||
Fraction of sound energy absorbed at mid frequencies. | ||
</member> | ||
<member name="scattering" type="float" setter="set_scattering" getter="get_scattering" default="0.0"> | ||
Fraction of sound energy scattered in a random direction when reflecting. | ||
</member> | ||
<member name="transmission_high" type="float" setter="set_transmission_high" getter="get_transmission_high" default="0.0"> | ||
Fraction of sound energy absorbed at high frequencies. | ||
</member> | ||
<member name="transmission_low" type="float" setter="set_transmission_low" getter="get_transmission_low" default="0.0"> | ||
Fraction of sound energy absorbed at low frequencies. | ||
</member> | ||
<member name="transmission_mid" type="float" setter="set_transmission_mid" getter="get_transmission_mid" default="0.0"> | ||
Fraction of sound energy absorbed at mid frequencies. | ||
</member> | ||
</members> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioPlayer" inherits="AudioStreamPlayer3D" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
This player's transform is used as the audio source transform in the SteamAudio simulation. | ||
</brief_description> | ||
<description> | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<methods> | ||
<method name="get_inner_stream"> | ||
<return type="AudioStream" /> | ||
<description> | ||
Returns the player's inner [AudioStream] | ||
</description> | ||
</method> | ||
<method name="get_inner_stream_playback"> | ||
<return type="AudioStreamPlayback" /> | ||
<description> | ||
Returns the player's inner [AudioStreamPlayback] | ||
</description> | ||
</method> | ||
<method name="play_stream"> | ||
<return type="void" /> | ||
<param index="0" name="stream" type="AudioStream" /> | ||
<param index="1" name="from_offset" type="float" default="0" /> | ||
<param index="2" name="volume_db" type="float" default="0" /> | ||
<param index="3" name="pitch_scale" type="float" default="1.0" /> | ||
<description> | ||
Plays the given stream starting at from_offset, at the defined volume and pitch scale. | ||
[b]A very important note[/b]: play_stream is what you want to use if you'd like to change a SteamAudioPlayer's stream at runtime. Do not try to set the player's stream directly through set_stream, as that will disable all SteamAudio effects for that player. At runtime, the stream you've configured will be replaced with a [SteamAudioStream]. This stream has an inner stream which corresponds to what you configured in the scene. | ||
</description> | ||
</method> | ||
</methods> | ||
<members> | ||
<member name="ambisonics_order" type="int" setter="set_ambisonics_order" getter="get_ambisonics_order" default="1"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/ambisonics-encode-effect.html#_CPPv4N31IPLAmbisonicsEncodeEffectParams5orderE]IPLAmbisonicsEncodeEffectParams.order[/url]. | ||
</member> | ||
<member name="distance_attenuation" type="bool" setter="set_dist_attn_on" getter="is_dist_attn_on" default="false"> | ||
Whether SteamAudio distance attenuation is enabled. Keep in mind that this is disabled by default, and enabling it will disable Godot's built-in attenuation, which you can only re-enable when you disable this. | ||
</member> | ||
<member name="max_reflection_distance" type="float" setter="set_max_reflection_distance" getter="get_max_reflection_distance" default="10000.0"> | ||
The maximum distance from the listener at which reflection simulation is run for this audio source. Keep in mind that this does not disable reflection if it has already been simulated, it just doesn't update the effect. | ||
</member> | ||
<member name="min_attenuation_distance" type="float" setter="set_min_attenuation_distance" getter="get_min_attenuation_distance" default="0.0"> | ||
See | ||
[url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N27IPLDistanceAttenuationModel11minDistanceE]IPLDistanceAttenuationModel.minDistance[/url], and note the distance attenuation type in godot-steam-audio is always [code]IPL_DISTANCEATTENUATIONTYPE_INVERSEDISTANCE[/code]. | ||
</member> | ||
<member name="occlusion" type="bool" setter="set_occlusion_on" getter="is_occlusion_on" default="true"> | ||
Whether SteamAudio occlusion and transmission is enabled. | ||
</member> | ||
<member name="occlusion_radius" type="float" setter="set_occlusion_radius" getter="get_occlusion_radius" default="4.0"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N19IPLSimulationInputs15occlusionRadiusE]IPLSimulationInputs.occlusionRadius[/url]. | ||
</member> | ||
<member name="occlusion_samples" type="int" setter="set_occlusion_samples" getter="get_occlusion_samples" default="32"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N19IPLSimulationInputs19numOcclusionSamplesE]IPLSimulationInputs.numOcclusionSamples. | ||
</member> | ||
<member name="reflection" type="bool" setter="set_reflection_on" getter="is_reflection_on" default="false"> | ||
Whether SteamAudio reflection is on. | ||
</member> | ||
<member name="transmission_rays" type="int" setter="set_transmission_rays" getter="get_transmission_rays" default="16"> | ||
See [url=https://valvesoftware.github.io/steam-audio/doc/capi/simulation.html#_CPPv4N19IPLSimulationInputs19numTransmissionRaysE]IPLSimulationInputs.numTransmissionRays[/url]. | ||
</member> | ||
</members> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioServer" inherits="Object" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
This is a singleton that handles all SteamAudio global state. You should not interact with it directly. | ||
</brief_description> | ||
<description> | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<methods> | ||
<method name="get_singleton" qualifiers="static"> | ||
<return type="SteamAudioServer" /> | ||
<description> | ||
</description> | ||
</method> | ||
<method name="tick"> | ||
<return type="void" /> | ||
<description> | ||
</description> | ||
</method> | ||
</methods> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioStream" inherits="AudioStream" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
You do not need to, and [b]should not[/b] assign this stream to your [SteamAudioPlayer], as the extension handles that for you. | ||
</brief_description> | ||
<description> | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
</class> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
<?xml version="1.0" encoding="UTF-8" ?> | ||
<class name="SteamAudioStreamPlayback" inherits="AudioStreamPlayback" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd"> | ||
<brief_description> | ||
This playback will contain an audio stream that you provided when configuring your Godot scene, and it will apply the SteamAudio effects configured in the corresponding [SteamAudioPlayer] to it. | ||
</brief_description> | ||
<description> | ||
</description> | ||
<tutorials> | ||
</tutorials> | ||
<methods> | ||
<method name="play_stream"> | ||
<return type="int" /> | ||
<param index="0" name="stream" type="AudioStream" /> | ||
<param index="1" name="from_offset" type="float" default="0" /> | ||
<param index="2" name="volume_db" type="float" default="0" /> | ||
<param index="3" name="pitch_scale" type="float" default="1.0" /> | ||
<description> | ||
</description> | ||
</method> | ||
</methods> | ||
</class> |
Oops, something went wrong.