こちらの続きです。
【家庭用】バーチャ2練習ツールを作る①
【家庭用】バーチャ2練習ツールを作る②
【家庭用】バーチャ2練習ツールを作る③
PS3用を作ってみる
前回の最後でいくつか今後の方針案を挙げたうち、以下を試してみることにしました。
・RAP V3.SA基板ベースでPS3用を作ってみる
XBOX360用ではArduino Due互換機を使用していたためCPUがARM系でした。
基板用で実績のあったArduino UNO R3/MEGA2560などのAVR系と異なる箇所もあったため、問題切り分けの意味も含めて慣れた環境で作り直してみようと思ったのがキッカケです。
方針
まず、コマンドコントローラーを作製された方のblogから、FPGAで59.94Hzを作成してもズレが生じたということ。
アーケード基板とは異なりインターフェースにUSBを使用していることが関係しているのかわかりませんが、いずれにしてもある程度練習に使えるレベルまで整えたら、多少の誤差は仕方がないと考えるのが妥当だと思います。
というわけで、ひとまずこれまで通りV-SYNCに同期するというアプローチは変えずに行くことにします。
過去の記事で触れたとおり、HDMI端子からV-SYNCを直接取り出すことはできないため、簡単な方法としてHDMI⇒VGA変換ケーブルを使用し、そこからV-SYNCを取り出しています。
オシロスコープで計測してみたところ、どうやらこの段階で最大±0.3Hz程度の誤差が発生しています。
垂直同期59.94HzのPS3で±0.3Hz程度の誤差が発生した場合、約4秒ごとに1Fの誤差が発生する可能性があります。
(微小な誤差の合計が16.6ms以上に達するのが約4秒)
約4秒が経過してもしばらくは問題なく動き、技の入力可能フレーム(あるいはキャンセル可能フレーム)から外れたところで技の途切れが現れるはずです。
実際にPS3でPKキャンセルを連続させてみたところ、3ラウンド連続で千本パンチができることがわかりました。
この程度であれば様々な練習に使えそうです。
なおコマンドコントローラーのテストでバーチャ2.0の千本パンチをよく使う主な理由は以下のものです。
- (ほぼ)最速で出せるフレームを把握していること
- 見た目が派手で達成感があること
- タイミングがずれたらすぐにわかること(同期できているかの確認)
- ボタンだけで済むため接続するピン数が少ないこと
今後の展開
まだ基本的な確認をしている段階ですので、まだまだ課題はあります。
- マイコンのON/OFFスイッチを付ける
- アーケード基板用で作成したようにキャラ選択のための簡易コントローラーを作る
- コマンドコントローラーに出させる技の選択肢を複数持たせ、ランダムで選択させる
- 技データの作成やモード切替などの操作をスマホからワイヤレスで実施できるようにする
- 自分の操作から技データを生成する仕組みを作る
このうちすでに実装できているものもありますが、まだ確認が不十分であるため、引き続き検証していきます。
ある程度実装が進めば基本的な練習に使えるものになると思うので、早くそうなってほしいですね。
少しでも快適に使えるよう環境を整えていきたいです。