첫 커스텀 셀 만들기 — Q 모드 입문
셀은 Player에 입히는 옷이자 도구입니다. 이 글에서는 VideoPlayer에 "자동 자막" 셀을 직접 만들어, 컨트롤바부터 소켓 연결, 마켓 등록까지 한 바퀴 돌아봅니다.
셀이란 무엇인가
LUTable에서 Player는 작업 대상의 자리입니다. VideoPlayer는 영상이 거주하는 곳이죠. 그 자체로는 재생만 할 줄 압니다. 셀(Cell)은 그 Player에 기능을 입히는 단위입니다. 자막 셀을 입히면 자막이, 색보정 셀을 입히면 색보정 도구가 생깁니다. Tab으로 갈아끼웁니다.
Q 모드 진입
셀을 만들 때는 Q 모드로 들어갑니다. Q 모드는 "이 Player를 위한 도구를 설계하는" 전용 작업 공간입니다. 평소 작업(편집) 모드와 분리되어 있어, 도구 제작과 도구 사용이 섞이지 않습니다.
1. 컨트롤바 구성
자동 자막 셀에 필요한 컨트롤을 컨트롤바에 올립니다.
- 언어 선택 드롭다운 — 인식할 음성 언어.
- 자막 스타일 토글 — 폰트, 크기, 위치.
- 생성 버튼 — 음성 인식 실행.
컨트롤은 닫힌 카탈로그에서 고릅니다. 임의 HTML을 짜는 게 아니라, 의미 기호로 "드롭다운", "토글", "버튼"을 부릅니다. 덕분에 디자인 일관성이 도구 수준에서 보장됩니다.
2. 소켓 노드 연결
셀이 Player와 데이터를 주고받으려면 소켓이 필요합니다. Alt+드래그로 입력·출력 소켓을 만듭니다.
- 입력 소켓: VideoPlayer의 오디오 트랙을 받습니다.
- 출력 소켓: 생성된 자막 트랙을 돌려줍니다.
소켓은 타입이 있습니다. 오디오 소켓에 이미지 출력을 꽂을 수 없습니다. 엔진이 타입을 검증하므로, 잘못된 연결은 애초에 만들어지지 않습니다.
3. 미리보기
Q 모드 안에서 실제 영상에 셀을 적용해 바로 미리봅니다. 생성 버튼을 누르면 음성 인식이 돌고, 자막이 타임라인에 정렬되어 나타납니다. 마음에 안 들면 스타일을 바꿔 다시.
4. 저장과 마켓 등록
완성된 셀은 개인 라이브러리에 저장됩니다. 더 나아가 Cell 마켓에 등록하면 다른 사람도 씁니다. 등록 시 필요한 메타데이터:
- 표시 이름, 썸네일, 설명
- 지원 Player 종류 (여기선 VideoPlayer)
- 입출력 소켓 명세, 권한
- 호환 버전, semver, 라이선스
- 예제 미리보기
무료 또는 유료로 설정할 수 있고, 유료 판매 시 수수료가 적용됩니다(Pro 15%, Team 10%).
마무리
처음 만드는 사람도 보통 몇 시간이면 첫 셀을 올립니다. 그리고 그 셀이 다른 누군가의 작업을 빠르게 만듭니다. 각 도메인의 첫 사용자가 셀을 만들면, 그 도메인의 LUTable이 자생합니다 — 그게 마켓이 매개하는 진화입니다.