---
title: "FABRIK em árvore"
version: snapshot-2026-10-16
engineGeneration: astra-current
language: C#
status: source-reviewed
reviewedAt: 2026-10-16
appRelease: "0.3.1-preview.20261016"
runtimeVerified: false
platformEvidence: []
url: https://astraengine.com.br/pt-br/snapshot-2026-10-16/componentes/astra-ik-fabrik-root/
---
# FABRIK em árvore
Várias cadeias com raiz comum resolvidas juntas
**Família:** Lógica · **Grupo:** IK · **Identificador:** `astra.ik.fabrik_root` · **Payload:** 1
:::note[Escopo da evidência]
Este contrato foi extraído dos descritores compilados da engine, incluindo padrões resolvidos. A presença do contrato não substitui a validação do comportamento em um aparelho.
:::
## Para que usar
FABRIK em árvore: várias cadeias que partem de uma raiz comum (mão com dedos, árvore de tentáculos) resolvidas juntas.
Adicione ao osso raiz comum e preencha até quatro pares ponta/alvo.
## Criar e configurar
Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **IK** → **FABRIK em árvore**.
O schema permite uma única instância desse tipo por objeto. A fachada C# correspondente é [Astra.Components.FabrikRoot](/pt-br/snapshot-2026-10-16/api/astra-components-fabrikroot/).
Fixar a raiz dosa quanto a raiz pode ser puxada; Iterações troca precisão por custo.
**Guia relacionado:** [IK e constraints](/pt-br/desenvolvimento/2026-10-11/ik-e-constraints/)
## Exemplo de uso
Raiz no pulso com três dedos como pontas: aproximar os três alvos fecha a mão de forma coerente.
## Dependências
Nenhuma regra adicional declarada no schema deste componente.
## Conflitos
Nenhuma regra adicional declarada no schema deste componente.
## Edição e ciclo de vida
| Operação | Contrato |
|---|---|
| Adicionar/remover em Play | ponto seguro |
| Alterar propriedades em Play | ponto seguro |
| Múltiplas instâncias | Não |
| Versão do payload | 1 |
Alterações em ponto seguro são aplicadas entre passos da simulação. Um componente exigido por outro não pode ser removido enquanto a dependência existir. Salvar a cena autoral e modificar o mundo de Play são operações distintas; veja [Play e cena autoral](/pt-br/snapshot-2026-10-06/conceitos/play-e-cena-autoral/).
## Propriedades
Valores abaixo são resolvidos pelo descritor de um componente recém-criado. Campos por slot dependem dos recursos atribuídos. Um campo sem padrão significa que o descritor não fornece um valor independente de contexto.
### Influência
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Peso**](#field-weight)
`weight` | número | 1 | 0 … 1 |
| [**Ativo**](#field-enabled)
`enabled` | booleano | verdadeiro | verdadeiro \| falso |
Peso · weight
**Onde:** Inspector → **FABRIK em árvore** → **Influência** → **Peso**.
**Uso e efeito:** 0 desliga, 1 aplica por inteiro; anime para ligar e desligar o efeito com suavidade.
**Valor:** 1 · **Tipo:** número · **Domínio:** 0 … 1.
Aceita tween numérico via contrato de propriedade.
Ativo · enabled
**Onde:** Inspector → **FABRIK em árvore** → **Influência** → **Ativo**.
**Uso e efeito:** Desligado, o componente fica na cena sem agir.
**Valor:** verdadeiro · **Tipo:** booleano · **Domínio:** verdadeiro \| falso.
### Raiz
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Fixar raiz**](#field-root-pin)
`root_pin` | número | 0.5 | 0 … 1 |
| [**Iterações**](#field-iterations)
`iterations` | número | 8 | 1 … 64 |
Fixar raiz · root_pin
**Onde:** Inspector → **FABRIK em árvore** → **Raiz** → **Fixar raiz**.
**Uso e efeito:** 0 solta a raiz, 1 a mantém no lugar.
**Valor:** 0.5 · **Tipo:** número · **Domínio:** 0 … 1.
Aceita tween numérico via contrato de propriedade.
Iterações · iterations
**Onde:** Inspector → **FABRIK em árvore** → **Raiz** → **Iterações**.
**Uso e efeito:** Mais iterações, mais precisão e mais custo por quadro.
**Valor:** 8 · **Tipo:** número · **Domínio:** 1 … 64.
Aceita tween numérico via contrato de propriedade.
### Cadeia 1
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Ponta 1**](#field-tip-1)
`tip_1` | referência | Sem ponta | qualquer objeto · abaixo deste objeto |
| [**Alvo 1**](#field-target-1)
`target_1` | referência | Sem alvo | qualquer objeto · fora da subárvore |
Ponta 1 · tip_1
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 1** → **Ponta 1**.
**Uso e efeito:** Osso da ponta desta cadeia (mão, pé, garra).
**Valor:** Sem ponta · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Alvo 1 · target_1
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 1** → **Alvo 1**.
**Uso e efeito:** Alvo que esta ponta alcança.
**Valor:** Sem alvo · **Tipo:** referência · **Domínio:** qualquer objeto · fora da subárvore.
### Cadeia 2
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Ponta 2**](#field-tip-2)
`tip_2` | referência | Sem ponta | qualquer objeto · abaixo deste objeto |
| [**Alvo 2**](#field-target-2)
`target_2` | referência | Sem alvo | qualquer objeto · fora da subárvore |
Ponta 2 · tip_2
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 2** → **Ponta 2**.
**Uso e efeito:** Osso da ponta desta cadeia (mão, pé, garra).
**Valor:** Sem ponta · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Alvo 2 · target_2
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 2** → **Alvo 2**.
**Uso e efeito:** Alvo que esta ponta alcança.
**Valor:** Sem alvo · **Tipo:** referência · **Domínio:** qualquer objeto · fora da subárvore.
### Cadeia 3
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Ponta 3**](#field-tip-3)
`tip_3` | referência | Sem ponta | qualquer objeto · abaixo deste objeto |
| [**Alvo 3**](#field-target-3)
`target_3` | referência | Sem alvo | qualquer objeto · fora da subárvore |
Ponta 3 · tip_3
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 3** → **Ponta 3**.
**Uso e efeito:** Osso da ponta desta cadeia (mão, pé, garra).
**Valor:** Sem ponta · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Alvo 3 · target_3
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 3** → **Alvo 3**.
**Uso e efeito:** Alvo que esta ponta alcança.
**Valor:** Sem alvo · **Tipo:** referência · **Domínio:** qualquer objeto · fora da subárvore.
### Cadeia 4
| Propriedade | Tipo / unidade | Padrão | Domínio |
|---|---|---|---|
| [**Ponta 4**](#field-tip-4)
`tip_4` | referência | Sem ponta | qualquer objeto · abaixo deste objeto |
| [**Alvo 4**](#field-target-4)
`target_4` | referência | Sem alvo | qualquer objeto · fora da subárvore |
Ponta 4 · tip_4
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 4** → **Ponta 4**.
**Uso e efeito:** Osso da ponta desta cadeia (mão, pé, garra).
**Valor:** Sem ponta · **Tipo:** referência · **Domínio:** qualquer objeto · abaixo deste objeto.
Alvo 4 · target_4
**Onde:** Inspector → **FABRIK em árvore** → **Cadeia 4** → **Alvo 4**.
**Uso e efeito:** Alvo que esta ponta alcança.
**Valor:** Sem alvo · **Tipo:** referência · **Domínio:** qualquer objeto · fora da subárvore.
## Roadmap deste componente
[Objetos, Behaviors e composição](/pt-br/snapshot-2026-10-06/roadmap/objetos-e-scripts/). Presente na 0.3.1. Até quatro cadeias por componente. Sem data prometida.
Os campos acima pertencem ao contrato existente; novas funções dependem do fechamento da família. Não há datas individuais prometidas para cada propriedade.
## Conferir na sua cena
1. Crie **FABRIK em árvore** pelo fluxo indicado e resolva as dependências.
2. Altere uma propriedade por vez e observe o efeito esperado na cena.
3. Salve, reabra e confira os valores autorais.
4. Entre em Play e verifique o comportamento com os recursos reais do projeto.
5. Pare o Play e confira a cena autoral.
Este é um roteiro de conferência; não representa um teste executado nesta publicação.
## Limitações da referência
A tabela cobre os tipos de propriedade disponíveis no descritor de reflexão. Não presume persistência de campos transitórios, equivalência com outras engines ou suporte em todos os aparelhos. Recursos, coleções e operações podem exigir APIs específicas.
**Referência de arquitetura registrada pela engine:** [documentação oficial](https://docs.godotengine.org/en/4.5/classes/class_skeletonmodifier3d.html). Essa referência não representa paridade funcional.