File size: 2,013 Bytes
e68cec5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
"""연출 이미지 슬림 동기화 — 원본 폴더(권위)에서 데모가 쓰는 이미지만 web/assets/로 복사.

원천(권위): 카르밀라/0701_카르밀라/이미지/ (대표님 산출물). web/assets/는 배포용 파생물.
router의 COVER_IMAGE·IMAGE_MAP·BACKGROUND_MAP·INTRO_IMAGES가 참조하는
상대경로를 그대로 유지한 채 복사한다 (권위는 router.py — 변경 시 함께 갱신).

실행: python scripts/sync_assets.py
"""

from __future__ import annotations

import shutil
from pathlib import Path

ROOT = Path(__file__).resolve().parent.parent
SRC = ROOT / "카르밀라" / "0701_카르밀라" / "이미지"
DST = ROOT / "web" / "assets"

RELATIVE_PATHS = [
    # 표지·연출 컷 (IMAGE_MAP)
    "플래이 이미지/1.png",       # 표지
    "플래이 이미지/4.png",       # E01-07
    "인물/카르밀라.png",         # E03-03 + 화자 초상
    "인물/카르밀라 가면.png",    # E06-09
    # 화자 초상 (SPEAKER_PORTRAIT)
    "인물/아버지.png",
    "인물/가정교사.png",         # 마드모아젤
    "인물/보모.png",             # 마담

    # 인트로 시퀀스 (INTRO_IMAGES)
    "오노마x소락_방향/개요2.png",  # 작품 소개
    "오노마x소락_방향/개요3.png",  # 등장인물 소개
    "플래이 이미지/2.png",         # 1장 시작
    # 장소별 배경 (BACKGROUND_MAP)
    "배경/성.png",
    "배경/침실.png",
    "배경/식당.png",
    "배경/안개 숲.png",
    "배경/폐허성당.png",
]


def main() -> None:
    if not SRC.exists():
        raise SystemExit(f"원본 이미지 폴더 없음: {SRC}")
    for rel in RELATIVE_PATHS:
        src, dst = SRC / rel, DST / rel
        if not src.exists():
            raise SystemExit(f"원본 이미지 누락: {src}")
        dst.parent.mkdir(parents=True, exist_ok=True)
        shutil.copy2(src, dst)
        print(f"복사: {rel}")
    print(f"완료 — {len(RELATIVE_PATHS)}장 → {DST}")


if __name__ == "__main__":
    main()