# RGB Spec Cut Mapping

- 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를 생성한다.
- `사전_역대당선자*` 계열은 `ColorParty` 값이 있으면 이를 우선 사용하고, 없으면 표기 정당명과 역사 정당 별칭을 기준으로 색상 자산을 찾는다.

## Verified

- `1-2위_ani_광역단체장`
  - `정당판01` -> `SetStyleColor(face, order=0)`
  - `정당바01` -> `SetStyleColor(face, order=0)`
  - `득표율01` -> `SetStyleColor(edge, order=0)`
  - 검증 로그: `LIVE_VALIDATE_1-2위_ani_광역단체장_style.md`

## Implemented Mapping

### Normal - 1~2위 / 1~3위 계열

| 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위_광역단체장` | `1-2위_광역단체장, 보궐.txt` | shared |
| `1-2위_광역단체장_5760` | `1-2위_광역단체장, 보궐.txt` | shared |
| `1-2위_광역단체장_시도별영상` | `1-2위_광역단체장,기초단체장_시도별영상.txt` | family |
| `1-2위_교육감` | `1-2위_교육감.txt` | exact |
| `1-2위_기초단체장` | `1-2위_기초단체장.txt` | exact |
| `1-2위_기초단체장_시도별영상` | `1-2위_광역단체장,기초단체장_시도별영상.txt` | family |
| `1-2위_보궐선거` | `1-2위_광역단체장, 보궐.txt` | inferred |
| `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위_보궐선거` | `1-3위_ani_광역단체장,보궐.txt` | inferred |

### Normal - 경력 / 당선 / 이시각1위 / 접전

| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `경력_광역단체장_in` | `경력.txt` | shared |
| `경력_기초단체장_in` | `경력.txt` | shared |
| `당선_광역단체장` | `당선.txt` | shared |
| `당선_광역단체장_HD` | `당선.txt` | shared |
| `당선_광역의원` | `당선.txt` | shared |
| `당선_광역의원_HD` | `당선.txt` | shared |
| `당선_교육감` | `당선_교육감.txt` | exact |
| `당선_교육감_HD` | `당선_교육감.txt` | shared |
| `당선_기초단체장` | `당선.txt` | shared |
| `당선_기초단체장_HD` | `당선.txt` | shared |
| `당선_기초의원` | `당선.txt` | shared |
| `당선_기초의원_HD` | `당선.txt` | shared |
| `이시각1위_광역단체장` | `이시각1위_광역단체장.txt` | exact |
| `이시각1위_광역단체장_HD` | `이시각1위_광역단체장.txt` | shared |
| `이시각1위_기초단체장` | `이시각1위_기초단체장(5760동일).txt` | family |
| `이시각1위_기초단체장_HD` | `이시각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 |

### Bottom

| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `1-2위_광역단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
| `1-2위_기초단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
| `1-3위_광역단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
| `1-3위_기초단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
| `1위_광역단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
| `1위_기초단체장` | `1-2위, 1-3위, 이시각1위.txt` | shared |
| `당선_광역단체장` | `당선.txt` | shared |
| `당선_광역의원` | `당선.txt` | shared |
| `당선_기초단체장` | `당선.txt` | shared |
| `당선_기초의원` | `당선.txt` | shared |
| `전후보_광역단체장` | `모든후보.txt` | naming bridge |
| `전후보_교육감` | `모든후보_교육감.txt` | naming bridge |
| `전후보_기초단체장` | `모든후보.txt` | naming bridge |

### Top

| Canonical template | RGB spec file | Note |
| --- | --- | --- |
| `광역단체장_2인` | `1-2위_사진.txt` | photo layout |
| `기초단체장_2인` | `1-2위_사진.txt` | photo layout |
| `광역단체장_2인_텍스트` | `1-2위_텍스트.txt` | text layout |
| `기초단체장_2인_텍스트` | `1-2위_텍스트.txt` | text layout |

## No Explicit Mapping Yet

### Normal

- `광역의원표`
- `광역의원표_HD`
- `기초의원표`
- `기초의원표_HD`
- `역대시도판세_광역단체장`
- `역대시도판세_기초단체장`

### Top

- `판세_광역단체장`
- `판세_광역의원`
- `판세_교육감`
- `판세_기초단체장`
- `판세_기초의원`

## No Party Color Work Needed Right Now

- `민방_타이틀*`
- `사전_역대투표율*`
- `사전투표율`
- `투표율*`
- `투표율_사진`
- `투표율_선거구별`
- `투표율_선거구별 사전`
- `투표율_시도별`
- `투표율_영상`

## 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`로 연결한다.
- `보궐선거` 계열은 가장 가까운 광역/보궐 계열 spec로 연결한다.
- 역사 당선자 컷은 `ColorParty`와 정당 별칭 정규화를 함께 사용한다.
