4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

太鼓の達人用コントローラー「太鼓とバチ for Nintendo Switch」の動作確認をブラウザで簡易に【JavaScript の Gamepad API が関連】

Last updated at Posted at 2024-09-29

はじめに

↓こちらでポストしていた「太鼓の達人用コントローラー(Nintendo Switch版)」を、ブラウザ上での JavaScript の処理で扱えるか、簡単に試してみたという話です。

製品としては、以下となります(※ 以下は、メーカーのサイト)。

●株式会社 HORI | 太鼓の達人専用コントローラー 「太鼓とバチ for Nintendo Switch」
https://hori.jp/products/nsw/taiko_tb/

各種情報

利用する API

ブラウザで太鼓の達人用コントローラーを扱う仕組みとしては、ブラウザの Gamepad APIが関係します。

この Gamepad API について、Can I use... のページで示されている、各ブラウザの対応状況は以下のとおりです。

image.png

基本的には、メジャーなブラウザで問題なく扱えます。

今回試す環境

ブラウザ

今回、ブラウザは Google Chrome を使います。
(記事執筆時点の、安定版の最新バージョン 129 にて)

テスト環境

テストしてみる環境は、自前で実装した環境ではなく、有名どころのテスト用サイトを使います。

自分が過去に記事を書いた際にも活用している、以下のサイトで試します。

●Gamepad Tester - Check Controllers and Joysticks Online
 https://hardwaretester.com/gamepad

image.png

使い方は簡単です。
PC にゲーム用コントローラー/ゲームパッドをつないだ状態で、このページをブラウザで開き、そしてゲーム用コントローラー/ゲームパッドを操作してみれば OK です。

実際に試してみる

それでは、太鼓の達人用コントローラー「太鼓とバチ for Nintendo Switch」を使ってみます。

試す内容は、バチで叩く対象となっている「面」と「ふち」が、叩かれた時の状態をどうやって取得できるか確認します。

image.png

認識されるかを試す

まずは太鼓の達人用コントローラーが、ゲーム用コントローラー/ゲームパッドとして認識されるか確認します。

上で書いていた「Gamepad Tester」にアクセスし、PC に太鼓の達人用コントローラーを接続して、どれかボタンを押したり面・ふちを叩いたりします。

そうすると、以下のような表示になりました。

image.png

「Taiko Controller」という名称で、コントローラーが認識されています。

面・ふちを叩いた時のボタン押下との対応関係を確認する

あとは、太鼓の達人用コントローラーの面・ふちを叩いた時に、Gamepad API のボタン押下として認識されると思われるので、どのボタンに対応するかを確認します。

以下は、面の右を叩いた時の様子です。

image.png

かなり短い時間ですが、B11 という部分の表示に変化が生じているのが確認できました。

その他、面・ふちを叩いた時を確認したところ、以下となりました。

  • 面(左): B10
  • 面(右): B11
  • ふち(左): B6
  • ふち(右): B7

Gamepad Tester のサイトを使うことで、簡単に確認が行えました。

おわりに

今回のコントローラーに限らず、ゲーム用コントローラー/ゲームパッドを、JavaScript の Gamepad API で扱えるか簡単に試すには、「Gamepad Tester」を使ってみるのが手軽でおすすめです。

他に過去に試したもので、Protokolアプリを使ったやり方もあるので、関連する記事だけ紹介しておきます。

●Protokolアプリを使って Gamepad の入力をモニタリングしてみる【完走賞ゲット-9】 #ゲームパッド - Qiita
 https://qiita.com/youtoy/items/bccb2c1062aaf915805e

なおこのアプリは、Gamepad API 以外に「MIDI」「OSC」の入力のモニタリングも行えたりします。

image.png

余談:その後試してみたこと

上記のお試しをした後、簡単な実装のテストをいくつかやってみています。

今回の記事の本題からずれますが、ざっくり紹介だけしてみます。

p5.js との組み合わせ 2種

自分が 2D・3D描画でよく使うライブラリの 1つ「p5.js」と組み合わせてみたものです。

1つ目は、シンプルに 4箇所のどこを叩いたかを判定し、それに応じて描画に反映させるというものです。

2つ目は、「面」と「ふち」のそれぞれの 2箇所ずつは同一のもの(同一グループ)として扱い、さらに「面」と「ふち」のどちらかについて、以下の叩かれ方をしたかを判定するというものです。

  1. 1回叩かれた
  2. 2回以上連打された

toio(+ p5.js、p5.toio)との組み合わせ

以下は、「面」と「ふち」の 4箇所のいずれかを叩いたことをトリガーに、小さなロボットの toio 4台 が 3種類の動きをするというものです(入力 4パターンに対し、動きが 3パターンなので、入力のある 2パターンは、どちらも toio のある動き 1パターンに紐付いています)。

こちらは以前、Joy-Con・DUALSHOCK 4 との組み合わせで試作していた、あるイベントでの展示(名古屋で中高生向けに開催されたイベントでの展示)のために準備した作品を流用したものでした。

Scratch との組み合わせ

以下は、本来はゲームパッド入力を扱えない Scratch で、ゲームパッドを用いるというものです。

ゲームパッド入力をキー入力に置きかえるアプリを使い、Scratch側でキー入力に反応する処理を用意するという方法がありますが、以下では、ブラウザの Gamepad API を使った 30〜40行くらいの JavaScript のプログラムを、開発者ツールのコンソールで実行して同じことを実現しています。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?