Changelog¶
v1.0.0 — Lançamento público¶
O primeiro lançamento público do Octo Vector Bridge — a ponte de line art entre Blender, Maya e Toon Boom Harmony.
Destaques¶
- Line art 3D → lápis nativos do Harmony — traços do Blender (Grease Pencil ou Pencil+) e do Maya (Pencil+) viram linhas de lápis vetoriais editáveis do Harmony, fiéis à câmera e quadro a quadro.
- Largura variável preservada — pressão real por ponto do Grease Pencil; para o Pencil+, a largura e a cor do EPS achatado são reconstruídas amostrando o render raster. WYSIWYG: o que o Previewer mostra é o que chega.
- Traçador Potrace incluído — raster → vetor no estilo Image-Trace em Black & White, Greyscale e Colour (median-cut de ponto mais distante). B&W traça formas preenchidas com Potrace e linhas centrais de lápis com thinning de Zhang–Suen.
- Export (Harmony → SVG / PDF / AI) — a ponte anda nos dois sentidos. Um botão ao lado do importador exporta a arte vetorial de um Read node — as quatro art layers, espessura exata por ponto, cores e alfa reais — para SVG (mantém a pressão para round-trip), PDF ou AI. Lê o desenho, não o render, então rig e efeito nunca deixam a saída preta. Art layers bitmap aparecem cinzas com o motivo; PDF/AI trazem uma nota fixa de que desenham uma largura por linha. Blender e Maya ganham o contêiner AI também.
- A árvore Structure — uma árvore de drawings → art layers → passes, autorada no Blender ou no Maya e lida de volta pelo importador do Harmony como a mesma árvore. Ela é o layout de pastas no disco: reordene com as setas ou arrastando, e a posição vira o índice
NN_da pilha. - Passes de bitmap — um passe pode produzir uma sequência PNG além de vetores: um Render Pass ou um nó do Compositor no Blender, ou um render de Materials no Maya (qualquer renderer, com seu Render Layer e AOV). Linhas e renders caem no mesmo drawing, em art layers diferentes.
- Importação de bitmap — traga um raster como um Toon Boom bitmap autocontido (padrão) ou mantenha-o vinculado ao arquivo original.
- Receita por subartlayer (Grease Pencil) — cada subartlayer guarda como seus modifiers Line Art / Thickness estão configurados: ordem da pilha, on/off, edge types e largura — de modo que um único modifier Line Art serve a um outline e a um inline. Seu Content filtra a cena por collection / objeto / layer (com um alternador Except e um dropdown de layer com escopo); um alternador Live Preview (desligado por padrão) mantém seu viewport e histórico de undo intocados até a exportação; Restore Defaults e Update Defaults from Scene gerenciam a baseline do próprio artista.
- Subartlayers do Pencil+ — um único modo unificado (Blender e Maya) — uma subartlayer filtra sua configuração do Pencil+ por Line e Line Set (com um alternador Except), e seu painel Line Sets é a receita por Line Set: quais edge types cada um gera (Outline, Object, Intersection, …), Visible e Hidden de forma independente, mais um multiplicador Thickness que escala todos os brushes do Line Set de uma vez. Geradores criam uma subartlayer por Line ou por Line + Line Set; um Live Preview e Restore / Update Defaults impedem que o preview suje sua configuração.
- Oclusão — o raycast de câmera remove traços escondidos atrás de geometria (o descarte que a exportação SVG nativa do Blender não consegue fazer). Todo mesh sólido bloqueia linhas; desligue o ícone de render de um mesh para isentá-lo. É decidido por layer — um layer de Line Art exporta como está, arte desenhada à mão leva o raycast — com uma sobreposição WYSIWYG de mantidos-vs-descartados e um opt-out Export as-is por subartlayer.
- Import (Blender) — uma aba OVB com o switch Export | Import no topo. O import é uma fila no formato do importer do Harmony: Add de arquivos
.svg, da pasta de um drawing ou de um export inteiro do OVB (Add Folder), depois Import. Tracks vetoriais viram Grease Pencil — larguras por ponto como raio do traço, cores e gradientes como materiais, curvas mantidas em Bezier — e tracks bitmap viram image planes, os dois no plano da câmera ativa, então um export reimporta onde a câmera viu. As art layers entram como Objects separados numa Collection por drawing, ou como Layers de um objeto só; os números de frame podem ser mantidos; Lights vem desligado, para a arte bater com o arquivo. Reload relê a fonte no lugar e mantém suas edições no objeto. - Fills e gradientes atravessam a ponte (Blender) — o exporter do Blender escreve fills do Grease Pencil como paths preenchidos e materiais de gradiente de duas cores como gradientes SVG; o importer transforma gradientes SVG em materiais de gradiente com o eixo no traço, e mantém curvas como Bezier. No Harmony, os swatches Line e Fill mostram as cores da fonte em faixas e as contam no hover.
- Previewer WYSIWYG — enquadramento de câmera em field-space, zoom ancorado no cursor, pan com botão do meio / Space, onion skin (vetor e bitmap), snapping e field grid.
- Drawings em Original Bitmap — um drawing pode ser um bitmap achatado em vez de quatro art layers; o seletor de art layer vira uma Recipe que diz de qual pilha ele é achatado, e trilhas vetoriais nunca entram nela.
- Outliner = node graph — a árvore que você constrói é a rede do Harmony escrita no Apply: pegs, groups, composites e agregação de irmãos por ordem de pintura. Delete Node (eleva filhos) vs Delete Hierarchy.
- Inspector por art layer — envelope de espessura + detalhe de pressão, limpeza de pontos, tip taper e transformações de drawing-inteiro/peg, cada um por subartlayer.
- Pincéis de weight-paint + pincel Thickness — Relax, Simplify e Pressure pintam uma máscara
0..1com mapa de calor; o pincel não-ponderado Thickness esculpe o peso da linha diretamente. Todos não-destrutivos com um Clear de um clique. - Pivô do gizmo — os gizmos de art layer (azul) e de peg (verde) têm um pivô arrastável: o arrasto de canto escala a partir dele, então um personagem escala pela sola do pé sem sair do lugar. Alt escala pelo centro.
- Paletas — importe para qualquer paleta da cena ou para uma nova, e crie, renomeie e recolora cores direto no card do drawing. Elas viram reais no Apply, e uma cor existente com o mesmo RGBA é reaproveitada, nunca duplicada.
- Merge split lines — opcionalmente rejunta os pedaços do split planar do Harmony em traços editáveis únicos, com um alternador mestre tri-estado e sobrescritas por art layer.
- Subartlayers (multi-pass) — empilhe vários passos numa art layer como objetos vetoriais separados; organizador em tempo de importação, colapsado de forma limpa numa art layer do Harmony no Apply.
- Um diálogo de importação — uma única navegação dá conta de uma pasta, arquivos avulsos, uma sequência de imagens ou um quadro isolado, classificando art layers por pasta/nome e caindo arte avulsa em Line Art por padrão.
- Teste de 30 dias + licença perpétua — uma ativação vinculada à máquina cobre Blender, Maya e Harmony, via Creem.
Arquitetura¶
- Um único core compartilhado e neutro em relação ao DCC (
ovc_core) com adaptadores finos por host para Blender, Maya e Harmony. - Funções puras e compartilhadas de largura/ponto/taper rodam de forma idêntica no Previewer e no escritor do Harmony — a garantia por trás do WYSIWYG.
- Node graph emitido através de um emissor no estilo OSA portado (peg / group / composite, MPI/MPO, agregação de irmãos).
- Binário
potraceincluído — sem instalação externa.
Correções — build 5cf356d (2026-09-15)¶
- Harmony: drawings dentro de um grupo caíam fora dele, sem cabo — um drawing colocado sob um grupo na árvore Structure era criado em Top, e o Harmony recusa calado um cabo que atravessa a borda do grupo. Agora ele nasce dentro do grupo, ligado ao seu peg, e esse peg recebe escala e offset.
- Harmony: dois drawings com o mesmo nome em grupos diferentes — o segundo chegava em branco, ligado ao drawing do primeiro. Os nomes agora são checados por grupo (
A/HeadeB/Headconvivem), e uma duplicata de verdade vira aviso mostrando o nome que vai sair, não bloqueio. - Harmony: padrões do import vetorial — Simplify 10% e Corners 90% (eram 55 / 55): uma limpeza leve que mantém os cantos vivos. O Image Trace mantém os valores dele.
- Harmony: o Message Log não é mais inundado por
file does not exists ()a cada frame importado. - Blender: falhas do Export aparecem — um pass que se recusava a rodar não avisava ninguém, e o botão Export parecia morto. O motivo agora aparece num popup.
- Blender: o Clean Art Folders roda antes da checagem de conflito, e também tira os arquivos do outro tipo das pastas cujo pass trocou entre vetor e bitmap — antes a checagem recusava primeiro, mandando marcar a caixa que já estava marcada.
- Blender: os exports sempre levam extensão de arquivo — com Output › File Extensions desligado, os renders saíam como
0001e os importers nunca os viam. O OVB força durante o export e restaura sua configuração depois. - Licença: Activation limit reached numa máquina já ativada — o id da máquina incluía o adaptador de rede, então trocar de Wi-Fi, Ethernet ou VPN fazia o mesmo computador parecer outro. Agora ele usa o id de máquina do próprio sistema (MachineGuid no Windows, UUID de hardware no macOS). Um arquivo de licença existente é curado uma vez, online, sem nova ativação.
Correções — build b79313d (2026-09-03)¶
- Maya: o painel não fica mais mais largo que a janela — criar um pass esticava a árvore e empurrava License / Convert pra fora da borda direita; o corpo do scroll agora fica preso à largura da janela em qualquer tamanho. (build f561fbe)
- Maya: arrastar e soltar na árvore Structure — arraste um pass acima/abaixo de outro, sobre um container (cai por último nele) ou sobre um drawing (seu container padrão). Containers e drawings ficam no lugar; as setas continuam funcionando. (build f561fbe)
- Maya: o
+cria o pass no container que você selecionou — sempre caía em Line Art, fosse o que fosse que estivesse marcado na árvore. (build 0af2a9a) - Maya: acabou o flash ao clicar entre passes — a reconstrução da seção de settings mostrava por um instante widgets descartados como uma janela solta; agora eles são escondidos antes de sair. Os tooltips das linhas da árvore também saíram (o ícone e o Produces já dizem isso). (build 377c3fe)
- Maya: trocar o Produces atualiza os settings abaixo na hora — os pickers do Pencil+ ou os de layer/pass do Materials só apareciam depois de clicar em outro pass. (build cf7e545)
- Harmony: deletar com − uma cor criada no app — depois de qualquer refresh da lista o − ficava habilitado sem seleção (o clique não fazia nada), e uma cor criada pelo picker de uma art layer não aparecia na lista da paleta do drawing até a página perguntar de novo. Ambos corrigidos. (build ac25ffc)
- Harmony: um import de bitmap podia deixar a cena sem conseguir salvar — Missing folder …/ovb_raster_… / Cannot write palette list. Os desenhos intermediários eram escritos numa pasta temporária, então a paleta que o Harmony gravava ao lado deles apontava pra lá, e o próprio import apagava essa pasta ao terminar. Agora eles ficam na pasta do elemento, que é onde a paleta pertence. (build 947b18e)
- Harmony: sequências longas de bitmap importam muito mais rápido e não estouram mais a memória — cada frame disparava até dois processos
utransform(cerca de 1700 numa sequência de 840 frames, mais de uma hora), e o import inteiro ficava num único bloco de undo. Agora o desenho já convertido é reaproveitado em vez de reconvertido (um disparo por frame, ou nenhum), e imports longos fecham o bloco de undo em fatias para o Harmony poder liberar memória. (build 947b18e) - Harmony: sequências vetoriais longas não estouram mais a memória (Import JS error: bad allocation e depois o Harmony fechando sem mensagem). O import agora é em streaming: a cada 25 frames ele analisa, escreve, aplica a espessura e libera antes de ler os próximos 25 — medido numa exportação real de 840 frames, o pico do parser caiu de ~0,9 GB retidos o import inteiro para ~44 MB. Imports acima de 100 frames também limpam o histórico de undo do Harmony enquanto avançam, então as cópias de traço guardadas para o undo param de se acumular (esse import não é desfazível — salve antes). Um chunk que falha agora interrompe o import com mensagem em vez de seguir até o crash. (build cec0dd0)
- Harmony: Checkpoint save (opt-in) — um novo checkbox ao lado de Merge split lines salva a cena a cada 100 frames de um import longo, para o Harmony poder liberar os desenhos já escritos em vez de segurar todos até o fim. Fica travado (o motivo aparece ao passar o mouse) até a cena ter sido salva em disco. (build cec0dd0)
-
Harmony: frames de bitmap vinham vazios depois do primeiro checkpoint save — o vetor ficava certo. O Harmony renomeia a pasta e o nome físico do elemento quando a cena é salva (a documentação dele diz isso), e o caminho do bitmap lia os dois uma vez antes do laço, então todo TVG seguinte era escrito onde o Harmony não olha mais. Os dois são relidos após cada save. (build 8ed7e63)
-
Pencil+ é opcional — Grease Pencil é a fonte padrão e não precisa de nada. A fonte Pencil+ agora avisa em vez de bloquear, e diz claramente que é o Pencil+ 4 Render App pago da PSOFT (não só o add-on Line gratuito) que desenha as linhas.
- Add-on do Blender não ativava numa instalação limpa (
No module named pencil_plus) — o core vendorizado agora é importado relativo, o que também elimina os avisos de Policy violation nas Preferences. - Um traceback impresso a cada abertura de arquivo foi removido.
- Instalador — a barra Octo Tools compartilhada no Harmony é reconstruída a partir de todas as ferramentas instaladas: desinstalar uma não apaga mais os botões das outras; os add-ons do Blender são habilitados automaticamente após instalar; os downloads levam o id do release (
1.0.0-<id>) e a janela do instalador mostra o mesmo id. - Painel do Maya cortado à direita ao selecionar um pass Pencil+ — as duas colunas de checkboxes com rótulo do card de receita forçavam a janela além de 480 px. O card agora lista cada tipo de edge uma vez, com caixas Visible / Hidden sem texto. (build 8fd672d)
Problemas conhecidos¶
- Todas as correções recentes são validadas headless (Qt offscreen); a validação ao vivo no host em Blender / Maya / Harmony está em andamento.
- A reconstrução de largura variável do Pencil+ depende de um elemento de render Line raster limpo; um render ruidoso pode suavizar a largura recuperada.
- O instalador Windows é o alvo principal; o empacotamento macOS e a assinatura de código ainda estão por vir.
Histórico pré-lançamento¶
O Octo Vector Bridge foi desenvolvido de forma privada ao longo do fim de 2025 e 2026. O histórico público começa com a v1.0.0.