FH6의 로컬 저장 데이터와 썸네일 캐시를 분석하여 저장된 리버리, 튜닝, 차량 및 제작자 정보를 확인하고 관리할 수 있는 Windows용 데스크톱 프로그램입니다.
리버리와 튜닝이 많아졌을 때 게임 안에서 하나씩 확인해야 하는 불편을 줄이고, 저장된 콘텐츠를 검색·정렬·분류하거나 원하는 리버리의 게임 내 위치까지 이동하는 작업을 보조하는 것을 목적으로 합니다.
현재 프로그램은 단일 Windows 실행 파일(.exe) 형태로 배포되며 Python이나 별도의 패키지 설치가 필요하지 않습니다.
Caution
이 프로젝트는 비공식 커뮤니티 도구이며 Microsoft, Xbox, Turn 10 Studios, Playground Games 또는 Forza와 제휴 관계가 없으며 해당 기관의 보증을 받지 않았습니다.
FH6의 로컬 파일 구조를 분석하여 동작하므로 게임 업데이트, 플랫폼, 사용자 환경 또는 캐시 상태에 따라 일부 기능의 동작이 달라질 수 있습니다.
캐시 폴더를 직접 관리하는 경우 삭제보다는 이름 변경 등을 이용해 기존 데이터를 백업하는 것을 권장합니다.
저장된 리버리를 카드 형태로 확인하고 관리할 수 있습니다.
주요 기능:
- 리버리가 적용된 차량 정보 확인
- 리버리명 확인
- 제작자 정보 확인
- 리버리 설명 등 파일에 기록된 상세 정보 확인
- 차량명, 리버리명, 제작자 기준 검색
- 차량, 제작자, 저장 시점 등을 기준으로 정렬
- 동일 차량의 리버리 그룹 표시
- 중복 리버리 확인
- 리버리 썸네일 확대
- 사용자 메모
- 원 / 삼각형 / X 상태 분류
- 리버리 숨김
- 숨김 목록 별도 확인
- 여러 상태 조건을 이용한 필터링
- 차량명, 리버리명, 제작자명을 클릭하여 클립보드에 복사
중복 리버리는 C_livery 파일의 실제 내용이 동일한 경우를 기준으로 판정합니다.
원 / 삼각형 / X, 메모 및 숨김 정보는 FH6 세이브 파일이 아닌 FH6 Assistant의 로컬 설정에 저장됩니다.
리버리는 다음 두 종류로 나누어 확인할 수 있습니다.
- 내 디자인 리버리
- 경매장 리버리
두 모드는 각각 별도로 표시되며 동시에 활성화되지 않습니다.
FH6의 일반적인 내 디자인에 저장된 리버리를 대상으로 합니다.
차량, 리버리명, 제작자, 썸네일 등의 정보를 분석하여 표시합니다.
경매장에서 구매한 차량에 포함된 SoulBoundLivery를 분석하여 별도의 목록으로 확인할 수 있습니다.
경매장 리버리 분석에는 다음 데이터가 사용됩니다.
- FH6 세이브 데이터의
SoulBoundLivery CacheThumbnailsCacheThumbnails의.manifest- 차량 식별 정보
- 리버리 식별 정보
- 썸네일 GUID 매핑 정보
.manifest에 필요한 매핑 정보가 존재하는 경우 실제 WebP 썸네일과 연결하여 표시합니다.
Important
경매장 리버리 기능을 처음 사용하는 경우 기존 CacheThumbnails 폴더를 바로 삭제하기보다는 폴더 이름을 변경하여 백업한 뒤 FH6를 실행하는 것을 권장합니다.
이후 리버리가 적용된 경매장 구매 차량에 한 번 탑승하고 FH6 Assistant에서 전체 새로고침을 실행해 주세요.
Xbox App / Microsoft Store와 Steam은 CacheThumbnails 경로가 다를 수 있으므로 프로그램에 지정된 캐시 경로가 실제 FH6에서 사용하는 위치와 일치하는지 확인해야 합니다.
권장 순서:
-
FH6를 종료합니다.
-
기존
CacheThumbnails폴더를 찾습니다. -
폴더를 삭제하지 않고 이름을 변경합니다.
예:
CacheThumbnails ↓ CacheThumbnails_backup -
FH6를 실행합니다.
-
리버리가 적용된 경매장 구매 차량에 실제로 한 번 탑승합니다.
-
FH6가 새로운
CacheThumbnails데이터를 생성하도록 합니다. -
FH6 Assistant에서 새 캐시 경로를 확인합니다.
-
전체 새로고침을 실행합니다. -
경매장 리버리를 선택합니다.
기존 캐시를 삭제하지 않고 이름을 변경해 두면 필요한 경우 원래 폴더를 다시 복원할 수 있습니다.
현재 경매장 차량의 SoulBoundLivery는 차량과 리버리 자체를 식별할 수 있지만, 리버리 제목과 제작자명을 저장하는 FH6 내부 데이터 구조와 연결 관계는 아직 완전히 분석되지 않았습니다.
따라서 현재 Beta 버전에서는 다음 정보가 실제 값이 아닌 기본값으로 표시될 수 있습니다.
- 리버리 제목
- 제작자명
이는 해당 정보가 FH6 데이터에 존재하지 않는다는 의미가 아니라, 현재 FH6 Assistant에서 해당 값을 안정적으로 추출할 수 있는 데이터 구조가 아직 확인되지 않았다는 의미입니다.
실제 WebP 썸네일 파일이 CacheThumbnails에 존재하더라도 .manifest에 logical name과 GUID 사이의 매핑 정보가 기록되지 않은 상태에서는 정확한 썸네일을 연결할 수 없습니다.
이 경우 경매장 리버리 자체는 인식되지만 썸네일은 다음과 같이 표시될 수 있습니다.
No thumbnail
FH6에서 리버리가 적용된 경매장 차량에 탑승한 뒤 .manifest의 매핑 정보가 구성되면 해당 썸네일을 식별할 수 있습니다.
저장된 튜닝 파일을 분석하여 파일에 기록된 정보를 읽기 전용으로 확인할 수 있습니다.
확인 가능한 정보:
- 적용 차량
- 튜닝 제작자
- 장착 부품 식별 번호
- 튜닝 파일에 기록된 세부 설정값
FH6 Assistant는 튜닝 파일 자체를 수정하지 않습니다.
FH6 Assistant는 FH6의 차량 식별 번호(Car ID)를 실제 차량 정보와 연결하기 위한 차량 DB를 사용합니다.
차량 DB에 아직 등록되지 않은 차량이나 사용자가 직접 이름을 지정하고 싶은 Car ID에 사용자 정의 차량명을 설정할 수 있습니다.
FH6 업데이트 직후처럼 차량 DB에 아직 차량 정보가 없는 경우에도 직접 차량명을 지정하여 사용할 수 있습니다.
프로그램에서 사용하는 차량 DB의 최신 데이터를 확인할 수 있습니다.
새로운 차량이 추가되어 기존 DB에서 차량명이 확인되지 않는 경우 사용할 수 있습니다.
차량 ID DB를 구성하는 데 사용된 원본 자료를 브라우저에서 확인할 수 있습니다.
원본 데이터 자체에 일부 차량의 연도 또는 기타 정보가 정확하지 않은 경우가 있을 수 있습니다.
리버리와 튜닝 데이터를 다양한 방식으로 정리할 수 있습니다.
차량명, 리버리명, 제작자 등 표시되는 정보를 기준으로 검색할 수 있습니다.
콘텐츠 종류에 따라 다음과 같은 기준을 사용할 수 있습니다.
- 차량
- 제작자
- 저장 시점
같은 차량에 적용되는 리버리를 프로그램 화면에서 묶어서 볼 수 있습니다.
동일 차량 그룹화는 FH6 Assistant의 표시 순서에만 적용되며 실제 FH6 게임 내 리버리 배열 순서를 변경하지 않습니다.
리버리에 사용자 상태를 지정하여 관리할 수 있습니다.
사용 가능한 상태:
- 원
- 삼각형
- X
- 미분류
- 메모 있음
- 메모 없음
- 중복 리버리
- 숨김
- 미적용 경매장 리버리
필터 조건을 이용하여 필요한 리버리만 표시할 수 있습니다.
일반 목록에서 지속적으로 확인할 필요가 없는 리버리는 숨김 상태로 지정할 수 있습니다.
숨김 처리된 리버리는 일반 목록에서 제외됩니다.
숨긴 리버리는 다음 필터를 통해 다시 확인할 수 있습니다.
필터 → 숨김
숨김 목록에서는 다시 숨김을 해제할 수 있습니다.
숨김 기능은 실제 FH6 리버리를 삭제하거나 수정하지 않으며 FH6 Assistant의 로컬 설정에만 저장됩니다.
숨김 상태의 리버리는 게임 내 위치 이동 계산에서도 제외됩니다.
FH6에서 다음 화면까지 이동한 뒤 사용할 수 있습니다.
집 → 자동차 → 디자인 및 도색 → 내 디자인
리버리 카드의 이동 버튼을 사용하면 프로그램이 계산한 위치까지 FH6에 방향키 또는 필요한 입력을 자동으로 전송합니다.
주요 기능:
- FH6 리버리 목록의 첫 번째 항목을 기준으로 위치 계산
- 선택한 리버리 위치까지 자동 이동
- 입력 시작 전 대기 시간 설정
- 방향키 입력 간격 설정
- 마우스 휠 입력 간격 설정
- FH6 창 자동 활성화
- 삭제 목적 이동
- 적용 목적 이동
- 삭제 대상으로 처리한 항목을 이후 위치 계산에서 제외
현재 FH6 전체 화면 환경에서 동작을 확인하고 있습니다.
삭제 목적으로 이동한 리버리는 현재 FH6 Assistant 목록에서 제외되며 이후 위치 계산에도 반영됩니다.
게임에서 실제 삭제를 취소한 경우에는 FH6 Assistant의 목록과 실제 게임 목록이 달라질 수 있습니다.
이 경우 전체 새로고침을 실행하여 정보를 다시 구성해 주세요.
상단의 전체 새로고침을 사용하면 현재 지정된 세이브 및 캐시 데이터를 다시 분석합니다.
다음 정보를 다시 확인합니다.
- FH6 세이브 데이터
- 리버리 목록
- 튜닝 목록
- CacheThumbnails
.manifest- 경매장 리버리 상태
- 썸네일 매칭
- 현재 표시 목록
다음과 같은 FH6 Assistant 사용자 정보는 유지됩니다.
- 원 / 삼각형 / X
- 메모
- 숨김 상태
- 프로그램 UI 관련 설정
- GitHub의 Releases에서 최신 FH6 Assistant 실행 파일을 내려받습니다.
- 다운로드한
.exe파일을 실행합니다. 세이브 폴더 선택을 눌러 FH6 로컬 저장 폴더를 지정합니다.- 경매장 리버리 기능을 사용하는 경우
캐시 경로 선택에서 FH6의CacheThumbnails위치를 확인합니다.
별도의 설치 프로그램은 필요하지 않습니다.
다음 항목도 설치할 필요가 없습니다.
- Python
- PySide6
- 별도 런타임 패키지
현재 프로그램은 단일 EXE 형태로 배포됩니다.
Note
현재 실행 파일에는 디지털 코드 서명이 적용되어 있지 않으므로 Windows SmartScreen에서 알 수 없는 게시자 또는 보호 경고가 표시될 수 있습니다.
FH6 Assistant는 사용자가 지정한 FH6 로컬 저장 폴더를 분석합니다.
Xbox App / Microsoft Store 환경에서는 다음과 같은 형태의 경로가 사용될 수 있습니다.
C:\XboxGames\GameSave\pgs\u_XXXXXXXXXXXX_XXXXXX
환경에 따라 다음과 같은 하위 폴더를 직접 선택할 수도 있습니다.
current
숫자로 표시된 버전 폴더
ContainersRoot
Steam과 Xbox App / Microsoft Store 버전은 실제 세이브 위치가 서로 다를 수 있으므로 사용 중인 FH6의 실제 세이브 폴더를 선택해야 합니다.
경매장 리버리와 썸네일 분석에는 FH6의 CacheThumbnails 폴더가 사용됩니다.
대표적으로 다음 위치를 사용합니다.
%LOCALAPPDATA%\ForzaHorizon6\LocalStorage_Cache\CacheThumbnails
FH6 패키지의 LocalCache 내부에 위치할 수 있습니다.
대표적인 구조:
%LOCALAPPDATA%\Packages\<FH6 Package>\LocalCache\Local\LocalStorage_Cache\CacheThumbnails
패키지명이나 실제 저장 위치는 설치 환경에 따라 달라질 수 있습니다.
FH6 Assistant의 캐시 경로 선택을 이용하여 직접 지정할 수 있습니다.
경매장 리버리 분석을 위해서는 실제 FH6에서 사용 중이며 .manifest 파일이 존재하는 CacheThumbnails 폴더를 선택해야 합니다.
캐시 폴더가 존재하지 않거나 올바르지 않더라도 프로그램 자체는 실행할 수 있지만 경매장 리버리의 일부 분석 및 썸네일 표시 기능은 사용할 수 없습니다.
FH6 Assistant의 사용자 설정은 FH6 세이브와 별도로 관리됩니다.
%LOCALAPPDATA%\FH6GarageAnalyzer\ui_preferences.json
화면 표시, 그룹화 등 UI 관련 설정을 저장합니다.
%LOCALAPPDATA%\FH6GarageAnalyzer\annotations.json
다음과 같은 사용자 관리 정보를 저장합니다.
- 원
- 삼각형
- X
- 메모
- 숨김 상태
이 파일들은 FH6의 실제 게임 저장 데이터와 별도로 관리됩니다.
FH6 Assistant의 일반적인 검색, 정렬, 필터링, 분석 및 표시 기능은 FH6의 게임 저장 파일을 수정하지 않습니다.
프로그램은 다음 데이터를 분석 목적으로 읽습니다.
- FH6 로컬 세이브 데이터
- 리버리 데이터
- 튜닝 데이터
- CacheThumbnails
- WebP 썸네일
.manifest
리버리와 튜닝 썸네일은 표시 및 분석 목적으로 읽으며 원본 썸네일 파일을 수정하지 않습니다.
다음 사용자 관리 정보는 FH6 Assistant 자체 설정 파일에 저장됩니다.
- 원 / 삼각형 / X
- 메모
- 숨김
- UI 관련 설정
FH6 게임 데이터와 FH6 Assistant의 사용자 설정 데이터는 서로 별도로 관리됩니다.
CacheThumbnails 폴더 이름 변경이나 백업과 같은 작업은 사용자가 직접 수행하는 작업이며, 작업 전 대상 경로와 백업 상태를 확인하는 것을 권장합니다.
- Windows 10
- Windows 11
- FH6 로컬 저장 폴더에 대한 읽기 권한
- 경매장 리버리 기능 사용 시 FH6
CacheThumbnails폴더에 대한 읽기 권한
현재 배포되는 v1.3.2 Beta에는 FH6의 내부 로컬 데이터 구조를 분석하여 동작하는 기능이 포함되어 있습니다.
특히 다음 정보는 FH6 업데이트, 플랫폼 또는 사용자 환경에 따라 구조가 달라질 수 있습니다.
SoulBoundLiveryCacheThumbnails.manifest- 경매장 리버리 식별 정보
- 경매장 리버리 적용 상태
- logical name ↔ GUID 썸네일 매핑
- 경매장 리버리 제목 및 제작자 정보
- Xbox App / Microsoft Store와 Steam의 저장 위치
FH6 업데이트로 내부 파일 구조가 변경될 경우 일부 분석 기능이 정상적으로 동작하지 않을 수 있습니다.
개인적으로 사용하기 위해 시작한 프로젝트이므로 아직 확인되지 않은 환경에서 예상하지 못한 동작이 발생할 수 있습니다.
FH6 Assistant는 PyInstaller를 사용하여 단일 Windows 실행 파일로 패키징되어 있습니다.
현재 실행 파일에는 디지털 코드 서명이 적용되어 있지 않습니다.
이 때문에 일부 백신 프로그램 또는 Microsoft Defender의 머신러닝·휴리스틱 검사에서 PyInstaller 기반 실행 파일이 오탐될 가능성이 있습니다.
이전에 배포된 FH6 Assistant v1.2 실행 파일이 일부 환경에서 Microsoft Defender에 탐지되어 Microsoft Security Intelligence에 직접 파일 분석을 요청했습니다.
Microsoft 분석 결과:
- Final determination: Not malware
- Microsoft Defender: No malware detected
- Analyst result: The detection has been removed.
- Submission ID:
40a18f1f-0480-441a-bdb7-fe3d066b0d99
분석 대상:
File: fh6.assistant.v1.2.exe
SHA-256: e8196c2910e11b4b0bc86ca0f04af1017c13345e853d1ae5369f227c964424a6
Microsoft는 제출된 해당 파일이 악성코드 또는 PUA 기준에 해당하지 않는다고 판정했으며 기존 Microsoft Defender 탐지를 제거했습니다.
Important
위 Microsoft 분석 결과는 해당 SHA-256을 가진 v1.2 파일에 대한 분석 결과입니다.
다른 버전의 FH6 Assistant 실행 파일에 대한 개별 Microsoft 분석 결과를 의미하지 않습니다.
Microsoft Security Intelligence 분석 당시 결과 이미지:
릴리즈에서 제공되는 .sha256 파일은 프로그램 실행에 필요한 파일이 아닙니다.
다운로드한 EXE가 배포된 원본 파일과 동일한지 확인하기 위한 선택적인 무결성 확인 파일입니다.
FH6 Assistant v1.3.2 Beta 현재 빌드의 SHA-256:
276e7054ecb114f8dd7457c2224fd584df3c06d940aa212b44763019e4eabd0c
차량 식별 번호 데이터와 튜닝 데이터 구조를 공개한 HDR의 자료를 참고했습니다.
유용한 자료를 공개한 HDR에게 감사드립니다.
본 프로젝트의 개발 과정에서는 생성형 AI 도구인 OpenAI ChatGPT를 보조적으로 활용했습니다.
ChatGPT는 다음 작업에 보조적으로 사용되었습니다.
- 코드 작성 및 검토
- 오류 원인 분석
- 기능 구현 방법 검토
- 테스트 방법 검토
- 데이터 구조 분석 보조
- 문서 작성 및 정리
현재 별도의 오픈 소스 라이선스가 지정되어 있지 않습니다.