﻿초상화 관리자 v1.0.10
=================

실행
----
1. ZIP의 압축을 완전히 풉니다.
2. "초상화 관리자 실행.bat"을 실행합니다.
3. 프로그램 창을 닫으면 전용 브라우저와 로컬 서버도 함께 종료됩니다.
4. 비정상 종료 시에만 "초상화 관리자 종료.bat"을 사용합니다.

v1.0.10 주요 변경
----------------

1) 적용이 안 되는 PC를 위한 경로/ID 탐색 개선
- UserCache의 계정 폴더 이름이 반드시 3466559 같은 숫자라고 가정하지 않습니다.
- Windows의 실제 Documents 경로, 레지스트리의 문서 리디렉션, OneDrive Documents/문서 위치를 함께 확인합니다.
- UserCache 루트 자체, 이름이 숫자가 아닌 폴더, 그 아래 프로필도 후보로 확인합니다.
- FaceTexture에 숫자 BMP가 없어도 gamevariable.xml의 CharacterOrderList에 ID가 있으면 캐릭터 순서를 불러올 수 있습니다.
- FaceTexture 폴더가 없는 경우에도 새 초상화를 적용하면 폴더와 BMP를 생성할 수 있습니다.

2) 문제 진단 버튼
- 메인 화면 상단의 "🩺 문제 진단" 버튼을 누르면 TXT 진단 파일이 저장됩니다.
- 진단 내용:
  * Windows에서 인식한 Documents 후보
  * Black Desert / UserCache / FaceTexture 실제 경로
  * FaceTexture 존재 여부, BMP 수, 쓰기 권한
  * UserCache 계정/프로필 후보와 캐릭터 수
  * gamevariable.xml 및 CharacterOrderList 발견 여부/ID 수
  * 게임 설치 경로 후보 및 게임 실행 여부
  * 프로그램 최근 로그
- 적용이 안 되는 사용자는 이 TXT 한 개를 보내면 원인 분석에 사용할 수 있습니다.
- 비밀번호나 로그인 토큰, gamevariable.xml 원문 자체는 진단 파일에 저장하지 않습니다.
  단, Windows 사용자 폴더 경로와 캐릭터 숫자 ID는 포함될 수 있습니다.

3) 캐릭터 위치 변경 = 두 초상화 맞교환
- 더 이상 드래그하면서 중간 캐릭터들이 밀리지 않습니다.
- 첫 번째 초상화를 클릭 → 바꿀 대상 초상화를 클릭하면 두 칸만 정확히 서로 교환됩니다.
- 이후 "게임에 순서 적용"을 누르면 현재 순서를 gamevariable.xml의 CharacterOrderList에 저장합니다.
- 게임 클라이언트는 완전히 종료한 상태에서 적용합니다.

4) 심볼 / 문구 개수 제한 제거
- 편집 화면을 처음 열면 심볼 1개, 문구 1개만 표시됩니다.
- "＋ 심볼 추가", "＋ 문구 추가"로 필요한 만큼 추가할 수 있습니다.
- 각 항목을 개별 삭제할 수 있습니다.
- 적용 예시 위에서 해당 심볼/문구를 직접 드래그해 이동할 수 있습니다.

5) 심볼 그림자
- 각 심볼마다 본체 투명도와 그림자 사용 여부, 그림자 색상/투명도/흐림/X/Y 오프셋을 따로 조절할 수 있습니다.
- 심볼이 원본 사진과 너무 분리되어 보일 때 부드러운 그림자를 넣어 자연스럽게 합성할 수 있습니다.

6) 문구 세부 효과
- 문구를 여러 개 추가할 수 있습니다.
- 폰트, 가늘게/보통/굵게, 글자색, 크기, 글자 투명도 조절을 지원합니다.
- 외곽선 사용/해제, 외곽선 색/두께를 설정할 수 있습니다.
- 그림자 사용 여부, 색상, 투명도, 흐림, X/Y 오프셋을 설정할 수 있습니다.

7) X / Y 숫자 위치 지정
- 심볼과 문구 모두 X, Y 좌표를 숫자로 직접 입력할 수 있습니다.
- 기준 크기는 실제 최종 초상화 624 × 804입니다.
- 드래그로 대략 위치를 잡은 뒤 숫자로 미세 조정할 수 있습니다.

8) 편집 기본 설정 저장
- "현재 설정을 기본값으로 저장"을 누르면 심볼/문구의 위치, 크기, 사용 이미지, 폰트, 색상, 그림자, 외곽선, 하단 음영 등을 브라우저에 저장합니다.
- 다음에 새 초상화 편집 화면을 열면 저장한 설정이 자동 적용됩니다.
- "저장값 적용"으로 다시 불러오거나 "저장값 삭제"로 초기화할 수 있습니다.

