--- title: "FABRIK em árvore" version: snapshot-2026-10-16b engineGeneration: astra-current language: C# status: source-reviewed reviewedAt: 2026-10-16b appRelease: "0.3.2-preview.20261016" runtimeVerified: false platformEvidence: [] url: https://astraengine.com.br/pt-br/snapshot-2026-10-16b/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-16b/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.