Há boas respostas aqui. Eu tive que descobrir por mim mesmo no projeto em que participei, mas cheguei às mesmas conclusões que os caras do Sucker Punch (e eu pensei que tinha inventado algo novo. Baww :().
Acho útil considerar todo o seu "panorama" de 360x180 em primeira pessoa como um "campo de aceleração". Todos os alvos válidos criam poços de gravidade que dobram a entrada do jogador (apenas sutileza), de modo que o movimento macro (voltando-se para os alvos de face) pareça ser um caminho "lubrificado". No entanto, isso não afeta a mira o tempo todo - somente quando o delta do turno do jogador é apontado com a inclinação do poço (por assim dizer). Mas isso é realmente importante - você só está dando essa velocidade de virada extra quando o jogador está se voltando para um alvo. Essa é a única inferência que você pode fazer com a entrada do jogador.
Muito mais e você obtém um "efeito ouija" notável. Você quer exatamente o oposto de ouija: onde um quadro de ouija está se movendo de maneira não inteligente devido a um usuário, sem seu conhecimento consciente, você deseja que a mira de um jogador se mova de maneira inteligente, sem que o usuário perceba que NÃO é apenas uma contribuição deles. É realmente um truque de mágica.
Use o produto escalar do delta de giro / guinada do jogador vs. o delta de giro / guinada da mira para cada alvo. Prenda o valor entre 0 e a velocidade máxima (para ignorar a entrada enquanto se afasta do alvo) e, em seguida, use a função de distância como um modificador de queda.
Descobri que aumentar esse bônus de "movimento macro" quando o delta angular da mira em relação ao alvo é grande (ou seja, quando um inimigo está atrás de você) realmente ajuda com o problema clássico do controlador de console de não conseguir virar o rosto rápido o suficiente. Em termos de "escolhas de alvos", se você está sendo atacado por trás e não há alvos à sua frente, esse panorama à sua frente é "espaço morto", e você também pode dar ao jogador a capacidade de voar através dele a grande velocidade com o cursor. E se houver alvos à frente, bem, eles provavelmente estão mais altos na mente do jogador e, devido ao objetivo atenuante / pegajoso, não são afetados pela fraca força macro.
Não há muita necessidade de você diminuir a sensibilidade quando o jogador tenta se afastar
de um objeto (isso resultará na sensação de tentar "escapar" da órbita de um alvo). O amortecimento é usado mais para a mira de precisão e também para impedir a superação da mira dos jogadores ao passar da macro para a micro precisão - É a coisa mais sombria: os jogadores (especialmente os novatos) tendem a usar apenas os extremos da deflexão de um taco, então você tem fazer muita busca por eles.
Objetivo pegajoso é um compensador de movimento relativo. Observe a diferença entre o ângulo do seu alvo (da câmera, não da origem da entidade), esse quadro e o último quadro. Veja quão perto você está apontando para o alvo. Para evitar o efeito ouija quando não houver entrada do usuário, verifique a deflexão de ambos os bastões: Veja se você se moveu fisicamente (atuação do bastão esquerdo) OU se há mira ativa "com" a direção do alvo. Adicione o passo delta de guinada / inclinação * proximidade da mira * Máx. (Comprimento do movimento, comprimento da mira) para uma mira pegajosa rudimentar.
Onde entra a questão da confusão de alvos (ou seja, um alvo passa pela sua visão enquanto você estava buscando algo para trás, "roubando" seu foco), basta acompanhar seus alvos e "aquecer" um único enquanto está sendo ativamente visado. Em seguida, multiplique os componentes de amortecimento e aderência por esse parâmetro de aquecimento, para que os alvos não aquecidos sejam ignorados. Se o jogador QUER a ajuda nesse outro alvo, eles apontam manualmente para ele, e muito rapidamente, esse se torna o alvo mais aquecido enquanto o anterior é esquecido.
Também criamos alvos "fantasmas" de assistência à mira para ajudá-lo a se afastar de coisas desinteressantes (ou seja, de frente para uma parede - não há necessidade de ficar olhando uma superfície em branco se não for interativa), mas provavelmente é mais do que posso falar about - você pode aplicar essas coisas a qualquer coisa interessante para o jogador apontar, sejam barris explosivos, objetos interativos (o bioshock usa amortecimento ao mirar objetos interativos a curta distância ... mas não faz mira grudenta neles, Eu não acho). Depois que você percebe que tudo isso é apenas para complementar o conceito principal de mira, você percebe que não se trata apenas de tiros de mira, mas uma melhoria geral da usabilidade que alimenta qualquer mecânica dependente de mira. E em um FPS, realmente,
O improtant com tudo isso é sintonia. Demora muito tempo para acertar e lidar com a interferência do alvo, e os problemas são tão próximos que suas "zonas de direcionamento" inundam o panorama do jogador, diminuindo 60 graus de rotação até um rastreamento.
Oh cara, eu deveria ir para a cama. Desculpe se algumas das matemáticas não são claras. É muito tarde, mas fiquei empolgado ao ler este post.