FaceTexture와 기본 게임 초상화
-----------------------------
- 사용자 제작 BMP의 공식 적용 위치는 Windows 문서 폴더의 Black Desert\FaceTexture입니다.
- 그러나 게임의 기본 초상화가 화면에 보인다고 해서 반드시 FaceTexture에 같은 BMP 파일이 존재하는 것은 아닙니다.
- 따라서 v1.0.10는 FaceTexture BMP가 비어 있는 것만으로 오류로 판단하지 않습니다.
- 로컬 CharacterOrderList에서 캐릭터 ID를 찾을 수 있으면 해당 ID로 새 BMP를 만들어 적용할 수 있습니다.

초상화 이미지 변경/원복
----------------------
- 초상화 제작/변경에서 "초상화 적용"을 누르면 FaceTexture에 624 × 804 32-bit BMP로 저장합니다.
- 기존 파일은 FaceTexture\Original Backup에 최초 원본 파일명 그대로 보관합니다.
- 이번 실행 중 첫 변경 직전 상태는 별도 임시 원복 지점으로 보관되며 프로그램을 끄기 전 "초상화 원복"으로 되돌릴 수 있습니다.

캐릭터 순서 적용/원복
--------------------
- 가능한 경우 UserCache의 gamevariable.xml에 있는 CharacterOrderList를 직접 읽습니다.
- "게임에 순서 적용"은 현재 맞교환된 순서를 Order=0,1,2...로 저장합니다.
- 최초 적용 전 gamevariable.xml은 UserCache 계정 폴더의 Original Backup에 보관합니다.
- "순서 원복"은 이번 실행에서 첫 적용 직전 상태로 실제 파일과 관리자 화면을 함께 되돌립니다.

[v1.0.10 자동 불러오기 회귀 수정]
- v1.0.3에서 정상 자동 불러오기가 되던 PC가 v1.0.4에서 실패하는 문제를 우선 수정했습니다.
- OneDrive/리디렉션된 문서에 빈 FaceTexture가 있어도 실제 숫자 BMP와 UserCache가 있는 Black Desert 폴더를 우선 선택합니다.
- UserCache 바로 아래 폴더만 계정으로 처리하여 3466559\91 같은 프로필 폴더가 별도 계정으로 섞이지 않게 했습니다.
- 실제 캐릭터 프로필이 있으면 v1.0.3처럼 해당 계정들을 자동 불러오기에서 우선 사용합니다.
- v1.0.4의 문제 진단, 1:1 맞교환, 심볼/문구 다중 추가와 기본값 저장 기능은 유지됩니다.


[v1.0.10 심볼/문구 편집 및 프리셋 UI 개선]
- 심볼 크기 숫자 입력칸이 실제 크기와 양방향으로 동기화됩니다. 숫자를 직접 입력해도 즉시 적용됩니다.
- 문구도 크기 슬라이더와 숫자 입력을 동시에 제공합니다.
- 하단 음영에 '음영 시작' 슬라이더를 추가해 그라데이션이 시작되는 높이를 조절할 수 있습니다.
- 원본 이미지 X/Y 숫자 위치 조정도 추가했습니다.
- 심볼/문구의 그림자 X/Y 조절은 제거했습니다. 그림자는 해당 심볼/문구와 항상 함께 움직입니다.
- 프리셋은 최대 5개까지 프로그램 폴더의 portrait_editor_presets.json에 저장됩니다. 브라우저 임시 프로필이 삭제되어도 유지됩니다.
- 프리셋 저장/불러오기/편집을 누르면 1~5 프리셋 박스가 가로로 표시됩니다.
- 불러오기 또는 편집에서 프리셋 박스를 한 번 클릭하면 즉시 해당 설정이 현재 편집 화면에 적용됩니다.
- 프리셋 편집에서 프리셋 이름을 더블클릭하면 그 자리에서 이름을 바로 수정할 수 있습니다.
- 프리셋 편집에서 '현재 설정으로 덮어쓰기'와 '선택 프리셋 삭제'를 사용할 수 있습니다.
- 새 편집 화면을 열었을 때 프리셋은 자동 적용하지 않고 심볼 1개/문구 1개의 기본 상태로 시작합니다.
- Cloud 수정 버전의 사용성 좋은 메뉴 구성을 참고해 음영 메뉴를 원본 이미지 쪽으로 옮기고 고급 효과는 접어서 볼 수 있게 정리했습니다.

[v1.0.10 적용 결과 팝업]
- 초상화 적용 버튼을 누른 뒤 성공/실패 결과를 반드시 별도 안내 팝업(window.alert)으로 표시합니다.
- 성공 시 적용된 BMP 파일명을 표시하고, 실패 시 원인을 팝업으로 표시합니다.
- 기존 화면 내 저장 결과 메시지와 우측 상단 알림도 함께 유지합니다.


[v1.0.10 실제 게임 초상화 규격 반영]
- 제공된 실제 Black Desert\FaceTexture BMP를 확인하여 624 × 804, 32-bit(BGRA/BGRX) 규격으로 최종 저장하도록 변경했습니다.
- 편집 화면은 보기 편한 크기로 축소 표시되지만 내부 캔버스와 저장 결과는 624 × 804입니다.
- v1.0.9 이하에서 저장한 프리셋/캐릭터별 편집 좌표는 처음 불러올 때 새 624 × 804 좌표계로 자동 변환됩니다.
