실제 Blender 제작과 최종 검토의 지침 기록 갱신

This commit is contained in:
NINI
2026-10-10 04:19:27 +09:00
parent 26c06994cf
commit 67776b5972
10 changed files with 67 additions and 8 deletions
+6 -2
View File
@@ -38,13 +38,17 @@ ShortVideoGenerator/
│ ├── findings.md → 미해결 문제
│ └── decisions/
│ ├── index.md → 결정 기록 목록
│ └── 0001-local-instructions.md → 로컬 지침·JSON 전달 선택
│ ├── 0001-local-instructions.md → 로컬 지침·JSON 전달 선택
│ └── 0002-local-blender-rendering.md → 모델·실제 애니메이션 선택
├── .codex/agents/AGENTS.md → 8개 역할 설정의 작성 경계
├── .agents/skills/AGENTS.md → 15개 작업 스킬의 작성 경계
├── contracts/AGENTS.md → 스키마의 구조·의미 구분
├── templates/AGENTS.md → 빈 양식·검토 양식의 경계
├── tools/blender/AGENTS.md → Blender 원본 검사·렌더 실행 경계
├── projects/water-hydrogen-bond-surface-tension/blender/AGENTS.md → 물 소재 3D 작성 경계
├── projects/
│ └── water-hydrogen-bond-surface-tension/
│ ├── blender/AGENTS.md → 물 소재 3D 작성 경계
│ └── renderer/AGENTS.md → 실제 컷·음성·자막 합성 경계
├── references/ → 사용자 그림체와 참고 분석
└── examples/ → 실제 실행과 구분한 연결 예제
```
+6 -2
View File
@@ -38,13 +38,17 @@ ShortVideoGenerator/
│ ├── findings.md → 미해결 문제
│ └── decisions/
│ ├── index.md → 결정 기록 목록
│ └── 0001-local-instructions.md → 로컬 지침·JSON 전달 선택
│ ├── 0001-local-instructions.md → 로컬 지침·JSON 전달 선택
│ └── 0002-local-blender-rendering.md → 모델·실제 애니메이션 선택
├── .codex/agents/AGENTS.md → 8개 역할 설정의 작성 경계
├── .agents/skills/AGENTS.md → 15개 작업 스킬의 작성 경계
├── contracts/AGENTS.md → 스키마의 구조·의미 구분
├── templates/AGENTS.md → 빈 양식·검토 양식의 경계
├── tools/blender/AGENTS.md → Blender 원본 검사·렌더 실행 경계
├── projects/water-hydrogen-bond-surface-tension/blender/AGENTS.md → 물 소재 3D 작성 경계
├── projects/
│ └── water-hydrogen-bond-surface-tension/
│ ├── blender/AGENTS.md → 물 소재 3D 작성 경계
│ └── renderer/AGENTS.md → 실제 컷·음성·자막 합성 경계
├── references/ → 사용자 그림체와 참고 분석
└── examples/ → 실제 실행과 구분한 연결 예제
```
+14
View File
@@ -31,3 +31,17 @@ PNG 파일 SHA-256은 메타데이터 때문에 달라질 수 있고 H.264 압
분자를 잘 보이게 하려고 불투명한 물 체적 앞에 배치하면, 분자가 실제 물 영역 밖에 떠 있거나 아래·옆 경계를 넘을 수 있다. 절개 설명이라는 문구와 원자 수·결합 종류·영상 디코드 검사는 이 오류를 해결하지 않는다. 분자는 실제 물 영역 안에 두고 앞면·윗면을 열어 내부가 보이는 설명용 절개를 만든다. 절개면을 물의 고체 벽·막으로 설명하지 않는다.
분자 중심만 검사하지 않고 평가된 원자·내부 실선·활성 분자간 점선의 전체 mesh 정점을 모든 애니메이션 프레임과 경계에서 실제 물 영역과 대조한다. 카메라의 투영 윤곽 및 실제 표시 면과도 비교하고 최종 PNG·MP4를 직접 본다. 중심은 내부지만 원자 정점 일부가 밖인 실제 실패 원본을 검사에 포함한다. 제출한 이전 결과는 보존하고 수정은 새 revision에서 진행한다.
## 일부 끝점 렌더 뒤 다음 프레임을 요청하면 실패할 때
11의 결과 배열에 첫 PNG만 등록돼 있어도 배열 자체는 비어 있지 않다. continuous의 양쪽 결과가 모두 있다고 가정하면 아직 없는 끝점 ID를 조회해 다음 렌더를 막는다. 두 frame ID가 실제 등록된 경우에만 동일 파일 여부를 검사하고, 완성 검사는 별도로 전체 62개 ID를 요구한다. 첫 시작 PNG만 존재하는 상태에서 끝점 요청, 공유한 다음 시작, 같은 논리 프레임의 다른 Scene 요청을 차례로 실행해 부분 진행과 장면 분리를 함께 확인한다.
## 로컬 FFmpeg에서 프레임 추출 명령이 실패할 때
Remotion에 포함된 현재 FFmpeg는 select 필터와 rawvideo 출력 muxer를 제공하지 않는다. 일반 FFmpeg 예제를 그대로 쓰면 영상 결함과 관계없이 검사 명령이 실패한다. 단일 프레임 PNG는 입력 뒤에 `-ss`와 `-frames:v 1`을 두고, 전체 디코드는 `-c:v rawvideo -c:a pcm_s16le -f null -`로 확인한다. rawvideo 코덱과 출력 muxer를 구분하고 실제 명령 종료코드와 프레임 수를 확인한다.
## 합성 후 검토 상태만 바꿨는데 입력 해시가 달라질 때
project.json은 렌더 입력과 현재 진행 상태를 함께 담는다. 최종 검토로 넘어가며 13/14 상태나 final 기록만 바꿔도 전체 파일 해시는 달라진다. 렌더 당시 사본은 입력 identity의 SHA와 연결해 보존하고 현재 주제·설정·01–12 포인터/상태·topic/story/scenes 승인은 그 사본과 엄격히 대조한다. 같은 13/14 버전의 정상적인 상태 진행만 원 입력 변경과 구별한다. 원본 미디어·선행 결과·합성 코드의 해시 차이는 이 예외로 허용하지 않는다.
제출한 verify_final.py를 다시 실행하면 새 디코드 WAV와 technical-check.json을 작성하므로 기존 manifest와 해시가 달라질 수 있다. 검사 후 manifest를 확정하고, 이미 제출한 결과의 재검토는 별도 증거 폴더에서 읽기 전용으로 수행한다. 재실행 결과를 제출하려면 새 검사 근거와 manifest를 함께 갱신한다.
@@ -6,4 +6,4 @@
서비스·데이터베이스·자동 실행 스케줄러는 현재 사용자 수와 요청 범위에 맞지 않아 선택하지 않았다. Markdown만 전달하면 상태·식별자·선행 버전을 형식 검사하기 어려워 JSON을 함께 사용한다. 전역 설치는 프로젝트 밖의 다른 작업에 지침을 노출하므로 저장소 범위로 한정했다.
이 선택은 외부 생성 결과를 기다릴 때도 기록·검토를 보존하게 한다. 반면 현재 구성만으로 실제 미디어를 생성하거나 병렬 잠금·자동 재시도·업로드를 수행할 수는 없다. 실제 도구 연결은 별도 실행 기능으로 추가하며 사용자 검토와 버전 참조를 계속 보존한다.
이 선택은 외부 생성 결과를 기다릴 때도 기록·검토를 보존하게 한다. 당시 지침·양식만으로 실제 미디어를 생성하거나 병렬 잠금·자동 재시도·업로드를 수행할 수는 없었다. 실제 도구 연결은 별도 실행 기능으로 추가하며 사용자 검토와 버전 참조를 계속 보존한다.
@@ -0,0 +1,21 @@
# 로컬 Blender 모델과 실제 애니메이션
## 선택 배경
사용자는 물 영상의 설명 내용과 내레이션은 수용했지만 생성 이미지의 품질을 개선해 달라고 요청했다. 같은 분자·결합·물방울을 여러 장면에서 유지하면서 실제 상태 변화를 보여줄 필요가 있었다. 기존 2D 합성의 이동·확대만으로는 분자 연결 교체와 일정한 물의 양을 유지하는 변형을 확인하기 어려웠다.
## 결정
새 시각 제작은 저장소의 소재별 Blender 모델·애니메이션으로 만든다. 기존 설치 Blender에서 원본을 열고 PNG와 무음 MP4를 렌더하며, 제목·라벨·자막·승인된 WAV는 기존 Remotion + FFmpeg로 합성한다. 사용자 원본 이미지는 정돈된 형태·색의 참고로 보존하고 평면 스타일 복제를 강제하지 않는다.
전체 렌더 비용을 쓰기 전에 대표 PNG와 짧은 실제 움직임을 기존 scenes 검토에 함께 제출한다. 물 분자가 표시 체적을 벗어난 사용자 피드백도 새 버전의 영역·평가 정점·투영 검사와 대표 출력으로 수정한 뒤 승인받았다. 설치 여부나 기술 검사만으로 품질 승인을 대신하지 않는다.
## 검토한 대안
- GPT 이미지 생성의 반복 수정: 사용자가 지적한 품질 문제를 해결할 보장이 없고 컷 사이 동일 모델·부피·연결의 실제 상태를 검사하기 어렵다.
- 기존 2D 이미지에 움직임만 추가: 합성 구성을 재사용할 수 있지만 3D 원본의 실제 변형과 장면 평가를 제공하지 못한다.
- 외부 영상 생성 서비스 추가: 새 비용·연결 경로가 필요하며 기존 로컬 도구를 사용하려는 승인 범위에 포함되지 않는다.
## 이후 작업에 미치는 영향
원본 .blend의 해시·Scene·프로필과 실제 PNG/MP4를 연결해야 하며 렌더 설정이나 장면 원본이 바뀌면 후속 검증을 다시 수행한다. 기존 대본·음성·시간표와 과거 결과를 그대로 보존할 수 있는 대신, 새로운 소재에는 그 근거에 맞는 모델·장면 코드를 별도로 작성해야 한다. 이 방식은 임의 주제의 모든 모델을 자동 생성하거나 물의 분자동역학·유체 시뮬레이션을 제공하지 않는다.
+1
View File
@@ -1,3 +1,4 @@
# 결정 기록
- [로컬 지침과 JSON 전달](0001-local-instructions.md): 개인용 Codex 사용과 네 사용자 검토에 맞춘 역할·기록 구성.
- [로컬 Blender 모델과 실제 애니메이션](0002-local-blender-rendering.md): 이미지 품질 개선과 모델·움직임 검증을 위한 제작 방식 전환.
+1 -1
View File
@@ -51,4 +51,4 @@
- 대상: [13 r2 실제 MP4/SRT](../../projects/water-hydrogen-bond-surface-tension/stages/13-compose/r2/review.md)와 [14 r2 여섯 영역 보고](../../projects/water-hydrogen-bond-surface-tension/stages/14-review/r2/review.md).
- 완료한 확인: 실제 1080×1920·50fps·5528F·110560ms, 31컷/38 SRT 원문·시간, 전체 AV 디코드·원 WAV/AAC 신호·원 입력 SHA 및 실제 최종 163프레임/모바일 표본 관찰. c02의 공중 연결선은 별도 전체 시도로 수정했고 첫 시도는 보존한다.
- 남은 범위: 현재 세션 오디오 입력 미지원과 정상 속도 전체 연속 재생 미확인으로 visual/audio/captions 전체 판정은 not_checked, 추천은 incomplete다. 원 WAV의 기존 사용자 수용을 새 MP4의 청취 승인으로 바꾸지 않는다.
- 영향: 실제 파일·검토 근거가 준비돼 13/14 awaiting_review를 제안하며 사용자 final 검토를 기다린다. 확인된 결함으로 재생성을 요구하거나 파일 부재로 실행을 멈춘 상태가 아니다. 시청에서 증상이 있으면 실제 시간/컷과 원인 단계의 새 버전으로 돌아간다.
- 영향: 총괄이 실제 파일·검토 근거를 확인해 13/14 awaiting_review와 같은 r2 결과의 final pending을 기록했다. 사용자 final 검토를 기다린다. 확인된 결함으로 재생성을 요구하거나 파일 부재로 실행을 멈춘 상태가 아니다. 시청에서 증상이 있으면 실제 시간/컷과 원인 단계의 새 버전으로 돌아간다.
+1 -1
View File
@@ -23,7 +23,7 @@ Blender 5.2.2에서 작은 검사 씬의 EEVEE/GPU와 Cycles/CPU 렌더·PNG/MP4
승인된 10 r2의 기준 모델, 11 r2의 62끝점 ID·실제 앵커, 12 r2의 31무음 MP4로 새 13 r2 MP4/SRT를 만들었다. 원 대본·제목·WAV·38자막은 유지했다. 실제 완성본은 1080×1920·50fps·5528프레임·110560ms이며 전체 AV 디코드·원 WAV/AAC 신호·모든 컷과 자막/주석 전환의 실제 최종 163표본을 확인했다. 합성 입력 검사의 24개 거부 사례도 통과한다.
[새 합성 검토](../../projects/water-hydrogen-bond-surface-tension/stages/13-compose/r2/review.md)와 [여섯 영역 보고](../../projects/water-hydrogen-bond-surface-tension/stages/14-review/r2/review.md)를 사용자 final 검토에 제출한다. 정상 속도 전체 시청·청취는 현재 세션에서 확인하지 못해 visual/audio/captions는 not_checked, 추천은 incomplete다. 13/14는 awaiting_review를 제안하며 새 final 승인이나 제작 완료를 기록하지 않았다. 영상 실행·파일 부재로 멈춘 상태는 아니다.
[새 합성 검토](../../projects/water-hydrogen-bond-surface-tension/stages/13-compose/r2/review.md)와 [여섯 영역 보고](../../projects/water-hydrogen-bond-surface-tension/stages/14-review/r2/review.md)를 사용자 final 검토에 제출한다. 정상 속도 전체 시청·청취는 현재 세션에서 확인하지 못해 visual/audio/captions는 not_checked, 추천은 incomplete다. 총괄이 실제 파일을 확인해 13/14를 awaiting_review, final을 같은 r2 결과의 pending으로 연결했다. 새 final 승인이나 제작 완료는 기록하지 않았다. 영상 실행·파일 부재로 멈춘 상태는 아니다.
1. 실제 새 MP4의 정상 속도 전체 재생·청취와 사용자 final 검토를 마친다.
2. 증상이 발견되면 실제 시간/컷과 원인 단계의 새 버전으로 수정한다.
+15
View File
@@ -87,3 +87,18 @@ JSON 34개 중 데이터 양식·예제 30개는 해당 스키마로 검증했
실제 최종 163프레임·29모바일 검사 판에서 전하 대상·원자/결합·물 영역 포함·같은 양/별도 비교 조건·확대개념도·글자/가림과 22 continuous/8 cut 연결을 직접 확인했다. 소스 프레임 검사를 최종 영상 검사로 대체하지 않았다. 정상 속도 전체 재생·청취 및 플랫폼 앱 UI는 미확인이므로 [14 보고](../../projects/water-hydrogen-bond-surface-tension/stages/14-review/r2/review.md)의 해당 영역은 not_checked, 추천은 incomplete다. 새 final 승인 전에는 제작 완료가 아니다.
렌더 당시 project 바이트는 별도 render-time-project.json에 보존했다. 이 증거 SHA와 현재 brief/settings/01–12 포인터·상태 및 topic/story/scenes 승인을 엄격히 대조한다. 총괄의 같은 13/14 포인터에 대한 정상 상태 변경과 final 검토 갱신을 입력 원본 변경과 구별한다. 기존/실패 시도·캐시·이전 r1을 삭제하지 않았다.
## 새 완성본 연결 후 저장소 통합 검사
2026-10-10, 실제 수락 MP4/SRT와 제출 자산을 동일 경로·SHA로 저장소 루트에 복사한 뒤 실행했다. 총괄은 이전 final 기록을 보존하고 13/14 awaiting_review 및 r2 final pending을 기록했다.
| 실제 실행 | 종료 코드 | 확인한 내용 |
| --- | --- | --- |
| 기존 Python의 `contracts/check.py` | 0 | 통합 상태에서 계약 회귀 10개 및 로컬 참조 |
| 같은 Python의 `tools/blender/test_runner.py` | 0 | 실행기 전체 회귀 17개 |
| 제작 renderer의 `npm.cmd run check` | 0 | 실제 새 입력과 24개 거부 사례 |
| 같은 Python의 전체 형식·스킬 검사 | 0 | 스키마 적용 결과·이력 64개, 역할 TOML 8개, 스킬 15개 각각 유효, 두 루트 지침 동일 |
| 별도 읽기 전용 최종 실물 검사 | 0 | 실제 영상·SRT·입력·렌더러 SHA, 원 WAV, 이전 기준/대표 파일 111개 보존, 전체 AV 디코드. 정상 속도 시청·청취는 미확인 |
| `git diff --check` | 0 | 통합 변경의 공백 오류 없음 |
이 검사에서 실제 원본·자막·영상은 바뀌지 않았다. 사용자 final 승인은 pending이며 기술 검사 통과를 해당 승인으로 바꾸지 않는다.
+1 -1
View File
@@ -118,7 +118,7 @@ pass는 여섯 영역 모두 pass이고 blocking 발견이 없을 때만 가능
## Blender 전환과 대표 품질 검토
[전달 형식](contracts.md)의 1.1 필드·타입·열거값을 사용한다. 새 양식은 1.1이며 기존 1.0의 정의·승인·실제 결과를 보존하고 선행 자료로 참조한다. 프로젝트 진행 상태·승인 열거값과 14단계·8역할·15스킬·네 검토는 그대로다.
[단계 스키마](../contracts/artifact.schema.json)의 1.1 필드·타입·열거값을 사용한다. 새 양식은 1.1이며 기존 1.0의 정의·승인·실제 결과를 보존하고 선행 자료로 참조한다. 프로젝트 진행 상태·승인 열거값과 14단계·8역할·15스킬·네 검토는 그대로다.
scene-director가 08에서 대표 Scene의 상태·카메라·해설 목적을 정하고 visual-designer/video-editor의 해당 책임으로 제한된 대표 .blend·PNG·짧은 MP4를 준비한다. 결과는 08 preview와 같은 버전 review.md에 기록한다. 이 예외는 scenes 승인 전에 품질을 검토하는 근거 제작만 허용한다. 정식 10–12를 준비·완료했다고 기록하거나 전체 제작을 진행하지 않는다. 대표 샘플의 실제 파일과 단순 배경·부드러운 조명·선명한 형태·변화 판독성을 07/08/09의 같은 scenes 검토에서 제시한다. 추가 승인 지점은 없다. 샘플이나 장면 변경은 08 새 버전에 기록하고 영향을 받는 09와 승인 묶음을 갱신한다.