--- title: "IK de dois ossos" 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-two-bone/ --- # IK de dois ossos Raiz e meio da cadeia levam a ponta ao alvo, com direção da dobra **Família:** Lógica · **Grupo:** IK · **Identificador:** `astra.ik.two_bone` · **Payload:** 4 :::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 Leva a ponta de uma cadeia de dois ossos (mão, pé, garra) até um alvo, escolhendo a direção da dobra do cotovelo ou joelho. Com o personagem selecionado, Criar → Personagem → **Mãos ao alvo** cria o componente na mão e um alvo onde ela está. No estúdio, a ferramenta IK arrasta o alvo e grava chaves. Mova o alvo na cena e dê Play. ## Criar e configurar Hierarquia → selecione o objeto → Inspector → Adicionar componente → **Lógica** / **IK** → **IK de dois ossos**. O schema permite uma única instância desse tipo por objeto. A fachada C# correspondente é [Astra.Components.TwoBoneIk](/pt-br/snapshot-2026-10-16/api/astra-components-twoboneik/). Solver Trigonométrico resolve em um passo; Limb aceita limites do rig. Referência decide se o plano da dobra vem do alvo ou do objeto. O Zero do plano e a Rotação do polo giram o plano sem precisar de um objeto de direção. Ponta segue rotação do alvo alinha a mão ao alvo, com o desvio em graus. **Guia relacionado:** [IK e constraints](/pt-br/desenvolvimento/2026-10-11/ik-e-constraints/) · [Receitas de Personagem](/pt-br/snapshot-2026-10-06/versoes/preview-0-3-1/#criar--personagem) ## Exemplo de uso No Robot Kyle, Mãos ao alvo cria "Alvo IK · Left_Wrist_Joint_01". Arraste esse alvo até a caixa sobre a mesa: em Play a mão vai até ele e o cotovelo dobra para o lado do objeto Direção da dobra, ou para o lado do plano configurado. ## 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 | 4 | 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 | | [**Prioridade**](#field-priority)
`priority` | número | 0 | -100 … 100 | | [**Ativo**](#field-enabled)
`enabled` | booleano | verdadeiro | verdadeiro \| falso |

Peso · weight

**Onde:** Inspector → **IK de dois ossos** → **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.

Prioridade · priority

**Onde:** Inspector → **IK de dois ossos** → **Influência** → **Prioridade**. **Uso e efeito:** Ordem entre solvers do mesmo osso: o maior roda por último e vence. **Valor:** 0 · **Tipo:** número · **Domínio:** -100 … 100. Aceita tween numérico via contrato de propriedade.

Ativo · enabled

**Onde:** Inspector → **IK de dois ossos** → **Influência** → **Ativo**. **Uso e efeito:** Desligado, o componente fica na cena sem agir. **Valor:** verdadeiro · **Tipo:** booleano · **Domínio:** verdadeiro \| falso. ### Plano | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Ângulo do plano**](#field-plane-angle)
`plane_angle` | número · ° | 0 | -360 … 360 | | [**Rotação do polo**](#field-pole-rotation)
`pole_rotation` | número · ° | 0 | -360 … 360 | | [**Zero do plano X**](#field-plane-zero-x)
`plane_zero_x` | número | 0 | -1 … 1 | | [**Zero do plano Y**](#field-plane-zero-y)
`plane_zero_y` | número | 0 | -1 … 1 | | [**Zero do plano Z**](#field-plane-zero-z)
`plane_zero_z` | número | 0 | -1 … 1 | | [**Solver**](#field-solver)
`solver` | enumeração | Pose | Pose \| Plano rotativo | | [**Referência**](#field-reference)
`reference` | enumeração | Animação | Animação \| Pose de repouso |

Ângulo do plano · plane_angle

**Onde:** Inspector → **IK de dois ossos** → **Plano** → **Ângulo do plano**. **Uso e efeito:** Gira o plano da dobra em graus, sem um objeto de direção. **Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. Aceita tween numérico via contrato de propriedade.

Rotação do polo · pole_rotation

**Onde:** Inspector → **IK de dois ossos** → **Plano** → **Rotação do polo**. **Uso e efeito:** Gira o polo em torno do eixo raiz-ponta. **Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. Aceita tween numérico via contrato de propriedade.

Zero do plano X · plane_zero_x

**Onde:** Inspector → **IK de dois ossos** → **Plano** → **Zero do plano X**. **Uso e efeito:** Componente da direção que define o zero do plano da dobra. **Valor:** 0 · **Tipo:** número · **Domínio:** -1 … 1. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Zero do plano Y · plane_zero_y

**Onde:** Inspector → **IK de dois ossos** → **Plano** → **Zero do plano Y**. **Uso e efeito:** Componente da direção que define o zero do plano da dobra. **Valor:** 0 · **Tipo:** número · **Domínio:** -1 … 1. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Zero do plano Z · plane_zero_z

**Onde:** Inspector → **IK de dois ossos** → **Plano** → **Zero do plano Z**. **Uso e efeito:** Componente da direção que define o zero do plano da dobra. **Valor:** 0 · **Tipo:** número · **Domínio:** -1 … 1. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade.

Solver · solver

**Onde:** Inspector → **IK de dois ossos** → **Plano** → **Solver**. **Uso e efeito:** Trigonométrico resolve em um passo; Limb respeita limites do rig; CCD e FABRIK valem para cadeias. **Valor:** Pose · **Tipo:** enumeração · **Domínio:** Pose \| Plano rotativo.

Referência · reference

**Onde:** Inspector → **IK de dois ossos** → **Plano** → **Referência**. **Uso e efeito:** De onde vem o plano da dobra: do alvo ou do próprio objeto. **Valor:** Animação · **Tipo:** enumeração · **Domínio:** Animação \| Pose de repouso. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. ### Alvo | Propriedade | Tipo / unidade | Padrão | Domínio | |---|---|---|---| | [**Desvio da rotação do alvo X**](#field-target-offset-x)
`target_offset_x` | número · ° | 0 | -360 … 360 | | [**Desvio da rotação do alvo Y**](#field-target-offset-y)
`target_offset_y` | número · ° | 0 | -360 … 360 | | [**Desvio da rotação do alvo Z**](#field-target-offset-z)
`target_offset_z` | número · ° | 0 | -360 … 360 | | [**Ponta segue rotação do alvo**](#field-match-target-rotation)
`match_target_rotation` | booleano | falso | verdadeiro \| falso | | [**Alvo**](#field-target)
`target` | referência | Escolher alvo | qualquer objeto · fora da subárvore | | [**Direção da dobra**](#field-pole)
`pole` | referência | Seguir a pose | qualquer objeto · fora da subárvore |

Desvio da rotação do alvo X · target_offset_x

**Onde:** Inspector → **IK de dois ossos** → **Alvo** → **Desvio da rotação do alvo X**. **Uso e efeito:** Desvio em graus somado à rotação do alvo quando a ponta a segue. **Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. Aceita tween numérico via contrato de propriedade.

Desvio da rotação do alvo Y · target_offset_y

**Onde:** Inspector → **IK de dois ossos** → **Alvo** → **Desvio da rotação do alvo Y**. **Uso e efeito:** Desvio em graus somado à rotação do alvo quando a ponta a segue. **Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. Aceita tween numérico via contrato de propriedade.

Desvio da rotação do alvo Z · target_offset_z

**Onde:** Inspector → **IK de dois ossos** → **Alvo** → **Desvio da rotação do alvo Z**. **Uso e efeito:** Desvio em graus somado à rotação do alvo quando a ponta a segue. **Valor:** 0 · **Tipo:** número · **Unidade:** ° · **Domínio:** -360 … 360. Campo condicional: o modo/forma/recurso selecionado controla a disponibilidade. Aceita tween numérico via contrato de propriedade.

Ponta segue rotação do alvo · match_target_rotation

**Onde:** Inspector → **IK de dois ossos** → **Alvo** → **Ponta segue rotação do alvo**. **Uso e efeito:** A ponta copia a rotação do alvo, com o desvio em graus abaixo. **Valor:** falso · **Tipo:** booleano · **Domínio:** verdadeiro \| falso.

Alvo · target

**Onde:** Inspector → **IK de dois ossos** → **Alvo** → **Alvo**. **Uso e efeito:** Objeto da cena que o solver alcança; as receitas criam um alvo nomeado ao lado do personagem. **Valor:** Escolher alvo · **Tipo:** referência · **Domínio:** qualquer objeto · fora da subárvore.

Direção da dobra · pole

**Onde:** Inspector → **IK de dois ossos** → **Alvo** → **Direção da dobra**. **Uso e efeito:** Objeto para onde a dobra aponta; vazio usa o plano configurado. **Valor:** Seguir a pose · **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. Limites por osso vêm do componente Limite de rotação no próprio osso. Sem data para alvos múltiplos por cadeia. 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 **IK de dois ossos** 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.unity3d.com/Packages/com.unity.animation.rigging@1.2/manual/constraints/TwoBoneIKConstraint.html). Essa referência não representa paridade funcional.