Ir para o conteúdo

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..1 com 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 potrace incluí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/Head e B/Head convivem), 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 0001 e 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.