Calibração de Humanoide no Unity 3D com Arduino Nano 33 BLE
Descrição do projeto
Procuro desenvolvedor com experiência em **Unity 3D, C# e sistemas de controle por acelerômetro** para realizar a calibração da movimentação de um humanoide em terceira pessoa.
O projeto faz parte do **DC Smart Fusion Metaverse**, um ambiente virtual 3D no qual o jogador controla um personagem por meio da inclinação de um dispositivo físico equipado com Arduino Nano 33 BLE.
**Importante: a comunicação Bluetooth, a recepção dos dados no Unity e a movimentação do humanoide já estão funcionando.** O trabalho consiste exclusivamente na calibração e no aperfeiçoamento do sistema de controle existente.
1. Escopo técnico e arquitetura existente
O sistema utiliza a seguinte comunicação:
Arduino Nano 33 BLE → Bluetooth BLE → Bridge Windows → UDP (porta 9000) → Unity 3D → Humanoide.
O projeto já possui os seguintes componentes:
- `BridgeLauncher`: inicia automaticamente o programa de comunicação.
- `UDPAccelReceiver`: recebe os dados enviados pela porta UDP 9000.
- `DC_BLE_Accel_5C51`: recebe e disponibiliza os dados do acelerômetro.
- `HumanoidTiltController`: interpreta a inclinação e controla o movimento.
- `PlayerRoot`: objeto do personagem equipado com `CharacterController`.
- Câmera em terceira pessoa utilizada como referência de orientação.
A conexão ble/udp está operacional, os dados do acelerômetro chegam ao unity e o humanoide já responde aos movimentos físicos do dispositivo.
O principal problema atual é a necessidade de ajustar direções, sensibilidade, velocidade, rotação e estabilidade.
2. Serviços necessários
A) Calibração dos eixos
Corrigir os movimentos para frente, trás, direita e esquerda, ajustando `forwardAxis`, `strafeAxis`, `invertForward` e `invertStrafe`.
Cada inclinação deverá corresponder à direção correta do humanoide.
B) Posição neutra e zona morta
Ajustar a calibração inicial (baseline) e o parâmetro `deadZone`, impedindo que pequenas oscilações do acelerômetro provoquem movimentos involuntários.
O personagem deverá permanecer parado quando o dispositivo estiver em repouso.
C) Sensibilidade e curva de resposta
Ajustar `fullTiltDeltaForward`, `fullTiltDeltaStrafe` e a curva de resposta para obter controle progressivo.
Pequenas inclinações deverão produzir movimentos lentos, enquanto inclinações maiores deverão aumentar suavemente a velocidade.
D)Suavização e velocidade
Ajustar `smoothHz`, `moveSpeed`, `faceTurnSpeed` e `minMoveMagnitudeToRotate`.
O objetivo é proporcionar caminhada, mudanças de direção e rotação naturais, sem tremores, acelerações bruscas ou atrasos excessivos.
E) Estabilidade e segurança
Garantir que o personagem interrompa o movimento quando o dispositivo retornar à posição neutra ou quando os dados BLE deixarem de chegar.
Evitar movimentos inesperados durante pequenas oscilações ou interrupções da comunicação.
3. Critérios de entrega e aceitação
O serviço será considerado concluído quando:
1. O humanoide responder corretamente às quatro direções.
2. Permanecer parado quando o controle estiver em repouso.
3. Apresentar velocidade proporcional à inclinação.
4. Realizar movimentos e rotações suaves, sem tremores.
5. Parar automaticamente quando houver perda dos dados BLE.
6. Permitir ajustar sensibilidade, zona morta, velocidade e suavização pelo Inspector do Unity.
7. Manter a comunicação Bluetooth e UDP existente funcionando.
8. Apresentar scripts C# corrigidos, organizados e comentados.
9. Funcionar no projeto Unity existente, sem erros de compilação ou execução relacionados às alterações.
10. Ser aprovado em testes práticos com o dispositivo físico.
4. Testes remotos
Os testes serão realizados por compartilhamento de tela, com a placa Arduino Nano 33 BLE conectada ao meu computador.
O profissional poderá orientar as configurações e acompanhar em tempo real os movimentos do humanoide durante a calibração.
Será necessário testar as quatro direções, a posição neutra, a sensibilidade progressiva, a rotação e o comportamento durante uma interrupção da comunicação.
5. Entrega final
O profissional deverá entregar:
- `
HumanoidTiltController.cs` corrigido e comentado.
- Ajustes necessários nos componentes existentes, caso sejam indispensáveis à calibração.
- Parâmetros configurados no Inspector do Unity.
- Orientações para futuras alterações de sensibilidade e velocidade.
- Demonstração prática do funcionamento.
Condição de aprovação: o serviço será validado após demonstração prática e confirmação dos critérios de entrega.
6. Limites do serviço
Não é necessário desenvolver o metaverso completo, criar cenários, personagens, multiplayer ou reconstruir a comunicação Bluetooth.
A contratação é exclusivamente para calibrar e aperfeiçoar a movimentação do humanoide utilizando a estrutura já existente.
Busco um profissional que tenha experiência prática em Unity e consiga realizar o trabalho remotamente, preservando as funcionalidades que já estão operacionais.
Prazo de Entrega: Não estabelecido