변경 이력¶
v1.0.0 — 공개 릴리스¶
Octo Vector Bridge의 첫 공개 릴리스 — Blender, Maya, Toon Boom Harmony를 잇는 라인아트 브릿지.
주요 기능¶
- 3D 라인아트 → 네이티브 Harmony 펜슬 — Blender(Grease Pencil 또는 Pencil+)와 Maya(Pencil+) 스트로크가 편집 가능한 Harmony 벡터 펜슬 라인이 되며, 카메라 정확도로 프레임 단위로 변환됩니다.
- 가변 폭 보존 — Grease Pencil의 실제 포인트별 압력. Pencil+의 경우, 평탄화된 EPS 폭과 색상이 래스터 렌더를 샘플링하여 재구성됩니다. WYSIWYG: Previewer가 보여주는 것이 곧 결과물입니다.
- 번들 Potrace 트레이서 — Image-Trace 스타일 래스터 → 벡터 변환을 Black & White, Greyscale, Colour(farthest-point median-cut)로 지원. B&W는 채워진 형태를 Potrace로, 펜슬 중심선을 Zhang–Suen thinning으로 트레이스합니다.
- Export (Harmony → SVG / PDF / AI) — 브리지가 양방향이 됩니다. 임포터 옆의 버튼이 Read 노드의 벡터 아트를 — 네 아트 레이어, 점 단위 정확한 두께, 실제 색상과 알파 — SVG(라운드트립을 위해 압력 유지), PDF 또는 AI로 내보냅니다. 렌더가 아닌 드로잉을 읽으므로 리그와 이펙트가 결과를 검게 만들지 않습니다. 비트맵 아트 레이어는 이유와 함께 회색으로 표시되고, PDF/AI에는 선당 두께 하나로 그린다는 고정 안내문이 붙습니다. Blender와 Maya에도 AI 컨테이너가 추가됩니다.
- Structure 트리 — 드로잉 → 아트 레이어 → 패스로 된 하나의 트리를 Blender나 Maya에서 작성하면 Harmony 임포터가 같은 트리로 읽어 옵니다. 이 트리가 곧 디스크의 폴더 구조입니다: 화살표나 드래그로 순서를 바꾸면 그 위치가
NN_스택 인덱스가 됩니다. - 비트맵 패스 — 패스는 벡터뿐 아니라 PNG 시퀀스도 만들 수 있습니다: Blender의 Render Pass 또는 Compositor 노드, Maya의 Materials 렌더(렌더러 무관, Render Layer와 AOV 포함). 선과 렌더가 같은 드로잉의 서로 다른 아트 레이어에 안착합니다.
- 비트맵 임포트 — 래스터를 독립적인 Toon Boom 비트맵(기본값)으로 가져오거나 원본 파일에 연결된 상태로 유지합니다.
- 오클루전 — 레이캐스트 홀드아웃 컬링으로 지오메트리 뒤에 가려진 스트로크를 제거합니다(Blender의 네이티브 SVG 익스포트가 할 수 없는 컬링). 유지 대 컬링 여부를 보여주는 WYSIWYG 오버레이 포함.
- Import SVG as Grease Pencil (Blender) —
.svg하나 또는 OVB 익스포트 폴더 전체가 Grease Pencil 오브젝트로 돌아옵니다: art layer마다 레이어 하나, 점별 굵기는 스트로크 반지름으로, 색상은 머티리얼로, 폴더는 프레임 시퀀스로, 활성 카메라 평면에 놓여 익스포트가 카메라가 본 자리로 다시 들어옵니다. 익스포트 폴더의 모든 드로잉이 들어오고(개별 오브젝트 또는 레이어 그룹), 곡선은 베지어로 남으며, 프레임 번호를 유지할 수 있고, Reload는 오브젝트에 가한 편집을 지킨 채 소스를 제자리에서 다시 읽습니다. - 채우기와 그라디언트가 다리를 건넙니다 (Blender) — Blender 익스포터는 Grease Pencil 채우기를 채워진 path로, 두 색 그라디언트 머티리얼을 SVG 그라디언트로 씁니다. 임포터는 SVG 그라디언트를 축이 스트로크에 기록된 그라디언트 머티리얼로 바꾸고, 곡선을 베지어로 유지합니다. Harmony에서는 Line과 Fill 색상 스와치가 소스 색상을 줄무늬로 보여 주고 호버 시 개수를 셉니다.
- WYSIWYG Previewer — 필드 공간 카메라 프레이밍, 커서 고정 줌, 가운데 마우스 / Space 팬, 어니언 스킨(벡터 및 비트맵), 스냅 및 필드 그리드.
- 아웃라이너 = 노드 그래프 — 여러분이 만드는 트리가 Apply 시 기록되는 Harmony 네트워크입니다: 펙, 그룹, 컴포지트, 그리고 페인트 순서에 따른 형제 노드 애그리게이션. Delete Node(자식 끌어올리기) 대 Delete Hierarchy.
- 아트 레이어별 Inspector — 두께 엔벨로프 + 압력 디테일, 포인트 정리, 팁 테이퍼, 그리고 드로잉 전체/펙 트랜스폼, 각각 서브아트레이어별로.
- Original Bitmap 드로잉 — 드로잉이 네 개의 아트 레이어 대신 하나의 평탄화된 비트맵이 될 수 있습니다. 아트 레이어 선택기는 어떤 스택을 평탄화할지 지정하는 Recipe가 되며, 벡터 트랙은 결코 포함되지 않습니다.
- 웨이트 페인트 브러시 + Thickness 브러시 — Relax, Simplify, Pressure는
0..1히트맵 마스크를 페인트하고, 비가중 Thickness 브러시는 라인 두께를 직접 조각합니다. 모두 비파괴적이며 원클릭 Clear 지원. - Merge split lines — Harmony의 planar-split 조각들을 선택적으로 하나의 편집 가능한 스트로크로 다시 결합하며, 3단계 마스터 토글과 아트 레이어별 오버라이드를 지원합니다.
- 서브아트레이어(멀티패스) — 여러 패스를 하나의 아트 레이어에 별도의 벡터 객체로 쌓습니다. 임포트 시점의 정리 도구이며, Apply 시 하나의 Harmony 아트 레이어로 깔끔하게 접힙니다.
- 기즈모 피벗 — 아트 레이어(파랑)와 peg(초록) 기즈모 모두 드래그할 수 있는 피벗을 가집니다. 모서리 드래그는 피벗을 기준으로 스케일하므로 캐릭터를 발바닥 기준으로 키워도 밀리지 않습니다. Alt는 중앙 기준으로 스케일합니다.
- 팔레트 — 씬의 어떤 팔레트로도, 또는 새 팔레트로 임포트할 수 있고, 드로잉 카드에서 바로 색을 만들고 이름을 바꾸고 색상을 바꿀 수 있습니다. Apply 시 실제로 만들어지며, RGBA가 같은 기존 색은 중복 없이 재사용됩니다.
- 서브아트레이어별 레시피(Grease Pencil) — 각 서브아트레이어는 자신의 Line Art / Thickness 모디파이어가 어떻게 구성되는지 저장합니다: 스택 순서, 켜기/끄기, 엣지 유형, 그리고 폭 — 그래서 하나의 Line Art 모디파이어가 아웃라인 과 인라인을 함께 담당합니다. Content는 컬렉션 / 객체 / 레이어로 씬을 필터링하며(Except 토글과 범위가 지정된 레이어 드롭다운 포함), Live Preview 토글(기본적으로 꺼짐)은 익스포트 전까지 뷰포트와 실행 취소 이력을 건드리지 않고, Restore Defaults와 Update Defaults from Scene는 아티스트 자신의 기준선을 관리합니다.
- Pencil+ 서브아트레이어 — 하나의 통합 모드(Blender 및 Maya) — 서브아트레이어는 Line 과 Line Set으로 Pencil+ 설정을 필터링하며(Except 토글 포함), Line Sets 패널은 Line Set별 레시피입니다: 각각이 어떤 엣지 유형을 생성하는지(Outline, Object, Intersection, …), Visible 과 Hidden을 독립적으로, 그리고 Line Set 전체의 브러시를 한 번에 스케일하는 Thickness 배율. 생성기는 Line당 또는 Line + Line Set당 하나의 서브아트레이어를 만들며, Live Preview와 Restore / Update Defaults가 프리뷰로 설정이 더럽혀지는 것을 막습니다.
- 하나의 임포트 대화상자 — 단일 브라우즈로 폴더, 느슨한 파일, 이미지 시퀀스, 단일 프레임을 처리하며, 폴더/이름으로 아트 레이어를 분류하고 느슨한 아트는 Line Art로 기본 설정합니다.
- 30일 체험판 + 영구 라이선스 — 하나의 컴퓨터 바인딩 활성화가 Creem를 통해 Blender, Maya, Harmony를 모두 커버합니다.
아키텍처¶
- 하나의 공유된 DCC 중립 코어(
ovc_core)와 Blender, Maya, Harmony용 얇은 호스트별 어댑터. - 순수하고 공유된 폭/포인트/테이퍼 함수가 Previewer와 Harmony 라이터에서 동일하게 실행됩니다 — WYSIWYG의 보증 근거입니다.
- 포팅된 OSA 스타일 이미터를 통해 방출되는 노드 그래프(peg / group / composite, MPI/MPO, 형제 노드 애그리게이션).
- 번들
potrace바이너리 — 외부 설치 불필요.
수정 사항 — 빌드 b79313d (2026-09-03)¶
- Maya: 패널이 창보다 커지지 않습니다 — 패스를 만들면 트리가 늘어나 License / Convert 버튼이 오른쪽 밖으로 밀려났습니다. 이제 스크롤 본문은 어떤 크기에서도 창 너비에 고정됩니다. (빌드 f561fbe)
- Maya: Structure 트리에서 드래그 앤 드롭 — 패스를 다른 패스 위/아래, 컨테이너 위(마지막에 들어감), 드로잉 위(기본 컨테이너)로 끌어다 놓을 수 있습니다. 컨테이너와 드로잉은 고정이며 화살표도 그대로 동작합니다. (빌드 f561fbe)
- Maya:
+가 선택한 컨테이너에 새 패스를 만듭니다 — 트리에서 무엇을 선택했든 항상 Line Art에 들어갔습니다. (빌드 0af2a9a) - Maya: 패스를 클릭할 때 깜빡이던 현상 제거 — 설정 영역을 다시 만들 때 제거되는 위젯이 잠깐 별도 창으로 보였습니다. 이제 제거 전에 숨깁니다. 트리 행의 툴팁도 없앴습니다(아이콘과 Produces가 이미 알려줍니다). (빌드 377c3fe)
- Maya: Produces를 바꾸면 아래 설정이 즉시 갱신됩니다 — Pencil+ 선택기나 Materials의 layer/pass 선택기가 다른 패스를 클릭한 뒤에야 나타났습니다. (빌드 cf7e545)
- Harmony: 앱에서 만든 팔레트 색을 −로 삭제 — 목록이 갱신된 뒤 −가 선택 없이 활성 상태로 남아(클릭해도 아무 일 없음) 있었고, 아트 레이어 선택기에서 만든 색은 페이지가 다시 물어보기 전까지 드로잉 팔레트 목록에 나타나지 않았습니다. 둘 다 수정. (빌드 ac25ffc)
- Harmony: 비트맵 임포트 후 씬이 저장되지 않을 수 있던 문제 — Missing folder …/ovb_raster_… / Cannot write palette list. 중간 드로잉이 임시 폴더에 기록되어 Harmony가 그 옆에 쓴 팔레트도 그곳을 가리켰는데, 임포트가 끝나면서 그 폴더를 지웠습니다. 이제 팔레트가 있어야 할 엘리먼트 폴더에 기록됩니다. (빌드 947b18e)
- Harmony: 긴 비트맵 시퀀스의 임포트가 훨씬 빨라지고 메모리를 소진하지 않습니다 — 프레임마다 최대 두 개의
utransform프로세스를 실행했고(840프레임이면 약 1700개, 한 시간 이상), 임포트 전체가 하나의 실행 취소 블록에 담겼습니다. 이제 이미 변환된 드로잉을 다시 변환하지 않고 재사용하며(프레임당 한 번, 또는 0번), 긴 임포트는 실행 취소 블록을 나눠 커밋해 Harmony가 메모리를 놓을 수 있게 합니다. (빌드 947b18e) - Harmony: 긴 벡터 시퀀스가 더 이상 메모리를 소진하지 않습니다 (Import JS error: bad allocation 뒤에 Harmony가 아무 메시지 없이 종료되던 문제). 이제 임포트는 스트리밍으로 진행됩니다. 25프레임마다 파싱·기록·선 두께 적용 후 해제한 다음에야 다음 25프레임을 읽습니다 — 실제 840프레임 익스포트로 측정했을 때, 파서의 최대 메모리가 임포트 내내 붙잡고 있던 약 0.9 GB에서 약 44 MB로 줄었습니다. 100프레임을 넘는 임포트는 진행 중에 Harmony의 실행 취소 기록도 비우므로, 실행 취소용으로 보관되던 스트로크 복사본이 더 이상 쌓이지 않습니다(이런 임포트는 되돌릴 수 없으니 먼저 저장하세요). 실패한 청크는 이제 크래시까지 이어지는 대신 메시지와 함께 임포트를 멈춥니다. (빌드 cec0dd0)
- Harmony: Checkpoint save(선택) — Merge split lines 옆의 새 체크박스가 긴 임포트 중 100프레임마다 씬을 저장해, Harmony가 모든 드로잉을 끝까지 붙들고 있는 대신 이미 기록된 것을 놓을 수 있게 합니다. 씬이 디스크에 저장되기 전까지는 잠겨 있으며 마우스를 올리면 이유가 표시됩니다. (빌드 cec0dd0)
-
Harmony: 첫 체크포인트 저장 뒤 비트맵 프레임이 비어서 들어오던 문제 — 벡터는 정상이었습니다. Harmony는 씬을 저장할 때 엘리먼트의 폴더와 물리 이름을 바꾸는데(문서에 명시), 비트맵 경로는 루프 전에 둘을 한 번만 읽어 이후의 모든 TVG가 Harmony가 더는 보지 않는 곳에 기록됐습니다. 이제 저장마다 둘을 다시 읽습니다. (빌드 8ed7e63)
-
Pencil+는 선택 사항 — Grease Pencil이 기본 소스이며 추가로 필요한 것이 없습니다. Pencil+ 소스는 이제 차단 대신 경고만 하며, 선을 그리는 것은 PSOFT의 유료 Pencil+ 4 Render App(무료 Line 애드온만으로는 부족)임을 분명히 알려줍니다.
- 새 설치에서 Blender 애드온이 활성화되지 않던 문제(
No module named pencil_plus) — 내장 코어를 상대 경로로 가져오도록 바꿔 Preferences의 Policy violation 경고도 함께 사라졌습니다. - 파일을 열 때마다 출력되던 traceback을 제거했습니다.
- 설치 프로그램 — Harmony의 공용 Octo Tools 툴바가 설치된 모든 도구로부터 다시 만들어집니다. 한 도구를 제거해도 다른 도구의 버튼이 사라지지 않습니다. Blender 애드온은 설치 후 자동으로 활성화되며, 다운로드 파일명에 릴리스 id(
1.0.0-<id>)가 붙고 설치 프로그램 창에도 같은 id가 표시됩니다. - Pencil+ 패스를 선택하면 Maya 패널 오른쪽이 잘리던 문제 — 레시피 카드의 라벨 달린 체크박스 두 열이 창을 480px 이상으로 밀어냈습니다. 이제 카드는 각 엣지 타입을 한 번만 표시하고 Visible / Hidden 체크박스는 텍스트 없이 둡니다. (빌드 8fd672d)
알려진 문제¶
- 최근의 모든 수정 사항은 헤드리스(오프스크린 Qt)로 검증되었습니다. Blender / Maya / Harmony 전반의 호스트 내 실시간 검증은 진행 중입니다.
- Pencil+ 가변 폭 재구성은 깨끗한 래스터 Line 렌더 요소에 의존합니다. 노이즈가 많은 렌더는 복원된 폭을 부드럽게 만들 수 있습니다.
- Windows 인스톨러가 기본 대상입니다. macOS 패키징과 코드 서명은 아직 준비 중입니다.
사전 릴리스 이력¶
Octo Vector Bridge는 2025년 후반과 2026년에 걸쳐 비공개로 개발되었습니다. 공개 이력은 v1.0.0에서 시작됩니다.