From 68ddd78a6f7cba8ff106688bdefad5bd4484a0db Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Tue, 7 Jul 2026 11:20:17 +0800 Subject: [PATCH] feat(audio): add footstep sounds and fix audio listener orientation --- assets/sound/block/dirt/walk.ogg | Bin 0 -> 5999 bytes assets/sound/block/grass_block/walk.ogg | Bin 0 -> 12138 bytes assets/sound/block/leaf/walk.ogg | Bin 0 -> 7834 bytes assets/sound/block/sand/place.wav | Bin 0 -> 119004 bytes assets/sound/block/snowy_grass_block/walk.ogg | Bin 0 -> 8017 bytes assets/sound/block/stone/place.ogg | Bin 0 -> 10288 bytes assets/sound/block/stone/walk.ogg | Bin 0 -> 5567 bytes include/Cubed/audio/audio_engine.hpp | 6 ++- include/Cubed/audio/audio_error.hpp | 15 ++++++ include/Cubed/gameplay/client_player.hpp | 3 ++ include/Cubed/gameplay/client_world.hpp | 2 +- src/app.cpp | 3 +- src/audio/audio_buffer.cpp | 19 ++++++- src/audio/audio_engine.cpp | 27 ++++++++-- src/audio/audio_loader.cpp | 18 +++++-- src/audio/audio_source.cpp | 15 +++++- src/audio/sound_manager.cpp | 4 +- src/gameplay/client_player.cpp | 50 ++++++++++++++---- src/gameplay/client_world.cpp | 2 + 19 files changed, 137 insertions(+), 27 deletions(-) create mode 100644 assets/sound/block/dirt/walk.ogg create mode 100644 assets/sound/block/grass_block/walk.ogg create mode 100644 assets/sound/block/leaf/walk.ogg create mode 100644 assets/sound/block/sand/place.wav create mode 100644 assets/sound/block/snowy_grass_block/walk.ogg create mode 100644 assets/sound/block/stone/place.ogg create mode 100644 assets/sound/block/stone/walk.ogg create mode 100644 include/Cubed/audio/audio_error.hpp diff --git a/assets/sound/block/dirt/walk.ogg b/assets/sound/block/dirt/walk.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a88f1d1902992e2cd8a387aaab678ade869c57b3 GIT binary patch literal 5999 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 literal 0 HcmV?d00001 diff --git a/assets/sound/block/grass_block/walk.ogg b/assets/sound/block/grass_block/walk.ogg new file mode 100644 index 0000000000000000000000000000000000000000..67cff62f71638953f66640af2588f2c8c4a2771b GIT binary patch literal 12138 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 L4mz#Ca|8Yl$?2Gs literal 0 HcmV?d00001 diff --git a/assets/sound/block/leaf/walk.ogg b/assets/sound/block/leaf/walk.ogg new file mode 100644 index 0000000000000000000000000000000000000000..0f71d2bd6942a32b445d7a09f091f568482f1d62 GIT binary patch literal 7834 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 literal 0 HcmV?d00001 diff --git a/assets/sound/block/sand/place.wav b/assets/sound/block/sand/place.wav new file mode 100644 index 0000000000000000000000000000000000000000..97f8433eb1a559d12aa61573e4f3d8c7fb28498c GIT binary patch literal 119004 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

