Como detectamos drift dos analógicos
Com o controle em repouso, observamos o afastamento radial de cada analógico durante 5 segundos. O maior valor é comparado às faixas definidas pelo GPADLAB: abaixo de 0,05 é a referência saudável; de 0,05 a menos de 0,15 indica afastamento crescente; a partir de 0,15, recomendamos investigar drift acentuado.
O que significa Como detectamos drift dos analógicos
O algoritmo exato de detecção
Cada limiar abaixo é uma constante no código publicado: DRIFT_THRESHOLD = 0.05, WARN_THRESHOLD = 0.15, SAMPLE_DURATION_MS = 5000. O cálculo é exato, enquanto a interpretação de 0.05 e 0.15 é a política de benchmark do GPADLAB em vez de um padrão universal de falha de hardware.
- 01
Leia ambos os sticks por frame
A cada tick do requestAnimationFrame, o testador lê pad.axes[0] e pad.axes[1] para o stick esquerdo, pad.axes[2] e pad.axes[3] para o direito. Essas são as posições de eixo padrão da Gamepad API no intervalo de -1.0 a 1.0 relativo ao centro de cada stick.
- 02
Calcule a magnitude radial
Para cada analógico, calculamos magnitude = sqrt(x² + y²) - a distância euclidiana do centro no plano dos eixos. Isso importa porque um analógico pode desviar na diagonal: uma verificação eixo por eixo perderia um analógico registrando (0.04, 0.04), que possui magnitude real de 0.057. Medimos o deslocamento radial efetivo, não o recorte eixo por eixo.
- 03
Rastrear máximo durante janela de repouso
Durante a janela de amostragem de 5 segundos, mantemos a magnitude máxima observada para cada analógico. Usamos o máximo - não a média - porque o drift frequentemente se apresenta como picos intermitentes em vez de deslocamento constante. Um analógico que repousa em 0.02 mas sobe para 0.12 uma vez por segundo está sofrendo drift, e apenas o rastreamento por máximo captura isso.
- 04
Janela de 5 segundos sem tocar
A janela dura exatamente 5.000 milissegundos. A instrução - colocar o controle sobre uma superfície plana e não tocá-lo - é o cerne da validade da metodologia. Se a mão do usuário perturbar qualquer analógico durante a janela, a medição perde o sentido. Cinco segundos é curto o suficiente para completar sem inquietação, mas longo o suficiente para observar picos intermitentes de drift.
- 05
Veredicto do pior analógico
Ao fim da janela, tomamos o máximo entre leftMax e rightMax e comparamos com as três faixas do testador: abaixo de 0.05 passa na referência saudável do GPADLAB, 0.05 a 0.15 é a faixa intermediária de drift, e 0.15 ou superior é a faixa de falha do testador. O pior analógico determina este veredicto do GPADLAB.
Como detectamos drift dos analógicos: limites de veredicto de drift
A escala de três faixas abaixo usa o intervalo de eixo normalizado de -1.0 a 1.0 da API Gamepad. Uma magnitude de 0.05 é cerca de 5% da deflexão em escala total do eixo e serve como ponto de referência saudável do GPADLAB. Jogos podem usar zonas mortas e curvas de resposta diferentes, então essas faixas não devem ser tratadas como limites universais de jogabilidade.
| Magnitude radial máxima em repouso | Avaliação | Significado |
|---|---|---|
| Abaixo de 0,05 | Na referência | Dentro da faixa de referência saudável do GPADLAB e vale pontos completos no estágio de drift da Pontuação de Saúde do Controle. Um jogo com zona morta muito pequena ou personalizada ainda pode expor comportamento de forma diferente. |
| 0,05 a 0,10 | Desvio leve | Deslocamento do centro observado acima da faixa saudável do GPADLAB. Jogos com zonas mortas menores podem expor isso mais cedo; teste novamente e considere calibração ou ajuste de zona morta quando apropriado. |
| 0,10 a 0,15 | Drift perceptível | Deslocamento do centro observado maior na faixa de pontuação intermediária do GPADLAB. Se isso produz movimento visível depende da zona morta e processamento de entrada do jogo; limpeza, recalibração ou diagnóstico de hardware podem valer a consideração. |
| ≥ 0.15 | Desvio significativo | Faixa de drift grave do GPADLAB e intervalo de pontuação de severidade com defeito. Investigue calibração, contaminação, mecânica, firmware e hardware do analógico; deslocamento grave persistente pode justificar reparo ou substituição, mas esse número sozinho não identifica a causa física. |
DRIFT_THRESHOLD (0.05) e WARN_THRESHOLD (0.15) estão codificadas em StickDriftTester.tsx como limites de veredicto do GPADLAB. A biblioteca de pontuação scoreStickDrift() adiciona uma faixa intermediária de 0.10 para calibração mais fina de pontos. Essas constantes definem o comportamento de referência do GPADLAB, não os limites de falha universais da indústria de controles.
Teste de Como detectamos drift dos analógicos
Soluções Como detectamos drift dos analógicos
Outros termos do glossário
perguntas Como detectamos drift dos analógicos
Porque a medição só tem significado quando os analógicos estão verdadeiramente em repouso. Segurar o controle inevitavelmente aplica pressão sutil através da pegada - o suficiente para empurrar os analógicos em 0.01 a 0.03 em alguns designs. Isso é da mesma ordem de magnitude que drift real. Colocar o controle sobre uma superfície plana remove completamente o fator de confusão. Se precisar segurar, segure o mais frouxo possível com as palmas abertas, sem polegares sobre os analógicos.
Para drift em estado estacionário, cinco segundos captura quase tudo. Para drift intermitente - analógicos que sobem uma vez a cada poucos segundos - uma janela mais longa captura mais picos. Escolhemos 5 segundos porque é o mínimo necessário para observar a maior parte do comportamento intermitente enquanto mantém o teste rápido o suficiente para que os usuários realmente o completem. Se você suspeita de drift intermitente e o teste passar, execute três vezes seguidas: você capturará um analógico que sobe 20% do tempo.
Porque drift é um fenômeno 2D. Um analógico que lê (0.04, 0.04) tem magnitude radial de cerca de 0.057 mesmo que nenhum eixo individual exceda 0.05. Usar sqrt(x² + y²) captura o deslocamento combinado X/Y. Jogos podem usar processamento de zona morta radial, axial, híbrido ou personalizado, então o método radial do GPADLAB não deve ser confundido com a implementação de cada jogo.
0.05 é a referência saudável escolhida pelo GPADLAB na escala normalizada da API Gamepad. Deixa margem para pequeno ruído no centro enquanto mantém a referência sensível a deslocamento visível. Não é uma configuração universal de jogo: alguns títulos usam zonas mortas menores ou maiores, curvas de resposta personalizadas ou valores configuráveis pelo usuário, então o impacto na jogabilidade deve ser verificado separadamente.
0.15 é o limite de drift grave do GPADLAB e combina com a faixa de falha usada por scoreStickDrift(). Nesse nível o deslocamento do centro medido é grande o suficiente para justificar diagnóstico adicional, mas não é um limite universal de substituição ou padrão clínico da indústria. Recalibração, limpeza, inspeção mecânica, verificações de firmware ou substituição podem ser apropriados dependendo do controle e sintomas.
Porque é assim que o controle parece para o jogador. Um DualSense com analógico direito impecável e analógico esquerdo com drift é um controle com drift - você não pode jogar apenas metade do jogo com ele. Calcular a média dos dois analógicos produziria uma pontuação enganosamente otimista. Tomar o máximo entre leftMax e rightMax reflete a experiência real de jogabilidade: seu melhor analógico não compensa o pior.
Resposta honesta: o Stick Drift Test independente usa magnitude radial sqrt(x² + y²), que é matematicamente correta. O Controller Benchmark composto usa o mais simples max(|axis0|, |axis1|) para consistência de pipeline através de seus seis estágios. Na prática ambas as abordagens produzem veredictos muito similares porque drift quase sempre se apresenta primariamente em um eixo; drift puramente diagonal é raro. A scoreStickDrift() da biblioteca de pontuação consome qualquer número que o chamador forneça. Se você quer o número de drift mais preciso, use o independente /tools/stick-drift-test - isso está na lista de refinamento para reconciliação.
Não - para isso existe o Hall Effect Checker, e mesmo essa ferramenta infere em vez de identificar definitivamente. Esta metodologia mede comportamento em repouso. Analógicos Hall effect tipicamente mostram pisos de ruído de eixo em torno de 0.005 a 0.015, analógicos de potenciômetro em torno de 0.010 a 0.030 - uma diferença sutil, não um sinal claro. Inferência de tipo de sensor por características de ruído não é confiável; verifique a especificação do fabricante ou desmontagens do iFixit para resposta definitiva.
Leituras complementares
- Gamepad API - MDN Web Docs · MDN Web Docs
- Nintendo Joy-Con Repair Program · Nintendo Support
- Entendendo Zonas Mortas de Analógicos · Game Dev Stack Exchange