Search This Blog

Como muchos otros ya hicieron, por favor dejen comentarios o críticas, se aprecian!

Wednesday, January 27, 2010

Sensibilidad y precisión

En los juegos source, el comando m_yaw se encuentra fijado a un valor de 0.022. Esto quiere decir que, suponiendo que no se tiene ningún multiplicador afectando los DPI del mouse (dejando la sensibilidad del juego en 1, y la velocidad del puntero de windows en 6/11, es decir, 1 también), cada "movimiento" (o "dot") que registra el mouse, se transfiere al juego como una variación de 0.022 grados (hablando del eje horizontal, lo mismo se aplica para el eje vertical ya que m_pitch también esta limitado a ese decimal). Debido a que, en este motor de juegos, los grados se registran con una precisión de 0.01, los 0.002 restantes de cada movimiento se van sumando hasta llegar a 0.01 y causar una variación de 0.03 en vez de 0.02 grados. En otras palabras, los primeros 4 registros de movimiento que se envíen desde el mouse en una dirección, causaran que se mueva la mira unos 0.02 grados, y el 5to la moverá 0.03.


Ahora, lo ideal si se busca precisión, sería que cada movimiento dentro del juego fuera de 0.01 (o menos), de modo que nunca se saltearía un pixel, llevando a un movimiento fluido, y eliminando la limitación que la "imprecisión" causaría en la puntería. En juegos como el quake, los comandos m_yaw y m_pitch no se encuentran limitados y se pueden cómodamente cambiar a 0.01. Esto simplifica las cosas, y deja obvio que la sensibilidad máxima a utilizar si se quiere evitar saltear pixeles es 1. Cualquier valor mayor a este causaría que se salteen pixeles, pero no los menores. En los demás juegos, donde ambos comandos se encuentran limitados al valor de 0.022, la sensibilidad máxima a utilizar es de 1/2,2 (equivalente a 0.4545454545...).
Esta "constante de precisión" esta dada por:

Kp

Obviamente en otros juegos tal vez deban calcular Kp para ambos m_yaw y m_pitch (eje horizontal y vertical respectivamente), pero en el source engine como ya mencione estan los 2 limitados a 0.022, asi que con calcular uno se tiene el otro.

Como verán, en nuestro caso seria 1/2,2 (lo cual equivale a 0.454545...). Esta constante permanece inmutable ante los cambios de DPI (siempre y cuando el m_yaw y m_pitch sean 0.022, y la sensibilidad de windows este en 6/11).
Usando estos datos como base, se pueden calcular cosas interesantes para los distintos DPI disponibles (al menos los más comunes):

beta sheet

Estos valores son los más bajos (o rápidos, si lo prefieren así) que se pueden usar con los distintos DPIs, sin perder precisión. En cada caso, si se busca usar menos pulgadas/centímetros de las correspondientes a cada DPI, se perderá precisión al saltear pixeles, pero si busca usar valores mayores esto no representa ningún problema a la precisión.
Viendo esto, se puede deducir que el tener más DPI permite utilizar "sensibilidades reales" más altas manteniendo buena precisión, lo cual es principalmente útil para jugadores de sensibilidad alta y media, pero de todas formas también beneficia a los de baja.

Si quieren saber cuantos pixeles se mueven por cada input enviado por el mouse pueden calcularlo con la siguiente formula:
Ppd
Donde Sig es la "Sensibilidad In-game", Kp es la constante de precision (1/2,2), y Ppd son los "Pixeles por dot"
Además, si tan solo le restan 1 a ese resultado, sabrán cuantos pixeles saltean.
Tengan en cuenta que estos valores, dentro del juego, se representan como una división de cien. Es decir, si se mueven 4 pixeles por dot, al jugar, esto representara una variación de 0.04 grados. Con una pequeña modificación a la ecuación de los Ppd, puede conseguir los "Grados por dot":
gpd
Pueden calcular los valores que están utilizando manualmente, o aquí: http://www.notalent.org/sensitivity/sensitivity.htm

No comments:

Post a Comment