Needle Engine para Blender
+
Needle Engine para Blender
O Needle Engine para Blender permite criar aplicaƧƵes web altamente interativas, flexĆveis e leves diretamente dentro do Blender. Use as poderosas ferramentas do Blender para configurar visualmente as suas cenas 3D, animar e projetar.
Instalar o Add-on do Blender
Certifique-se de que instalou o Blender 4.1 ou 4.2 e o node.js.
Descarregar Needle Engine para Blender
No Blender, vĆ” a
Edit > Preferences > Add-ons
e clique na seta para baixo para encontrar o botãoInstall from Disk
.Selecione o ficheiro zip descarregado (nomeado
needle-blender-plugin-*.zip
) para o instalar.Pesquise por "Needle" na barra de pesquisa de Add-ons e certifique-se de que
Needle Engine Exporter for Blender
estĆ” ativado.

Primeiros Passos
Obrigado por usar o Needle Engine para Blender.
Com este add-on pode criar experiĆŖncias WebGL e WebXR altamente interativas e otimizadas dentro do Blender, que funcionam usando o Needle Engine e o three.js.
SerÔ capaz de sequenciar animações, 'cozinhar' (lightmap) facilmente as suas cenas, adicionar interatividade ou criar os seus próprios scripts escritos em Typescript ou Javascript que são executados na web.
*Combinando definições de iluminação e ambiente entre Blender e Needle Engine. As luzes de ambiente HDRI são automaticamente exportadas, diretamente do Blender. Depois de guardar, a pÔgina é automaticamente recarregada.*
:::tip Fornecer Feedback
O seu feedback é inestimÔvel na hora de decidir quais funcionalidades e fluxos de trabalho devemos priorizar. Se tiver feedback para nós (bom ou mau), por favor, informe-nos no fórum! :::
Exemplos para Blender
Primeiro crie ou abra um novo ficheiro blend que pretende exportar para a web.
Abra a janela Propriedades e abra a categoria Cena. Selecione um Project Path
no painel Needle Engine. Em seguida, clique em Generate Project
. Ele irĆ” instalar e iniciar automaticamente o servidor - assim que terminar, o seu navegador deverĆ” abrir e a cena three.js serĆ” carregada.

Por predefinição, a sua cena serÔ automaticamente re-exportada quando guardar o ficheiro blend.
Se o servidor local estiver a funcionar (por exemplo, clicando em Run Project
), o website irĆ” atualizar automaticamente com o seu modelo alterado.
Quando o seu projeto web jĆ” existe e pretende apenas continuar a trabalhar no website
clique no botão azul Run Project
para iniciar o servidor local:
Visão geral do Painel do Projeto

O caminho para o seu projeto web. Pode usar o pequeno botão de pasta à direita para selecionar um caminho diferente.
O botão
Run Project
aparece quando o Caminho do Projeto aponta para um projeto web vƔlido. Um projeto web Ʃ vƔlido quando contƩm umpackage.json
Directory
abre o diretório do seu projeto web (oProject Path
)Este botão re-exporta a cena atual como um GLB para o seu projeto web local. Isto também acontece por predefinição ao guardar o seu ficheiro blend.
Code Editor
tenta abrir o espaço de trabalho do VSCode no seu projeto webSe trabalhar com vÔrias cenas num ficheiro blend, pode configurar qual cena é a sua cena Principal e deve ser exportada para a web. Se algum dos seus componentes referenciar outra cena, eles também serão exportados como ficheiros GLB separados. Ao clicar no botão "Export", a sua cena Principal serÔ a que é carregada no navegador.
Use os botƵes
Build: Development
ouBuild: Production
quando quiser carregar o seu projeto web para um servidor. Isto irĆ” empacotar o seu projeto web e produzir os ficheiros que pode carregar. Ao clicar emBuild: Production
, também aplicarÔ otimização às suas texturas (serão comprimidas para a web)Abrir a documentação
DefiniƧƵes do Blender
Gestão de Cores
Por predefinição, a viewport do Blender estÔ definida para Filmic
- com esta definição, as suas cores no Blender e no three.js não corresponderão.
Para corrigir isto, vÔ para a categoria Renderização do Blender e no painel Gestão de Cores selecione View Transform
: Standard

