Valorantでスキルジャンプ投げを安定させるためのツールを作った

Varolant
JavaScript
Author

statditto

Published

March 10, 2024

要約

Valorantでスキルのジャンプ投げの入力精度を測定するWeb appを作った。

jump throw checker

上手くいくとjuniorさんが褒めてくれます。

経緯

「こんなソフトがあったらいいのにな~」というPostを目撃。

じゃあ作るかwくらいのノリで作った。

実装

やっつけ仕事で作成したので実装はかなりシンプルです。スペースキーと左クリックのタイミングを次のコードで取得して、引き算した結果を表示するだけ。

function handleMousedown(event) {
  if (measuring && event.button === 0 && !clickTime) { // 左クリックの場合
    clickTime = performance.now(); // マウスボタンが押された時刻を記録
    checkCompletion();
  }
}

  function handleKeydown(event) {
  if (measuring && event.code === 'Space' && !spacePressedTime) {
    spacePressedTime = performance.now(); // スペースキーが押された時刻を記録
    checkCompletion();
  }
}

いくつかつまずいたポイントを残しておく。

Date.now()では不正確な結果が得られる場合がある

雑に時刻を取得して差分取ればいけるかな~くらいの気持ちで実装したが、明らかに同時押ししていても値がずれてしまう(一敗)。どうやらOSから時刻を引っ張ってくる仕様らしく、順序も担保されないらしい[1].Date.now()からperformance.now()に修正したらいい感じに動くようになった。

クリックやキーにはdownとupがある

知っている人にとっては当たり前ですね(一敗)。ゲームの仕様と合わせて実装する部分ですが、一般的なfpsの多くはKeydownをトリガーとしている場合が多そうです。テストプレイで長押ししてみたらkeyupするまで計測が終わらないことに気付けたので修正。ラピッドトリガー搭載のキーボードを使っている人だとkeyupをトリガーにしても気づかない場合がありそう。

感想

大体ChatGPTが書いてくれたので特になにもしていない。弱小アカウントなのでプチバズしてすこしびびったりしました。