중간저장 04.20

This commit is contained in:
2026-04-20 20:06:18 +09:00
parent 210b546130
commit 7cedeef5a9
180 changed files with 36496 additions and 918 deletions

View File

@@ -1,24 +1,22 @@
# RGB Spec Cut Mapping
- Updated: 2026-04-16
- Source root:
`E:\김의연\지역민방\T3_Cut`
- Runtime priority:
1. explicit cut-to-RGB mapping
2. same-name RGB txt
3. heuristic fallback by similar file name
- Updated: 2026-04-19
- Source root: `E:\김의연\지역민방\T3_Cut`
- 이 문서는 현재 화면에 노출되는 canonical 컷 이름 기준으로 정리한다.
- 과거 `_L`, `_END`, `_7680` 계열 이름은 저장 호환용 alias만 유지하며, 아래 표에는 적지 않는다.
## Runtime Rule
- RGB txt header가 `style > ... > color` 또는 `> ... > color` 형태면 해당 오브젝트는 이미지 `SetValue` 대신 `SetStyleColor`를 우선 적용
- `face 2번째`처럼 순서가 명시된 경우 `SetStyleColor(..., order=1, ...)`로 적용
- `정당바`: RGB spec section `정당바` 우선
- `정당판`: RGB spec section `정당판` 우선
- `정당원`: RGB spec section `정당원` 우선, 없으면 `정당색`, `정당판`, `정당바`
- `정당색`: RGB spec section `정당색` 우선, 없으면 `정당바`, `정당판`
- `그룹`: `그룹`이 없으면 `정당바`, `정당판`
- 기존 png 자산이 있으면 그대로 사용
- 기존 png가 없으면 `%LOCALAPPDATA%\Tornado3_2026Election\GeneratedPartyAssets` 아래에 RGB 기반 fallback png 생성
- RGB txt header가 `style > ... > color` 또는 `> ... > color` 형태면 해당 오브젝트는 이미지 `SetValue` 대신 `SetStyleColor`를 우선 적용한다.
- `face 2번째`처럼 순서가 명시된 경우 `SetStyleColor(..., order=1, ...)`로 적용한다.
- `정당바` RGB spec section `정당바` 우선
- `정당판` RGB spec section `정당판` 우선
- `정당원` RGB spec section `정당원` 우선, 없으면 `정당색`, `정당판`, `정당바`
- `정당색` RGB spec section `정당색` 우선, 없으면 `정당바`, `정당판`
- `그룹` `그룹`이 없으면 `정당바`, `정당판`
- 기존 png 자산이 있으면 그대로 사용한다.
- 기존 png가 없으면 `%LOCALAPPDATA%\Tornado3_2026Election\GeneratedPartyAssets` 아래에 RGB 기반 fallback png 생성한다.
- `사전_역대당선자*` 계열은 `ColorParty` 값이 있으면 이를 우선 사용하고, 없으면 표기 정당명과 역사 정당 별칭을 기준으로 색상 자산을 찾는다.
## Verified
@@ -30,84 +28,70 @@
## Implemented Mapping
### Normal
### Normal - 1~2위 / 1~3위 계열
| Template | RGB spec file | Note |
| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `1-2위_ani_광역단체장` | `1-2위_ani_광역단체장.txt` | exact |
| `1-2위_ani_기초단체장` | `1-2위_ani_기초단체장.txt` | exact |
| `1-2위_ani_기초단체장_5760` | `1-2위_ani_기초단체장.txt` | shared |
| `1-2위_ani_기초단체장_L` | `1-2위_ani_기초단체장.txt` | shared |
| `1-2위_광역단체장` | `1-2위_광역단체장, 보궐.txt` | shared |
| `1-2위_광역단체장_5760` | `1-2위_광역단체장, 보궐.txt` | shared |
| `1-2위_광역단체장_L` | `1-2위_광역단체장, 보궐.txt` | shared |
| `1-2위_광역단체장_시도별영상` | `1-2위_광역단체장,기초단체장_시도별영상.txt` | exact family |
| `1-2위_광역단체장_시도별영상` | `1-2위_광역단체장,기초단체장_시도별영상.txt` | family |
| `1-2위_교육감` | `1-2위_교육감.txt` | exact |
| `1-2위_기초단체장` | `1-2위_기초단체장.txt` | exact |
| `1-2위_기초단체장_시도별영상` | `1-2위_광역단체장,기초단체장_시도별영상.txt` | exact family |
| `1-2위_기초단체장_시도별영상` | `1-2위_광역단체장,기초단체장_시도별영상.txt` | family |
| `1-2위_보궐선거` | `1-2위_광역단체장, 보궐.txt` | inferred |
| `1-3위_ani_광역단체장` | `1-3위_ani_광역단체장,보궐.txt` | exact family |
| `1-3위_보궐선거` | `1-3위_ani_광역단체장,보궐.txt` | inferred |
| `1-3위_ani_기초단체장` | `1-3위_ani_기초단체장(5760동일).txt` | exact family |
| `1-3위_ani_광역단체장` | `1-3위_ani_광역단체장,보궐.txt` | family |
| `1-3위_ani_기초단체장` | `1-3위_ani_기초단체장(5760동일).txt` | family |
| `1-3위_기초단체장_5760` | `1-3위_ani_기초단체장(5760동일).txt` | shared |
| `1-3위_기초단체장_L` | `1-3위_ani_기초단체장(5760동일).txt` | shared |
| `1-3위_기초단체장_L_1` | `1-3위_ani_기초단체장(5760동일).txt` | shared |
| `1-3위_보궐선거` | `1-3위_ani_광역단체장,보궐.txt` | inferred |
### Normal - 경력 / 당선 / 이시각1위 / 접전
| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `경력_광역단체장_in` | `경력.txt` | shared |
| `경력_기초단체장_in` | `경력.txt` | shared |
| `당선_광역단체장` | `당선.txt` | shared |
| `당선_광역단체장_HD` | `당선.txt` | shared |
| `당선_광역단체장_L` | `당선.txt` | shared |
| `당선_광역의원` | `당선.txt` | shared |
| `당선_광역의원_HD` | `당선.txt` | shared |
| `당선_광역의원_L` | `당선.txt` | shared |
| `당선_교육감` | `당선_교육감.txt` | exact |
| `당선_교육감_HD` | `당선_교육감.txt` | shared |
| `당선_교육감_L` | `당선_교육감.txt` | shared |
| `당선_기초단체장` | `당선.txt` | shared |
| `당선_기초단체장_HD` | `당선.txt` | shared |
| `당선_기초단체장_L` | `당선.txt` | shared |
| `당선_기초의원` | `당선.txt` | shared |
| `당선_기초의원_HD` | `당선.txt` | shared |
| `당선_기초의원_L` | `당선.txt` | shared |
| `모든후보_광역단체장` | `모든후보.txt` | shared |
| `모든후보_광역단체장_5760` | `모든후보.txt` | shared |
| `모든후보_광역단체장_5760_END` | `모든후보.txt` | shared |
| `모든후보_광역단체장_END` | `모든후보.txt` | shared |
| `모든후보_광역단체장_L` | `모든후보.txt` | shared |
| `모든후보_광역단체장_L_END` | `모든후보.txt` | shared |
| `모든후보_교육감` | `모든후보_교육감.txt` | exact |
| `모든후보_교육감_5760` | `모든후보_교육감.txt` | shared |
| `모든후보_교육감_5760_END` | `모든후보_교육감.txt` | shared |
| `모든후보_교육감_END` | `모든후보_교육감.txt` | shared |
| `모든후보_교육감_L` | `모든후보_교육감.txt` | shared |
| `모든후보_교육감_L_END` | `모든후보_교육감.txt` | shared |
| `모든후보_기초단체장` | `모든후보.txt` | shared |
| `모든후보_기초단체장_5760` | `모든후보.txt` | shared |
| `모든후보_기초단체장_5760_END` | `모든후보.txt` | shared |
| `모든후보_기초단체장_END` | `모든후보.txt` | shared |
| `모든후보_기초단체장_L` | `모든후보.txt` | shared |
| `모든후보_기초단체장_L_END` | `모든후보.txt` | shared |
| `사전_역대당선자` | `사전_역대당선.txt` | shared |
| `사전_역대당선자_기초단체장` | `사전_역대당선.txt` | shared |
| `사전_역대당선자_교육감` | `사전_역대당선_교육감.txt` | exact family |
| `이시각1위_광역단체장` | `이시각1위_광역단체장.txt` | exact |
| `이시각1위_광역단체장_HD` | `이시각1위_광역단체장.txt` | shared |
| `이시각1위_광역단체장_L` | `이시각1위_광역단체장.txt` | shared |
| `이시각1위_기초단체장` | `이시각1위_기초단체장(5760동일).txt` | exact family |
| `이시각1위_기초단체장` | `이시각1위_기초단체장(5760동일).txt` | family |
| `이시각1위_기초단체장_HD` | `이시각1위_기초단체장(5760동일).txt` | shared |
| `이시각1위_기초단체장_L` | `이시각1위_기초단체장(5760동일).txt` | shared |
| `접전_광역단체장` | `접전,초접전.txt` | shared |
| `접전_기초단체장` | `접전,초접전.txt` | shared |
| `초접전_광역단체장` | `접전,초접전.txt` | shared |
| `초접전_기초단체장` | `접전,초접전.txt` | shared |
### Normal - 모든후보 / 판세 / 역사 컷
| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `모든후보_광역단체장` | `모든후보.txt` | shared |
| `모든후보_광역단체장_5760` | `모든후보.txt` | shared |
| `모든후보_교육감` | `모든후보_교육감.txt` | exact |
| `모든후보_교육감_5760` | `모든후보_교육감.txt` | shared |
| `모든후보_기초단체장` | `모든후보.txt` | shared |
| `모든후보_기초단체장_5760` | `모든후보.txt` | shared |
| `사전_역대당선자` | `사전_역대당선.txt` | historical |
| `사전_역대당선자_교육감` | `사전_역대당선_교육감.txt` | historical |
| `사전_역대당선자_기초단체장` | `사전_역대당선.txt` | historical |
| `판세_광역단체장` | `판세_광역단체장.txt` | exact |
| `판세_기초단체장` | `판세_광역단체장.txt` | inferred |
| `판세_기초단체장_5760` | `판세_광역단체장.txt` | inferred |
| `판세_기초단체장_7680` | `판세_광역단체장.txt` | inferred |
### Bottom
| Template | RGB spec file | Note |
| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `1-2위_광역단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
| `1-2위_기초단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
@@ -120,12 +104,12 @@
| `당선_기초단체장` | `당선.txt` | shared |
| `당선_기초의원` | `당선.txt` | shared |
| `전후보_광역단체장` | `모든후보.txt` | naming bridge |
| `전후보_기초단체장` | `모든후보.txt` | naming bridge |
| `전후보_교육감` | `모든후보_교육감.txt` | naming bridge |
| `전후보_기초단체장` | `모든후보.txt` | naming bridge |
### Top
| Template | RGB spec file | Note |
| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `광역단체장_2인` | `1-2위_사진.txt` | photo layout |
| `기초단체장_2인` | `1-2위_사진.txt` | photo layout |
@@ -138,12 +122,8 @@
- `광역의원표`
- `광역의원표_HD`
- `광역의원표_L`
- `광역의원표_L_1`
- `기초의원표`
- `기초의원표_HD`
- `기초의원표_L`
- `기초의원표_L_1`
- `역대시도판세_광역단체장`
- `역대시도판세_기초단체장`
@@ -165,12 +145,28 @@
- `투표율_선거구별`
- `투표율_선거구별 사전`
- `투표율_시도별`
- `투표율_시도별_L`
- `투표율_영상`
## Compatibility Note
- 예전 문서나 저장 상태에 남아 있는 아래 이름들은 현재 canonical 이름으로 내부 매핑한다.
- `_L` 계열
- `_END` 계열
- `판세_기초단체장_7680`
- RGB spec 운영 문서는 앞으로 canonical 이름만 기준으로 관리한다.
## 2026-04-19 Runtime Note
- style color binding이 있는 오브젝트는 후보 슬롯 clear 단계에서 들어간 빈 `SetValue("")`를 최종 values payload에서 제거해야 한다.
-`SetValue`가 남아 있으면 `Path Shape` face color가 적용되지 않은 것처럼 보일 수 있다.
- `1-2위_ani_광역단체장``정당바`는 RGB spec의 `정당바` 값을 그대로 사용해 `SetStyleColor(face, order=0, ...)`로 적용한다.
- `더불어민주당 = 0,30,84`
- `국민의힘 = 95,0,15`
- `1-2위_ani_광역단체장_loop``1-2위_광역단체장`도 동일하게 `정당바``Path Shape > Appearance > Face Color` 직접 변경 기준으로 운용한다.
- `정당판`은 probe로는 직접 style color 적용이 가능하지만, 현재 runtime에서는 운영 요구에 맞춰 asset alias 경로를 유지한다.
## Notes
- `판세_기초단체장*`은 현재 `판세_광역단체장.txt`로 연결다.
전용 RGB txt가 추가되면 그쪽으로 분리하는 것이 맞다.
- `보궐선거` 계열은 현재 가장 가까운 광역/보궐 계열 spec로 연결했다.
- `정당색`, `정당원`은 RGB txt 전용 색이 있으면 기존 png보다 우선해서 fallback 생성 자산을 사용한다.
- `판세_기초단체장*`은 현재 `판세_광역단체장.txt`로 연결다.
- `보궐선거` 계열은 가장 가까운 광역/보궐 계열 spec로 연결한다.
- 역사 당선자 컷은 `ColorParty`와 정당 별칭 정규화를 함께 사용한다.