# 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 ## 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 생성 ## 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 | 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` | exact | | `1-2위_기초단체장` | `1-2위_기초단체장.txt` | exact | | `1-2위_기초단체장_시도별영상` | `1-2위_광역단체장,기초단체장_시도별영상.txt` | exact 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위_기초단체장_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 | | `경력_광역단체장_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위_기초단체장_HD` | `이시각1위_기초단체장(5760동일).txt` | shared | | `이시각1위_기초단체장_L` | `이시각1위_기초단체장(5760동일).txt` | shared | | `접전_광역단체장` | `접전,초접전.txt` | shared | | `접전_기초단체장` | `접전,초접전.txt` | shared | | `초접전_광역단체장` | `접전,초접전.txt` | shared | | `초접전_기초단체장` | `접전,초접전.txt` | shared | | `판세_광역단체장` | `판세_광역단체장.txt` | exact | | `판세_기초단체장` | `판세_광역단체장.txt` | inferred | | `판세_기초단체장_5760` | `판세_광역단체장.txt` | inferred | | `판세_기초단체장_7680` | `판세_광역단체장.txt` | inferred | ### Bottom | 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 | 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` - `광역의원표_L` - `광역의원표_L_1` - `기초의원표` - `기초의원표_HD` - `기초의원표_L` - `기초의원표_L_1` - `역대시도판세_광역단체장` - `역대시도판세_기초단체장` ### Top - `판세_광역단체장` - `판세_광역의원` - `판세_교육감` - `판세_기초단체장` - `판세_기초의원` ## No Party Color Work Needed Right Now - `민방_타이틀*` - `사전_역대투표율*` - `사전투표율` - `투표율*` - `투표율_사진` - `투표율_선거구별` - `투표율_선거구별 사전` - `투표율_시도별` - `투표율_시도별_L` - `투표율_영상` ## Notes - `판세_기초단체장*`은 현재 `판세_광역단체장.txt`로 연결했다. 전용 RGB txt가 추가되면 그쪽으로 분리하는 것이 맞다. - `보궐선거` 계열은 현재 가장 가까운 광역/보궐 계열 spec로 연결했다. - `정당색`, `정당원`은 RGB txt 전용 색이 있으면 기존 png보다 우선해서 fallback 생성 자산을 사용한다.