Voice Chat: Difference between revisions
No edit summary |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Unreal default voice chat== | |||
As soon as the second player join the session, this happens: | |||
APlayerState::RegisterPlayerWithSession() | |||
FOnlineSessionNull::RegisterPlayers() | |||
FOnlineSessionNull::RegisterVoice() | |||
prints "StartRemoteVoiceProcessing(%s) returned 0x%08X" | |||
Execute ToggleSpeak console command | |||
APlayerController::ToggleSpeaking() | |||
C:\UnrealEngine\Engine\Plugins\Online\OnlineSubsystemUtils\Source\OnlineSubsystemUtils\Private\VoiceInterfaceImpl.cpp | |||
??? FOnlineVoiceImpl::RegisterRemoteTalker() ??? | |||
UOnlineEngineInterfaceImpl::StartNetworkedVoice() | |||
FOnlineVoiceImpl::StartNetworkedVoice() | |||
FVoiceEngineImpl::StartLocalVoiceProcessing() | |||
FVoiceCaptureWindows::Start() | |||
Inside FVoiceCaptureWindows::Tick() | |||
FVoiceCaptureWindows::ProcessData() | |||
Inside FOnlineVoiceImpl::Tick() | |||
// Queue local packets for sending via the network | |||
ProcessLocalVoicePackets(); | |||
// Submit queued packets to audio system | |||
ProcessRemoteVoicePackets(); | |||
Determines which other connections should receive the voice packet | |||
UNetDriver::ReplicateVoicePacket() | |||
UNetConnection::ShouldReplicateVoicePacketFrom() | |||
Client receives the data through | |||
UNetConnection::ReceivedPacket() | |||
... | |||
UVoiceChannel::ReceivedBunch() | |||
== Unreal default voice properties == | |||
MaxLocalTalkers: Maximum permitted local talkers, default 1 | |||
MaxRemoteTalkers: Maximum permitted remote talkers, default 16 | |||
VoiceNotificationDelta: Time to wait for new data before triggering "not talking", default 0.2 seconds | |||
==Mumble== | |||
1) Install CMake | 1) Install CMake | ||
Line 15: | Line 61: | ||
My vcvars: E:\VisualStudio2022\VC\Auxiliary\Build\vcvars64.bat | My vcvars: E:\VisualStudio2022\VC\Auxiliary\Build\vcvars64.bat | ||
==Resources== | |||
Latest revision as of 22:37, 18 January 2023
Unreal default voice chat
As soon as the second player join the session, this happens:
APlayerState::RegisterPlayerWithSession()
FOnlineSessionNull::RegisterPlayers()
FOnlineSessionNull::RegisterVoice()
prints "StartRemoteVoiceProcessing(%s) returned 0x%08X"
Execute ToggleSpeak console command APlayerController::ToggleSpeaking() C:\UnrealEngine\Engine\Plugins\Online\OnlineSubsystemUtils\Source\OnlineSubsystemUtils\Private\VoiceInterfaceImpl.cpp ??? FOnlineVoiceImpl::RegisterRemoteTalker() ??? UOnlineEngineInterfaceImpl::StartNetworkedVoice() FOnlineVoiceImpl::StartNetworkedVoice() FVoiceEngineImpl::StartLocalVoiceProcessing() FVoiceCaptureWindows::Start()
Inside FVoiceCaptureWindows::Tick() FVoiceCaptureWindows::ProcessData()
Inside FOnlineVoiceImpl::Tick() // Queue local packets for sending via the network ProcessLocalVoicePackets(); // Submit queued packets to audio system ProcessRemoteVoicePackets();
Determines which other connections should receive the voice packet UNetDriver::ReplicateVoicePacket() UNetConnection::ShouldReplicateVoicePacketFrom()
Client receives the data through UNetConnection::ReceivedPacket() ... UVoiceChannel::ReceivedBunch()
Unreal default voice properties
MaxLocalTalkers: Maximum permitted local talkers, default 1 MaxRemoteTalkers: Maximum permitted remote talkers, default 16 VoiceNotificationDelta: Time to wait for new data before triggering "not talking", default 0.2 seconds
Mumble
1) Install CMake
2) Install vcpkg https://vcpkg.io/en/getting-started.html
3) vcpkg --triplet x64-windows-static-md install opus
4) cmake -G "Visual Studio 17 2022" . -DCMAKE_GENERATOR_PLATFORM=x64 -DOpus_DIR:PATH="F:\My Programs\Develop\CMake\share\cmake-3.25\Modules\Opus"
cmake -G "Visual Studio 17 2022" . -DCMAKE_GENERATOR_PLATFORM=x64 -DOpus_DIR:PATH="F:\My Programs\Develop\CMake\share\cmake-3.25\Modules\Opus" -DCMAKE_TOOLCHAIN_FILE="F:\My Programs\Develop\vcpkg\vcpkg\scripts\buildsystems\vcpkg.cmake"
My vcvars: E:\VisualStudio2022\VC\Auxiliary\Build\vcvars64.bat
Resources
https://forums.unrealengine.com/t/voice-chat-in-multiplayer/425089
https://couchlearn.com/positional-voice-chat-using-blueprints-in-ue4/
https://www.youtube.com/watch?v=07hi0B7Dnwo
https://docs.unrealengine.com/5.0/en-US/voice-chat-interface-in-unreal-engine/
C:\UnrealEngine\Engine\Source\Runtime\Online\Voice\Private\VoiceModule.cpp
C:\UnrealEngine\Engine\Source\Runtime\Online\Voice\Private\VoiceCodecOpus.h
void APlayerController::ToggleSpeaking
Capture volume: https://www.youtube.com/watch?v=nMNou_FEBx0