Iluminação de Ambiente
Pode mudar a iluminação de ambiente e o skybox usando as opções de sombreamento da Viewport. Atribua um cubemap para usar para iluminação ou para o skybox de fundo. Pode ajustar a intensidade ou o desfoque para modificar a aparência ao seu gosto.
Nota: Para tambƩm ver o cubemap do skybox no navegador, aumente a World Opacity
para 1.
Nota: Alternativamente, pode ativar a definição Scene World
no separador Sombreamento da Viewport para usar a textura de ambiente atribuĆda nas definiƧƵes do mundo do Blender.

Alternativamente, se não quiser ver o cubemap como fundo, adicione um componente Câmara à sua Câmara do Blender e mude clearFlags: SolidColor
- note que as definiƧƵes backgroundBlurriness
e backgroundIntensity
da Câmara substituem as definições de sombreamento da Viewport.

Adicione a sua iluminação de ambiente e skybox HDRI / EXR personalizados
Exportar
Para excluir um objeto de ser exportado, pode desativar a visualização na Viewport e na Renderização (veja a imagem abaixo)

Animação š
Para casos de uso simples, pode usar o componente Animação para reprodução de um ou múltiplos animation clips.
Basta selecionar o seu objeto, adicionar um componente Animação e atribuir o clip (pode adicionar clips adicionais para serem exportados para o array clips.
Por predefinição, apenas reproduzirĆ” o primeiro clip atribuĆdo quando playAutomatically
estiver ativado. Pode acionar os outros clips usando um componente typescript personalizado simples)
AnimatorController
O controlador do animator pode ser criado para cenÔrios mais complexos. Funciona como uma mÔquina de estados que lhe permite criar múltiplos estados de animação num grÔfico e configurar condições e definições de interpolação para fazer a transição entre eles.
*Criar e exportar [mƔquinas de estados do animator](#animatorcontroller) para controlar animaƧƵes complexas de personagens*
Criar um AnimatorController
O editor do AnimatorController pode ser aberto usando o dropdown EditorType no canto superior esquerdo de cada painel:

*Criar um novo asset de animator-controller ā ou selecionar um dos seus assets criados anteriormente*
Visão geral do GrÔfico

Use
Shift+A
para criar um novo AnimatorStateO nó
Parameters
serÔ criado assim que adicionar o primeiro nó. Selecione-o para configurar parâmetros para serem usados em transições (através do painel Nó na borda direita)Este é um AnimatorState. o estado laranja é o estado inicial (pode ser alterado usando o botão
Set default state
no painel Nó/Propriedades)As Propriedades para um AnimatorState podem ser usadas para configurar uma ou múltiplas transições para outros estados. Use o array
Conditions
para selecionar parâmetros que devem corresponder à condição para fazer a transição.
Usar um AnimatorController
Para usar um AnimatorController, adicione um componente Animator ao objeto raiz das suas animaƧƵes e selecione o asset AnimatorController que pretende usar para este objeto.

Pode definir os parâmetros do Animator a partir de typescript ou, por exemplo, usando o evento de um componente Botão.
Linha do Tempo ā Exportação de NLA Tracks š¬
Pode exportar NLA tracks do Blender diretamente para a web.
Adicione um componente PlayableDirector (atravƩs de Add Component
) a qualquer objeto do Blender. Atribua os objetos na lista animation tracks
no componente para o qual pretende que as NLA tracks sejam exportadas.


::: details Exemplo de código para reprodução interativa da linha do tempo
Adicione este script a src/scripts
(veja a secção de componentes personalizados) e adicione-o a qualquer objeto no Blender para fazer com que o tempo de uma linha do tempo seja controlado por scrolling nos navegadores
import { Behaviour, PlayableDirector, serializable, Mathf } from "@needle-tools/engine";
export class ScrollTimeline extends Behaviour {
@serializable(PlayableDirector)
timeline?: PlayableDirector;
@serializable()
sensitivity: number = .5;
@serializable()
clamp: boolean = false;
private _targetTime: number = 0;
awake() {
this.context.domElement.addEventListener("wheel", this.onWheel);
if (this.timeline) this.timeline.pause();
}
private onWheel = (e: WheelEvent) => {
if (this.timeline) {
this._targetTime = this.timeline.time + e.deltaY * 0.01 * this.sensitivity;
if (this.clamp) this._targetTime = Mathf.clamp(this._targetTime, 0, this.timeline.duration);
}
}
update(): void {
if (!this.timeline) return;
const time = Mathf.lerp(this.timeline.time, this._targetTime, this.context.time.deltaTime / .3);
this.timeline.time = time;
this.timeline.pause();
this.timeline.evaluate();
}
}
:::
Interatividade š
Pode adicionar ou remover componentes a objetos na sua hierarquia usando o painel Componentes do Needle:

Por exemplo, adicionando um componente
OrbitControls
ao objeto câmaraobtém controlos bÔsicos da câmara para dispositivos móveis e desktopAjuste as definições para cada componente nos respetivos painéis
Os componentes podem ser removidos usando o botão X no canto inferior direito:

Componentes Personalizados
Componentes personalizados também podem ser facilmente adicionados simplesmente escrevendo classes Typescript. Serão automaticamente compilados e aparecerão no Blender quando guardados.
Para criar componentes personalizados, abra o espaƧo de trabalho atravƩs do painel Projeto do Needle e adicione um ficheiro de script .ts
em src/scripts
dentro do seu projeto web. Por favor, consulte a documentação de scripting para aprender como escrever componentes personalizados para o Needle Engine.
::: warning Nota
Certifique-se de que @needle-tools/needle-component-compiler
2.x estĆ” instalado no seu projeto web (package.json devDependencies)
:::
Lightmapping š”
O Needle inclui um plugin de lightmapping que torna muito fÔcil 'cozinhar' (bake) belas luzes em texturas e trazê-las para a web. O plugin irÔ gerar automaticamente UVs para lightmap para todos os modelos marcados para lightmap, não hÔ necessidade de criar um atlas de textura manual. Também suporta lightmapping de múltiplas instâncias com os seus próprios dados de lightmap.
Para que o lightmapping funcione, precisa de pelo menos uma luz e um objeto com Lightmapped
ativado no painel Needle Object
.
::: tip Pode descarregar o ficheiro .blend do vĆdeo aqui. ::: Use o painel Objeto do Needle para ativar o lightmapping para um objeto de malha ou luz:

Para acesso rÔpido às definições de lightmap e opções de 'cozedura' (baking), pode usar o painel de vista da cena no separador Needle
:

Alternativamente, tambƩm pode usar o painel Lightmapping no separador Render Properties
:

::: warning Funcionalidade Experimental O plugin de lightmapping Ć© experimental. Recomendamos criar uma cópia de seguranƧa do seu ficheiro .blend ao usĆ”-lo. Por favor, reporte problemas ou erros que encontrar no nosso fórum š :::
Compressão de Texturas
O Pipeline de Compilação do Needle Engine comprime automaticamente texturas usando ECT1S e UASTC (dependendo do seu uso nos materiais) ao fazer uma compilação de produção (requer que o toktx esteja instalado). Mas pode substituir ou mudar o tipo de compressão por textura no painel Material.
Pode modificar a compressão que estÔ a ser aplicada por textura. Para substituir as definições de compressão predefinidas, vÔ para o separador Material
e abra as Needle Material Settings
. LÔ encontrarÔ um botão de alternância para substituir as definições de textura por textura usada no seu material. Veja a tabela de compressão de texturas para uma breve visão geral sobre as diferenças entre cada algoritmo de compressão.

Atualização
A lĆ¢mpada no painel Projeto do Needle informa-o quando uma nova versĆ£o do add-on estĆ” disponĆvel.
Basta clicar no Ćcone para descarregar a nova versĆ£o.
Reportar um problema
Se encontrar quaisquer problemas, teremos todo o gosto em ajudar! Por favor, junte-se ao nosso fórum para suporte rÔpido.
Por favor, verifique tambĆ©m os logs no Blender. Pode encontrar logs especĆficos do Add-on Needle Engine atravĆ©s de Help/Needle
no Blender.
Reportador de Bugs Integrado
Também pode criar e carregar automaticamente um relatório de bug diretamente do Blender. Relatórios de bug carregados serão usados unicamente para debugging. São encriptados no nosso backend e serão eliminados após 30 dias.
Se necessƔrio, em certos casos, tambƩm podemos configurar NDAs personalizados para os seus projetos. Por favor, contacte-nos para mais informaƧƵes.
:::tip Usar o Reportador de Bugs requer um projeto web Certifique-se de que configurou um projeto web antes de enviar um relatório de bug ā isso permitir-nos-Ć” entender mais sobre o seu sistema e configuração e tornarĆ” mais fĆ”cil reproduzir o problema. :::
Próximos Passos
PƔgina automaticamente traduzida usando IA
Last updated