Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
LethalVoiceRouter
Route game audio and incoming player voice to separate Windows outputs. Select outputs and your transmit microphone in the F8 menu. Optional Clear Voice controls. Windows only.
By JavaXia
CHANGELOG
변경 이력
현재 기준 버전은 0.5.0입니다. 이전 버전 항목은 해당 버전 당시의 동작을 기록하며, 현재 사용법과 검증 상태는 README와 문서 안내를 기준으로 확인합니다.
0.5.0
- 원본 모드 소스에 MIT 라이선스를 추가하고 배포 ZIP에 포함합니다.
- F8 마이크 입력 탭에서 송신 마이크를 선택하고, 선택한 장치의 입력 레벨을 막대로 확인할 수 있습니다. 음성 연결 전에는 레벨 확인용 임시 캡처를 사용하며, 기본값은 게임 내 마이크 설정 사용입니다.
- 음성 분리를 끄면 별도 음성 출력 장치 선택을 비활성화하고 게임 출력 선택에 따라 음성을 재생합니다.
- 출력 장치 목록에 현재 Windows 기본 출력 장치를 표시하고, 출력 상태와 장치 새로고침 UI를 정리했습니다. 사용하지 않는 장치 ID 복사 기능은 제거했습니다.
- F8 설정창의 강조색과 내부 패널 테두리를 정리하고, 토글 상태와 클리어 보이스 적용 정보를 더 읽기 쉽게 표시합니다. 문서의 두 설정 화면은 같은 해상도·언어의 현재 Unity UI 캡처로 맞췄습니다.
- 분리 음성 경로가 게임의 음소거·청취 제한을 보존하도록 수정하고, 클리어 보이스 런타임 수명 관리와 F8 Esc 입력 충돌을 보완했습니다.
- BepInEx 로그를 간결한 영어 상태 메시지로 정리하고 반복 로그를 줄였습니다.
- README, 설치 안내, 모드 매니저 배포 자료와 설정 화면 이미지를 최신 기능과 사용 흐름에 맞춰 정리했습니다.
0.4.0
- F8 설정창을 Esc로 닫을 때 게임의 일시정지 메뉴에도 입력이 전달되던 문제를 수정했습니다. 설정창을 닫으면 원래 입력 활성 상태를 복원합니다.
- Windows PowerShell 5.1에서 빌드·패키지 검사 스크립트의 한국어 파일명과 매니저 manifest 설명이 손상되던 인코딩 문제를 수정했습니다.
- Gale·r2modman·Thunderstore Mod Manager의 로컬 가져오기용
-modmanager.zip을 별도로 생성합니다. 이름·버전·BepInExPack 의존성·아이콘을 포함하고 기존 프로필 설정은 포함하지 않습니다. - 빌드에서 특정 Gale 프로필 경로 가정을 제거하고
-LethalConfigPath로 빌드용 API DLL을 지정할 수 있게 했습니다. - 배포 ZIP의 경로·구성·메타데이터·아이콘·DLL 버전과 두 배포본의 DLL 일치를 자동 검사합니다.
- README를 기능과 설치 순서 중심으로 줄이고 개발 안내를 분리했습니다. 매니저 설명과 아이콘·배너도 모드의 실제 동작을 보여 주도록 정리했습니다.
- 기본 꺼짐인 모노 전용 클리어 보이스를 추가했습니다. 활성화 변경은 게임 재시작 후 적용합니다.
- 송신 샘플에서 잡음 억제·RNNoise·AGC·AEC/AECM을 우회하고 음성 감지는 별도 복사본에서 수행합니다.
- Opus 목표 비트레이트를 6~300kbps로 조절하며 게임 Opus의 모노 상한인 300kbps를 기본 목표로 사용합니다. 실제 적용값을 표시합니다.
- 송수신 FEC 설정을 추가했습니다. 기본 켜짐이고 비트레이트와 함께 활성 상태에서 실시간 적용합니다. 꺼도 PLC는 유지합니다.
- 일반 대화의 비차폐 수신 필터를 10kHz에서 20kHz로 확장하고 무전기·차폐·수중 등의 상황 필터와 거리·방향 설정을 유지합니다.
- 기존 모노·48kHz·20ms 프레임과 프로토콜을 유지하며 페이로드 900바이트·중계 패킷 1,024바이트 제한을 적용합니다.
- F8에 출력 / 클리어 보이스 탭을 추가하고 LethalConfig·설정 예시·사용 안내를 갱신했습니다. 패치 실패 시 기존 음성 경로로 복구합니다.
- 기본 테스트 34개, 격리된 Unity 게임 복사본의 합성 검사 22개와 두 프로세스의 LAN 음성 왕복 3개 구성을 통과했습니다. 수신 합성 음성 1,514개를 모두 디코딩했으며 실제 마이크·청취 검증은 별도입니다.
- 클리어 보이스 단독 사용, 설정별 적용 시점, 호스트/비호스트 차이와 문제 해결을 안내에 반영하고 현재 검사 결과와 이전 실장치 검사 기록을 구분했습니다.
0.3.0
- F8 설정창에 게임 소리와 음성의 출력 장치 목록을 나란히 추가하고 각각 저장합니다.
- 게임 소리는 Windows 앱별 출력 정책으로 전환하여 배경음·환경음과 기존 게임의 믹싱·음량·공간 처리를 유지합니다. PC 전체의 기본 출력 장치는 바꾸지 않습니다.
- 게임 출력의 기본값은 기존 게임 출력입니다. 기존 출력 선택·정상 종료 시 변경 전 앱별 설정을 복원하고, 비정상 종료 기록은 다음 실행에서 복구를 시도합니다.
- 장치 오류·일부 역할 변경 실패 시 이전 설정을 복구합니다. 장치 검색과 앱별 출력 변경은 백그라운드에서 처리합니다.
- LethalConfig에 게임 출력 장치 선택을 추가하고, F8에 게임·음성 장치 ID 복사를 각각 제공합니다.
- 기존 음성 설정 키와 기본값을 유지합니다. 출력 버퍼와 음성 음량은 분리된 음성에만 적용합니다.
- 게임 출력 선택·복원·실패 시 되돌림·복구 파일 보존 테스트를 포함하여 기본 테스트 29개를 통과했습니다. 실제 게임 내 출력 전환과 청취 검증은 활성 출력 장치가 있는 환경에서 추가 확인이 필요합니다.
0.2.2
- 출력 장치 선택에서 Windows 기본 통신 장치를 제거했습니다. 새 기본값은 Windows 기본 출력 장치이며, 기존 통신 장치 설정은 실제 장치 ID로 이어서 사용합니다.
- 이전 통신 장치를 찾지 못하면 Windows 기본 출력 장치를 선택하고, 연결이 끊긴 개별 장치 ID는 보존하여 재연결을 시도합니다.
- F8 출력 버퍼 슬라이더에 10ms 단위 눈금과 해당 위치의 20·50·100·150·200 기준값 표시를 추가했습니다.
- LethalConfig에서도 출력 버퍼를 20~200ms 범위의 10ms 간격 슬라이더로 조절합니다.
- 기존 출력 버퍼 설정은 가장 가까운 10ms 값으로 맞추고, 변경값은 게임 재시작 없이 반영합니다.
- README에 배너·환경 배지·설정창 미리보기·FAQ·접이식 개발 안내를 추가하고, TXT 설치 안내를 번호와 구분선으로 정리했습니다.
- 설정 예시에
Output.DeviceName을 보완하고, 출력 버퍼와 최대 음성 대기열·재연결 중 동작·공간 효과의 검증 범위를 코드에 맞게 정정했습니다. - 현재 문서 목록과 검증 기준을 추가하고, 배포 ZIP에 문서와 표시용 이미지를 함께 포함합니다.
- ZIP의 README와 파일 목록을 설치자용 안내로 정리했습니다. 문서 링크를 ZIP의 상대 경로로 맞추고, 업데이트·제거·설정 초기화·문제 해결을 보완했습니다.
0.2.1
- 배포 ZIP에 간단한 한국어 설치 안내를 추가했습니다.
- 모드 이름을 Lethal Voice Router로 변경했습니다. F8 창 제목과 LethalConfig 표시 이름에도 적용했습니다.
- DLL, 소스 프로젝트와 설치 폴더, 배포 ZIP 이름을 LethalVoiceRouter로 맞췄습니다.
- 기존 설정을 이어서 사용하도록 플러그인 GUID와
io.lethalloopback.cfg파일명은 유지했습니다.
0.2.0
- F8 창을 게임과 같은 Unity UI/TextMeshPro 구성으로 교체했습니다.
- 게임의 3270 글꼴, 체크박스·테두리 스프라이트, 흰색 슬라이더와 주황색 선택 강조를 사용합니다.
- 한국어 글꼴은 설치된 LCKR/LCKRL의
font3270_Regular_SDF를 참조하며 글꼴 파일을 복제하거나 배포하지 않습니다. - LCKR/LCKRL이 없으면 게임의 기본 글꼴과 영문 UI를 사용합니다.
- 장치 목록과 출력 설정을 두 영역으로 배치하고, 화면 비율에 맞춰 창 크기를 조절합니다.
- 별도 입력 시스템을 사용해 F8 창을 조작하는 동안 뒤쪽 게임 메뉴가 함께 클릭되지 않게 했습니다.
0.1.1
- 설정창과 입력 처리를 BepInEx 로더에서 독립된 실행 오브젝트로 옮기고, 씬이 로드된 뒤 시작하도록 했습니다.
- F8 입력을 Input System 갱신 직후에도 확인하고, 키를 누르고 있는 동안 창이 중복으로 토글되지 않게 했습니다.
- LethalConfig 1.4.6에 장치 이름 선택 목록, 음량·버퍼·단축키 설정과 설정창 열기 버튼을 추가했습니다.
- LethalConfig에서 적용한 설정을 게임 재시작 없이 반영합니다.
- 장치 이름이 같아도 서로 다른 출력 장치를 선택할 수 있고, 연결 해제된 기존 장치 ID를 보존합니다.
0.1.0
- 다른 플레이어의 음성을 Windows의 별도 출력 장치로 전송합니다.
- F8 설정창에서 출력 장치, 음량, 버퍼 길이와 장애 시 동작을 바꿀 수 있습니다.
- 기본 출력 장치와 기본 통신 장치를 추적하고, 장치 오류 후 다시 연결합니다.
- 퇴장, 음성 소스 재사용, 출력 장치 변경 시 이전 음성 버퍼를 폐기합니다.
- 외부 실행 파일이나 가상 오디오 드라이버 없이 설치된 출력 장치를 사용합니다.