人に自作 hitbox を作ってあげた。あと連射性能の計測をした。

1ヶ月に1回は更新したい本blogは、無事3ヶ月更新が空きました。
今年もよろしくおねがいします。

で、以前に自作 hitbox を作ったというエントリを書いたのですが、その後友人にほぼ同様のものを実費+おこづかいで作ってあげました。
少しミスもあったんですが、全体的に自分用のものを作ったときと比べて随分工作精度が上がった気がします。
ソフトウェアも使い回せるし、作れば作るほどうまくなっていって良さそうなのでは?という気持ちがあります。

ボタンの色がなんかスゴイですが、友人の希望によりこの色です。すでに友人の手元にこれは行ったのですが、気に入ってくれているようです。よかった。

で、最近、STEAM版の Mr.Driller アンコールのフレーム落ちの対策ができて、またやる気が高まってきたので、コントローラーの連射速度の調整をしました。

やはり以前のエントリで、コマンドの入力フレームを計測するために、Unityでソフトを書いたという内容を書いたのですが、これを改造して、秒間何回連射しているのか計測できるようにしました。

コントローラーの中には sparkfun pro micro を用いており、タイマー用のライブラリには MsTimer2 を使っています。
MsTimer2 でタイマを設定するインタフェース MsTimer2::set(unsigned long ms, void (*f)()) では、割り込み周期のミリ秒単位での指定と、タイマが切れた際に呼び出す関数の指定ができるようになっています。
ゲームでは60フレームが用いられることがありますが、 60フレームの際の 1フレームの時間は、おそよ16.6666ms であり、ボタンの on と off をそれぞれのフレームで交互に入力するためには、その2倍の 33.3333ms 周期でボタンの押し下げと離しを行う必要があります。しかし、MsTimer2::set(unsigned long ms, void (*f)())の時間は ms 単位であるため、正確に指定することはできず、やむなく 34ms としました。

34msごとにボタンを押すと、1秒あたりおよそ 29.41 回の連射になるのですが、これが正しく unity で書いたソフトから検出することができ、pro micro や OS のレベルで遅延が起こり、入力が抜けてしまうということはないということが確認できました。

これ以上速度をあげようと思うと、ライブラリを用いず、自力でタイマーを叩く必要が出てくるので、そのへんはおいおいやるかもしれないしこれで満足してやらないかもしれないです。
どうしようかなぁ。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です