D&D テーブル用のカスタム ストリーム デッキの構築: カスタム SDK とのゲームパッド統合の解決

Linda Hamilton
リリース: 2024-10-01 20:18:29
オリジナル
731 人が閲覧しました

Building a Custom Stream Deck for My D&D Table: Solving Gamepad Integration with a Custom SDK

ダンジョンズ & ドラゴンズの熱心なプレイヤーでありテクノロジー愛好家である私は、埋め込みスクリーンを備えたカスタム コーヒー テーブルを作成して、ゲームのセットアップを向上させることにしました。このテーブルには、マップ、トークンが表示され、サウンド効果が再生され、プレーヤーのアートワークも表示されます。これらすべては、Foundry VTT と呼ばれる強力なプラットフォームを通じて実行されます。Foundry VTT は Roll20 に似ていますが、より優れた価格設定モデルと広範なオープン モジュール システムを備えています。卓上のエクスペリエンスをカスタマイズするのに最適です。

セットアップを強化する方法を模索しているときに、ストリーム デッキを Foundry と統合できるモジュールに気づきました。これらのツールを使用すると、マクロやコマンドにすばやくアクセスでき、ゲームプレイがさらにスムーズになります。しかし、ストリームデッキの価格 (200 ユーロ!) を見て、その投資をする準備ができていませんでした。

そこで私はあることを思い出しました – 数年前、アーケードマシンを作りました。マシンはかなり前に解体されましたが、プロジェクトのボタンとコントローラー ボードはまだ残っていました。少しの創造力と 3D プリンターを使って、ボタン用のスロットが付いている小さなボックスを印刷して、独自のカスタム「ストリーム デッキ」を作成しました。

これでハードウェアの準備が整いましたが、それを Foundry VTT と統合するのが課題でした。ブラウザーでゲームパッド API を使用してボタンの押下を登録したいと思いましたが、API が入力を処理する方法に柔軟性が欠けていることにショックを受けました。デフォルトのアプローチでは、while(true) ループを使用して各ボタンの押された状態を常にポーリングします。これは requestAnimationFrame を使用したゲーム ループでは問題なく機能しますが、私の目的からすると非効率的で、率直に言って愚かだと感じました。無限ループでゲームパッドの状態を常にチェックするのではなく、単にイベント リスナーを使用してボタンの押下に応答したいと考えていました。

これが、今日共有するゲームパッド SDK の作成につながりました。

この SDK では、開発者がボタンの押下、離し、軸変更のイベント リスナーを直接追加できるようにすることで、プロセスを簡素化しました。ポーリングは必要ありません。また、ゲームパッドの接続と切断のサポートも含まれているため、Foundry VTT やブラウザベースのプロジェクトなどのプラットフォームとの統合が簡単になります。

この SDK を使用すると、ゲームパッドの状態を手動で確認する手間をかけずに、誰でもカスタム コントローラーをブラウザベースのアプリに接続できます。私の D&D テーブルの場合、これは、いくつかのボタンと短いコードのおかげで、間に合わせのストリーム デッキをシームレスに使用してゲーム内マクロやアクションなどを制御できることを意味します。

ご興味がございましたら、SDK をチェックしてください。同様の問題を解決したい場合はお気軽にお問い合わせください。

Github: https://github.com/RamonGebben/Gamepad-SDK
NPM: https://www.npmjs.com/package/@pinnakaasman/gamepad-sdk

以上がD&D テーブル用のカスタム ストリーム デッキの構築: カスタム SDK とのゲームパッド統合の解決の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート