---
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.