「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > D&D テーブル用のカスタム ストリーム デッキの構築: カスタム SDK とのゲームパッド統合の解決

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

2024 年 11 月 8 日に公開
ブラウズ:724

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

リリースステートメント この記事は次の場所に転載されています: https://dev.to/ramongebben/building-a-custom-stream-deck-for-my-dd-table-solve-gamepad-integration-with-a-custom-sdk-5c2h? 1 権利侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3