j_;ziu)X@Q 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 literal 0 HcmV?d00001 diff --git a/assets/sound/block/stone/place.ogg b/assets/sound/block/stone/place.ogg new file mode 100644 index 0000000000000000000000000000000000000000..ddf5ac6a2d5e0bd76b0c5931e35e78ead9df7c87 GIT binary patch literal 10288 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 +namespace Cubed { +inline void check_al_error( + std::source_location loaction = std::source_location::current()) { + ALenum error = alGetError(); + if (error != AL_NO_ERROR) { + Logger::error("File {} Line {} Function {} OpenAL Error {} ", + loaction.file_name(), loaction.line(), + loaction.function_name(), alGetString(error)); + } +} +} // namespace Cubed diff --git a/include/Cubed/gameplay/client_player.hpp b/include/Cubed/gameplay/client_player.hpp index d03b991..39ef411 100644 --- a/include/Cubed/gameplay/client_player.hpp +++ b/include/Cubed/gameplay/client_player.hpp @@ -123,6 +123,8 @@ private: float m_angle{0.0f}; float m_walk_time{0.0f}; + float m_footstep_timer = 0.0f; + mutable std::shared_mutex m_player_pos_mutex; mutable std::shared_mutex m_chunk_pos_mutex; ChunkPosSet m_player_chunk_pos_set; @@ -134,6 +136,7 @@ private: void update_y_move(glm::vec3& player_pos); void update_z_move(glm::vec3& player_pos); void update_player_chunk(); + void play_walk_sound(float dt); Gait compute_gait() const; }; } // namespace Cubed diff --git a/include/Cubed/gameplay/client_world.hpp b/include/Cubed/gameplay/client_world.hpp index 2ea9316..7ecb736 100644 --- a/include/Cubed/gameplay/client_world.hpp +++ b/include/Cubed/gameplay/client_world.hpp @@ -90,7 +90,7 @@ public: bool is_receive_exit(); int chunk_size() const; static AABB get_block_aabb(const glm::ivec3& pos); - + AudioEngine& get_audio(); template void register_timer(std::string_view id, TickType threshold, Fn&& f) { m_timers.emplace(std::piecewise_construct, diff --git a/src/app.cpp b/src/app.cpp index 1d7d611..f5b72a5 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -359,7 +359,8 @@ void App::update() { m_renderer.update_fov(fov + 5.0f); } } - m_audio.update_listener(m_camera.get_camera_pos()); + m_audio.update_listener(m_camera.get_camera_pos(), + m_camera.get_camera_front(), glm::vec3(0, 1, 0)); m_audio.update(dt); m_renderer.update(dt); } diff --git a/src/audio/audio_buffer.cpp b/src/audio/audio_buffer.cpp index 269759d..8f26068 100644 --- a/src/audio/audio_buffer.cpp +++ b/src/audio/audio_buffer.cpp @@ -1,5 +1,6 @@ #include "Cubed/audio/audio_buffer.hpp" +#include "Cubed/audio/audio_error.hpp" namespace Cubed { AudioBuffer::AudioBuffer(const AudioData& data) { alGenBuffers(1, &m_buffer); @@ -12,6 +13,9 @@ float AudioBuffer::duration() const { return m_duration; } uint32_t AudioBuffer::channels() const { return m_channels; } void AudioBuffer::set_data(const AudioData& data) { + Logger::info("buffer={} valid={}", m_buffer, (int)alIsBuffer(m_buffer)); + + Logger::info("buffer={} isBuffer={}", m_buffer, (int)alIsBuffer(m_buffer)); ALenum format; if (data.channels == 1) { format = AL_FORMAT_MONO16; @@ -19,8 +23,19 @@ void AudioBuffer::set_data(const AudioData& data) { format = AL_FORMAT_STEREO16; } m_channels = data.channels; - alBufferData(m_buffer, format, data.pcm.data(), data.pcm.size(), - data.sample_rate); + + Logger::info("channels={} rate={} samples={} bytes={} format={}", + data.channels, data.sample_rate, data.pcm.size(), + data.pcm.size() * sizeof(int16_t), format); + alBufferData(m_buffer, format, data.pcm.data(), + static_cast(data.pcm.size() * sizeof(int16_t)), + static_cast(data.sample_rate)); + check_al_error(); + ALint size = 0; + alGetBufferi(m_buffer, AL_SIZE, &size); + check_al_error(); + + Logger::info("buffer size={}", size); m_duration = static_cast(data.pcm.size()) / (data.channels * data.sample_rate); } diff --git a/src/audio/audio_engine.cpp b/src/audio/audio_engine.cpp index 79531fa..ff644f1 100644 --- a/src/audio/audio_engine.cpp +++ b/src/audio/audio_engine.cpp @@ -1,5 +1,6 @@ #include "Cubed/audio/audio_engine.hpp" +#include "Cubed/tools/cubed_assert.hpp" #include "Cubed/tools/log.hpp" #include @@ -58,7 +59,8 @@ void AudioEngine::init() { void AudioEngine::play_bgm() { m_bgm->play(); } -void AudioEngine::play_3d(const std::string& sound, const glm::vec3& pos) { +void AudioEngine::play_3d(const std::string& sound, const glm::vec3& pos, + bool check) { if (!m_pool) { Logger::error("Source Pool is nullptr"); return; @@ -67,11 +69,28 @@ void AudioEngine::play_3d(const std::string& sound, const glm::vec3& pos) { if (!source) { Logger::error("Source is Full"); } - auto& buffer = m_sounds.get_buffer(sound); - source->play_3d(buffer, pos); + + try { + auto& buffer = m_sounds.get_buffer(sound); + source->play_3d(buffer, pos); + } catch (const std::exception& e) { + if (check) { + ASSERT_MSG(false, e.what()); + } + } } -void AudioEngine::update_listener(glm::vec3 listener_pos) {} +void AudioEngine::update_listener(const glm::vec3& pos, + const glm::vec3& forward, + const glm::vec3& up) { + alListener3f(AL_POSITION, pos.x, pos.y, pos.z); + + float orientation[] = {forward.x, forward.y, forward.z, + + up.x, up.y, up.z}; + + alListenerfv(AL_ORIENTATION, orientation); +} void AudioEngine::update(float dt) { for (auto& [key, fade] : m_fade_map) { diff --git a/src/audio/audio_loader.cpp b/src/audio/audio_loader.cpp index 5eaa762..8ad8e6d 100644 --- a/src/audio/audio_loader.cpp +++ b/src/audio/audio_loader.cpp @@ -1,6 +1,6 @@ #include "Cubed/audio/audio_loader.hpp" -#include "Cubed/tools/cubed_assert.hpp" +#include "Cubed/tools/log.hpp" #define STB_VORBIS_IMPLEMENTATION #include "stb/stb_vorbis.h" @@ -14,7 +14,7 @@ namespace Cubed { AudioData AudioLoader::load(const std::filesystem::path& path) { if (!fs::is_regular_file(path)) { std::string err = std::format("Path {} is not a file", path.string()); - ASSERT_MSG(false, err); + throw std::runtime_error(err); } auto ext = path.extension().string(); @@ -46,6 +46,8 @@ AudioData AudioLoader::load_wav(const std::filesystem::path& path) { drwav_read_pcm_frames_s16(&wav, wav.totalPCMFrameCount, data.pcm.data()); drwav_uninit(&wav); + Logger::info("{} channels={} rate={} samples={}", path.filename().string(), + data.channels, data.sample_rate, data.pcm.size()); return data; } @@ -68,7 +70,8 @@ AudioData AudioLoader::load_mp3(const std::filesystem::path& path) { data.pcm.assign(pcm, pcm + frame_count * config.channels); drmp3_free(pcm, nullptr); - + Logger::info("{} channels={} rate={} samples={}", path.filename().string(), + data.channels, data.sample_rate, data.pcm.size()); return data; } @@ -90,7 +93,8 @@ AudioData AudioLoader::load_flac(const std::filesystem::path& path) { data.pcm.assign(pcm, pcm + frame_count * channels); drflac_free(pcm, nullptr); - + Logger::info("{} channels={} rate={} samples={}", path.filename().string(), + data.channels, data.sample_rate, data.pcm.size()); return data; } @@ -117,7 +121,7 @@ AudioData AudioLoader::load_ogg(const std::filesystem::path& path) { std::vector pcm(total_frames * channels); int frames_read = stb_vorbis_get_samples_short_interleaved( - vorbis, channels, pcm.data(), total_frames); + vorbis, channels, pcm.data(), pcm.size()); if (frames_read < total_frames) { pcm.resize(frames_read * channels); @@ -129,6 +133,10 @@ AudioData AudioLoader::load_ogg(const std::filesystem::path& path) { data.channels = channels; data.sample_rate = sample_rate; data.pcm = std::move(pcm); + + Logger::info("{} channels={} rate={} samples={}", path.filename().string(), + data.channels, data.sample_rate, data.pcm.size()); + return data; } diff --git a/src/audio/audio_source.cpp b/src/audio/audio_source.cpp index 5a0766a..063ec82 100644 --- a/src/audio/audio_source.cpp +++ b/src/audio/audio_source.cpp @@ -1,5 +1,6 @@ #include "Cubed/audio/audio_source.hpp" +#include "Cubed/audio/audio_error.hpp" #include "Cubed/tools/log.hpp" #include @@ -35,9 +36,20 @@ void AudioSource::set_buffer_3d(const AudioBuffer& buffer, stop(); } m_duration = buffer.duration(); - + Logger::info("buffer={}", buffer.buffer()); + Logger::info("source={} isSource={}", m_source, alIsSource(m_source)); + Logger::info("buffer={} isBuffer={}", buffer.buffer(), + alIsBuffer(buffer.buffer())); alSourcei(m_source, AL_BUFFER, buffer.buffer()); + check_al_error(); alSource3f(m_source, AL_POSITION, pos.x, pos.y, pos.z); + check_al_error(); + + alSourcef(m_source, AL_REFERENCE_DISTANCE, 4.0f); + + alSourcef(m_source, AL_ROLLOFF_FACTOR, 1.0f); + + alSourcef(m_source, AL_MAX_DISTANCE, 100.0f); } void AudioSource::set_loop(bool on) { @@ -64,6 +76,7 @@ void AudioSource::play_2d(const AudioBuffer& buffer) { void AudioSource::play_3d(const AudioBuffer& buffer, const glm::vec3& pos) { set_buffer_3d(buffer, pos); play(); + check_al_error(); } void AudioSource::stop() { alSourceStop(m_source); } diff --git a/src/audio/sound_manager.cpp b/src/audio/sound_manager.cpp index 29eaf51..c57fd16 100644 --- a/src/audio/sound_manager.cpp +++ b/src/audio/sound_manager.cpp @@ -1,7 +1,7 @@ #include "Cubed/audio/sound_manager.hpp" #include "Cubed/audio/audio_loader.hpp" -#include "Cubed/tools/cubed_assert.hpp" +#include "Cubed/tools/log.hpp" #include namespace fs = std::filesystem; @@ -38,7 +38,7 @@ const AudioBuffer& SoundManager::get_buffer(const std::string& name) { return load(name); } catch (const std::exception& e) { std::string err = std::format("Can't Find Buffer {}", name); - ASSERT_MSG(false, err); + throw std::runtime_error(err); } } diff --git a/src/gameplay/client_player.cpp b/src/gameplay/client_player.cpp index da46ecc..5731a8e 100644 --- a/src/gameplay/client_player.cpp +++ b/src/gameplay/client_player.cpp @@ -1,9 +1,9 @@ #include "Cubed/gameplay/client_player.hpp" +#include "Cubed/audio/audio_engine.hpp" #include "Cubed/config.hpp" #include "Cubed/debug_collector.hpp" #include "Cubed/gameplay/client_world.hpp" - namespace Cubed { ClientPlayer::ClientPlayer(ClientWorld& world) : m_world(world) {} ClientPlayer::~ClientPlayer() {} @@ -144,42 +144,35 @@ void ClientPlayer::update_player_move_state(int key, int action) { case GLFW_KEY_W: if (action == GLFW_PRESS) { m_move_state.forward = true; - m_moving = true; } if (action == GLFW_RELEASE) { m_move_state.forward = false; - m_moving = false; + m_sprinting = false; } break; case GLFW_KEY_S: if (action == GLFW_PRESS) { m_move_state.back = true; - m_moving = true; } if (action == GLFW_RELEASE) { m_move_state.back = false; - m_moving = false; } break; case GLFW_KEY_A: if (action == GLFW_PRESS) { m_move_state.left = true; - m_moving = true; } if (action == GLFW_RELEASE) { m_move_state.left = false; - m_moving = false; } break; case GLFW_KEY_D: if (action == GLFW_PRESS) { m_move_state.right = true; - m_moving = true; } if (action == GLFW_RELEASE) { m_move_state.right = false; - m_moving = false; } break; case GLFW_KEY_SPACE: @@ -223,6 +216,8 @@ void ClientPlayer::update_player_move_state(int key, int action) { } break; } + m_moving = m_move_state.forward || m_move_state.back || m_move_state.left || + m_move_state.right; } void ClientPlayer::update_front_vec(float offset_x, float offset_y) { @@ -391,6 +386,7 @@ void ClientPlayer::update_move(float delta_time) { m_player_pos = player_pos; } update_player_chunk(); + play_walk_sound(delta_time); } void ClientPlayer::update_x_move(glm::vec3& player_pos) { @@ -503,6 +499,42 @@ void ClientPlayer::update_player_chunk() { } } +void ClientPlayer::play_walk_sound(float dt) { + if (!m_moving || is_fly) { + return; + } + + m_footstep_timer += dt; + if (m_sprinting) { + const float WALK_INTERVAL = 0.3f; + + if (m_footstep_timer < WALK_INTERVAL) { + return; + } + } else { + const float WALK_INTERVAL = 0.45f; + + if (m_footstep_timer < WALK_INTERVAL) { + return; + } + } + + m_footstep_timer = 0.0f; + + glm::ivec3 block = glm::floor(m_player_pos); + block.y -= 1; + BlockType id = m_world.get_block_tpye(block); + Logger::info("player Block {} Walk Sound", id); + if (id == 0) { + return; + } + std::string name = BlockManager::name_form_id(id); + std::string sound = "block/" + name + "/walk.ogg"; + auto& audio = m_world.get_audio(); + audio.play_3d(sound, m_player_pos); + Logger::info("Player block {} walk sound", name); +} + Gait ClientPlayer::compute_gait() const { if (m_xz_speed < 0.01f) return Gait::STOP; diff --git a/src/gameplay/client_world.cpp b/src/gameplay/client_world.cpp index ba487fe..852010a 100644 --- a/src/gameplay/client_world.cpp +++ b/src/gameplay/client_world.cpp @@ -607,6 +607,8 @@ AABB ClientWorld::get_block_aabb(const glm::ivec3& pos) { static_cast(z + 1)}}; } +AudioEngine& ClientWorld::get_audio() { return m_audio; } + void ClientWorld::request_exit() { if (m_receive_exit) { return;