콘텐츠로 이동

변경 이력

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 DefaultsUpdate 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 PreviewRestore / 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에서 시작됩니다.