![]() Latency Flicking top 10% score distribution. To tease with our most interesting result upfront, Figure 1 shows how the top 10% most-skilled players moved their entire score distribution higher and were able to better display their skill at the lowest latency.įigure 1. We’d like to thank all of the players for their enthusiastic participation, and we hope you’ll enjoy seeing the results as much as we do. This post uses the data provided by over 15,000 players, including results from the promotional period through April 17, 2022. ![]() Our most recent set of experiments was designed to test a player’s aiming ability under changing latency and to give players a chance to compete for the top spot on the leaderboards, at both lower and higher latencies.ĭuring the week-long promotional period in December 2021, players could get rewards for participating, and over 12,000 players tried one of these new latency experiments. = Quaternion.LookRotation(Vector3.We’ve been collaborating with The Meta, makers of the popular KovaaK’s FPS aim trainer game, for some time now to distribute experiments to their players. set the rotation so that local up points in dir direction ![]() rotate neutral dir by the clamped angleĭir = Quaternion.AngleAxis(angle, Vector3.forward) * neutralDir Vector3 dir = (Input.mousePosition)įloat angle = Vector3.SignedAngle(neutralDir, dir, Vector3.forward) Īngle = Mathf.Clamp(angle, minAngle, maxAngle) Finally, use Quaternion.LookRotation to assign the rotation to the hardpoint's transform: public class HardpointSlot : MonoBehaviour Then, use Mathf.Clamp to clamp it between the boundaries and then Quaternion.AngleAxis to create the resulting direction. I would take another approach, making use of Vector3.SignedAngle to get the angle from the neutral direction to the mouse direction. Works for 270 degrees of rotation but not for the last 90.Īny ideas? Am I missing something very obvious?.Hardpoint needs to look at mouse but only if its within its aim range bounds, which is calculated by the baseAim offset (20) and the rotation of the parent hardpoint slot.Public float OneEightyToThreeSixty(float angle) = Quaternion.AngleAxis(angle, Vector3.forward) Vector3 dir = Input.mousePosition - (transform.position) Īngle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg Here's the code: public class HardpointSlot : MonoBehaviour I've tried so many different implementations but they all seem to have this consistent issue. But at the top right quarter of the rotation, it all goes haywire. I've rewritten this script more times than I can count, but ultimately I'm hit with this issue.Īs you can see, for 270 degrees of the 360 rotation, the aiming and restrictions work totally fine. Wrote a method to convert it to 360 during runtime. I had to do some weird rotational voodoo (see OneEightyToThreeSixty() in the code snippet) to get the mouse look angle to match the same format as the minAngle/maxAngle.Īngle was coming in as -180 -> 180 degrees instead 0 -> 360 like the hardpoint's rotation. ![]() The rotational range is based off minAngle and maxAngle, and are calculated by the eulerAngles.z of the parent hardpoint slot, plus/minus the angle modifier (in this case, 20). Once placed, they aim at the mouse position and have a restricted rotational range: So, I have a ship with a "Hardpoint" attached to it that weapons can be placed on to.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |