Assets and Continuity Model
1. Asset Library의 위치
에셋은 Project의 하위 소유물이 아니라 재사용 가능한 독립 리소스다. Asset Library는 Film 서비스의 전역 메뉴이며, Project에서는 필요한 에셋을 참조한다.
프로젝트별 폴더나 컬렉션은 탐색과 분류를 위한 기능이다. 데이터 모델에서 에셋 원본의 소유권을 Project에 강하게 묶지 않는다. 그래야 같은 캐릭터, 소품, 재질, 카메라 프리셋을 다른 영화에서도 재사용할 수 있다.
2. 에셋 관련 엔티티
| 엔티티 | 책임 | 예시 |
|---|---|---|
| Asset | 정체성과 메타데이터를 가진 원본 리소스 | Character A, 빈티지 가방, 카페 환경 |
| Asset Version | 특정 시점의 불변 소스와 속성 | Character A의 얼굴·체형 기준 이미지 v3 |
| Asset Usage | 특정 범위에서 에셋을 어떤 역할로 사용할지 | 이 영화의 주요 인물, 이 Sequence의 겨울 코트 |
| Asset State | 시간 또는 Beat에서 달라지는 상태 | 컵을 들고 있음, 젖은 코트, 시선을 피함 |
| Asset Reference | 특정 Shot 생성에 실제 전달할 미디어·데이터 | 얼굴 정체성 시트, 표정 참조, 재질 이미지 |
Asset은 정체성, Asset Usage는 사용 방식, Asset State는 시간에 따른 상태, Asset Reference는 생성 입력이라는 서로 다른 책임을 가진다. 하나의 JSON 필드에 이 정보를 함께 저장하지 않는다.
3. 계층별 에셋 적용
동일한 캐릭터가 계층별로 다른 정보가 필요할 수 있다.
Project: Character A를 주요 인물로 등록
Sequence: A는 겨울 코트를 착용
Scene: A는 카페 창가에 가방을 들고 등장
Beat: A가 컵을 집고 시선을 피함
Shot: 얼굴 클로즈업을 위해 표정 참조 이미지 사용
이 예시에서 Character A의 정체성은 Asset에, 영화용 스타일은 Project Asset Usage에, 장면 배치는 Scene Asset Usage 또는 Scene Layout에, 순간 상태는 Beat Asset State에, 참조 이미지는 Shot Asset Reference에 둔다.
4. 권장 Asset 분류
| 분류 | 대표 속성 |
|---|---|
| Character | 외형 정체성, 체형, 얼굴·헤어 참조, 기본 의상 |
| Costume | 의상 구성, 소재, 색상, 착용 조건 |
| Prop | 물체 형태, 재질, 크기, 상호작용 방식 |
| Environment | 장소, 건축·자연 요소, 배경 참조 |
| Vehicle | 형태, 스케일, 상태, 이동 특성 |
| Material | 표면, 텍스처, 반사·거칠기 정보 |
| Lighting Preset | 광원 배치, 색온도, 강도, 분위기 |
| Camera Preset | 렌즈, 높이, 앵글, 움직임 기본값 |
| Audio | 음악·효과음·대사 참조 |
Asset 타입별 스키마는 다르므로, 공통 메타데이터와 타입별 속성의 두 층으로 설계하는 편이 적합하다. 모든 에셋에 Character 전용 필드를 강제하지 않는다.
5. 버전과 편집 정책
생성 결과의 재현성과 이전 Shot의 연속성을 위해 사용된 Asset Version은 변경 불가능해야 한다.
- 원본 에셋을 수정하면 새 Asset Version을 만든다.
- 이미 생성된 Attempt는 당시 사용한 Asset Version을 계속 참조한다.
- 새 버전을 이후 Shot에 적용할지는 Project 또는 개별 Usage에서 명시적으로 선택한다.
- 프로젝트 전용 외형 변경은 원본 Asset을 바꾸지 않고 Project Asset Usage의 override 또는 프로젝트 전용 파생 Version으로 기록한다.
이 정책은 "공유 캐릭터 원본을 수정했더니 다른 영화의 과거 생성물이 달라진다"는 문제를 방지한다.
6. 연속성 검토의 입력
연속성 검토는 하나의 생성 프롬프트 필드가 아니라 구조화된 비교 대상이 필요하다. 최소한 다음을 추적할 수 있어야 한다.
| 범주 | 예시 |
|---|---|
| 외형 | 헤어, 의상, 분장, 소지품 |
| 물리 상태 | 위치, 손에 든 물체, 손상, 젖음, 시간 경과 |
| 관계와 감정 | 인물 간 거리, 태도, 감정 전환 |
| 공간 | 오브젝트 배치, 조명, 날씨, 시간대 |
| 영상 설정 | 화면비, 카메라 규칙, 색보정 경향 |
초기에는 이전·다음 Beat 또는 Shot의 effective state를 나란히 비교하는 검토 UI부터 시작할 수 있다. 자동 충돌 판정은 에셋 타입별 상태 스키마와 승인 규칙이 확정된 뒤 도입한다.
7. 생성 입력에서의 Asset 정보 라우팅
에셋 정보가 현재 Project에 연결되어 있다는 사실만으로 모든 속성을 Renderer에 전달하지 않는다.
| 정보 | 기본 처리 |
|---|---|
| 현재 프레임에 보이는 정체성·의상·소품·상태 | generator_visible 후보 |
| 다음 Scene에서 바뀔 외형이나 미래 상태 | director_private |
| 결과에 나타나면 안 되는 연속성 위반 조건 | validator_only |
| 사용자가 확인·편집해야 하는 메모 | editor_visible |
Context Director는 현재 Shot의 대상, Frame/Motion Design, Context Window를 기준으로 실제 전달할 Asset Version과 Reference를 선택한다. Reference Composer는 선택 결과를 모델 상한에 맞게 합성하거나 제외하고, 실제 전송된 자료를 Attempt 스냅샷에 남긴다.