ホームページ > ウェブフロントエンド > jsチュートリアル > GamePad APIでの真のゲーム体験

GamePad APIでの真のゲーム体験

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-02-19 12:52:11
オリジナル
940 人が閲覧しました

GamePad APIでの真のゲーム体験

キーテイクアウト

    W3Cの提案されている標準であるGamePad APIは、Xboxコントローラーなどのゲーム入力デバイスをブラウザベースのエクスペリエンス用にコンピューターに接続するためのブラウザ全体で一貫したAPIを提供します。
  • GamePad APIは柔軟性を提供し、正規化された値を持つボタンと軸へのアクセスを提供し、GamePadオブジェクトは接続されたGamePadのメーカーとモデルに関する詳細情報を提供します。
  • PXGAMEPADは、Xbox Oneコントローラーのような標準のゲームパッドのより高いレベルの表現を提供するヘルパークラスであり、Xboxコントローラーにラベル付けされたボタンとAxisインデックスを馴染みのある名前にマッピングします。
  • GamePad APIは独自のゲームパッドで複数のプレーヤーをサポートできますが、将来の改善により、ユーザーはゲームパッドのボタン機能を再マッピングまたはカスタマイズできる場合があり、APIは3Dモデルの操作とナビゲートなどのゲーム以外のシナリオの可能性を提供します。 。
  • この記事は、MicrosoftのWeb開発シリーズの一部です。 SitePointを可能にしてくれたパートナーをサポートしてくれてありがとう。 Web上でのゲームは、Canvas、WebGL、WebAudioなどのHTML5テクノロジーで長い道のりを歩んできました。ブラウザ内で忠実度の高いグラフィックとサウンドを作成できるようになりました。ただし、真のゲーム体験を提供するには、ゲーム用に設計された入力デバイスが必要です。 GamePad APIは、W3Cの提案されている標準であり、ブラウザ全体で一貫したAPIを提供するように設計されています。
  • GamePad APIを使用すると、ユーザーはXboxコントローラーなどのデバイスをコンピューターに接続し、ブラウザベースのエクスペリエンスに使用できます。ゲームパッドがある場合は、コンピューターにプラグインしてからボタンを押してみてください。下のXboxコントローラーが表示され、作成した各動きをミラーリングしてください!

ここでインタラクティブに試してみてください。 このチュートリアルは、Flight Arcadeのシリーズの3番目であり、Webプラットフォームと新しいMicrosoft EdgeブラウザーとEdgeHTMLレンダリングエンジンで何が可能かを示すために構築されています。 WebGLとWeb APIの最初の2つの記事に加えて、flightArcade.comでこの記事のインタラクティブコードと例を見つけることができます。 [YouTube xyaq9tpmxra]

柔軟なapi

GamePad APIは、柔軟性を念頭に置いてインテリジェントに設計されています。基本レベルでは、ボタンと軸へのアクセスを提供します。ボタンの値は[0 .. 1]からの範囲ですが、軸の範囲は[-1 .. 1]です。すべての値はこれらの範囲に正規化されているため、開発者はデバイス間の一貫した動作を期待できます。

GamePadオブジェクトは、接続されたゲームパッドのメーカーとモデルに関する詳細情報を提供します。より便利なのは、GamePadの一般的なタイプを説明するマッピングプロパティです。現在、サポートされている唯一のマッピングは標準であり、Xboxのような多くの人気のあるゲームコンソールが使用するコントローラーレイアウトに対応しています。

標準コントローラーマッピングには2つのスティックがあり、それぞれが2つの軸(xとy)で表されます。また、D-PAD、4つのゲームボタン、トップボタン、トリガーが含まれています。すべてがGamePad APIのボタンとして表されます。

現在のXboxコントローラーは、ボタン状態を0(通常の状態)または1(押された)のいずれかとして報告します。ただし、将来のコントローラーが各ボタンプレスに適用される力の量を報告できると想像できます。

Xbox D-PADは離散値(0または1)も報告しますが、スティックは軸範囲全体にわたって連続値を提供します[-1 .. 1]。この追加の精度により、飛行アーケードミッションで飛行機を飛行するのがはるかに簡単になります。

pxgamepad

GamePad APIによって提供されるボタンと軸の配列は、低レベルのAPIとして前向きに考えており、完璧です。ただし、ゲームを書くときは、Xbox Oneコントローラーのような標準的なゲームパッドのより高いレベルの表現を持つことは素晴らしいことです。 Xboxコントローラーにラベル付けされているように、ボタンとAxisインデックスをよりよく知られている名前にマッピングするPXGAMEPADという名前のヘルパークラスを作成しました。

ライブラリの興味深い部分をいくつか紹介しますが、完全なソースコード(MITライセンス)はこちらから入手できます:https://github.com/thinkpixellab/pxgamepad

標準のGamePad APIは、ボタン状態を一連のボタンとして提供します。繰り返しますが、このAPIは、さまざまなボタンカウントを持つコントローラーを可能にする柔軟性のために設計されています。ただし、ゲームを書くときは、標準のマッピングボタン名を使用するコードを書き込み、読み取る方がはるかに簡単です。 たとえば、HTML5 GamePad APIを使用して、左のトリガーが現在押しているかどうかを確認するコードを次に示します。

PXGAMEPADクラスには、すべての標準マッピングボタンと軸の状態を収集する更新方法が含まれています。したがって、LeftTriggerが押されているかどうかを判断することは、ブールプロパティにアクセスするのと同じくらい簡単です。

標準のGamePad APIの

軸は、数値の配列としても提供されます。たとえば、左スティックの正規化されたxおよびy値を取得するコードを次に示します。

D-PADは特別なケースです。これは、HTML5ゲームパッドAPI(インデックス12、13、14、および15)によって4つのボタンのセットと考えられているためです。ただし、開発者がDPADをスティックの1つと同じ方法で使用できるようにすることが一般的です。 PXGAMEPADは、D-PADのボタンインフォメーションを提供しますが、d-padがスティックであるかのように軸情報をシステム化します。GamePad APIでの真のゲーム体験

HTML5 GamePad APIのもう1つの制限は、ボタンレベルのイベントを提供しないことです。ゲーム開発者がボタンを押すために単一のイベントをアクティブにすることは一般的です。飛行アーケードでは、イグニッションとブレーキボタンは良い例です。 PXGAMEPAD WATCHESボタン状態と、発信者がボタンのリリースで通知を登録できるようにします。

GamePad APIでの真のゲーム体験 PXGAMEPADでサポートされている名前の付いたボタンの完全なリストを次に示します。

a
  • b
  • x
  • y
  • lefttop
  • righttop
  • lefttrigger
  • righttrigger
  • select
  • start
  • leftstick
  • 右スティック
  • dpadup
  • dpaddown
  • dpadleft
  • dpadright
  • 現在のゲームパッドを取得して

ゲームパッドオブジェクトを取得するための2つの方法があります。 GamePad APIは、接続されたすべてのゲームパッドの配列を返すGetGamePads()という名前のナビゲーターオブジェクトにメソッドを追加します。また、新しいゲームパッドが接続または切断されるたびに起動される新しいGamePadConnectedおよびGamePaddisconedイベントもあります。たとえば、PXGAMEPADヘルパーが最後の接続されたゲームパッドをどのように保存するかを次に示します。

そして、これはnavigator.getGamepads()APIを使用して最初の標準ゲームパッドを取得するヘルパーです:

GamePad APIでの真のゲーム体験

PXGAMEPADヘルパークラスは、単一のユーザーが標準マッピングされたゲームパッドを使用してゲームをプレイしているシンプルなシナリオ向けに設計されています。 Microsoft Edgeのような最新のブラウザは、W3C Gampepad APIを完全にサポートしています。ただし、他の一部のブラウザの古いバージョンは、新興仕様のピースのみをサポートしています。 PXGAMEPADは、GamePadConnectedイベントを聴き、必要に応じてすべてのゲームパッドのリストのクエリに戻ります。 GamePadの未来

GamePad APIでの真のゲーム体験PXGAMEPADはシンプルで最も一般的なシナリオに焦点を当てていますが、GamePad APIは複数のプレーヤーを完全にサポートできます。 PXGAMEPADの改善の1つは、複数のゲームパッドの接続を追跡し、ゲーム内の複数のプレーヤーにマッピングするマネージャースタイルのクラスを提供することです。もう1つは、ユーザーがゲームパッドのボタン機能を再マッピングまたはカスタマイズできるようにすることです。 また、ゲーム以外のシナリオのゲームパッドの可能性に興奮しています。 WebGLの台頭により、Web上の3Dのさまざまな革新的な用途が見られます。それは、氷河ワークスで3Dのエベレスト山地域を探索することを意味するかもしれません。または、重要な世界のサイトや工芸品をデジタルで保存するCyarkの努力のおかげで、大英博物館のアッシリアのコレクションを見る。

飛行アーケードの開発中に、Babylon.jsのモデルを処理するためにBlenderやその他の3Dツールを頻繁に使用しました。一部の開発者とアーティストは、3Dマウスと呼ばれるデバイスを使用して、3Dモデルの操作とナビゲートを支援します。これらのデバイスは、6つの軸を通る単一のノブの動きを追跡します!モデルを操作できるようになります。ゲームを超えて、エンジニアリングから医療イメージングまで、さまざまな興味深いアプリケーションで使用されています。 Flight Arcadeにゲームパッドのサポートを追加している間、GamePad APIが3D Spacemouseを検出し、6つの軸すべてに移動データを提供したことを知って驚きました!

新しいGamePad APIが提供するすべての可能性を想像するのはエキサイティングです。新しいGamePad APIを試して、次のゲームやアプリケーションに多くの楽しみを追加するのに最適な時期です!

JavaScriptを使用したより実践的な

Microsoftには、多くのオープンソースJavaScriptのトピックに関する無料の学習がたくさんあり、Microsoft Edgeでさらに多くを作成するという使命を担っています。ここにチェックアウトするものがあります:

Microsoft Edge Web Summit 2015(新しいブラウザ、新しいWebプラットフォーム機能、コミュニティのゲストスピーカーで期待すべきことの完全なシリーズ)
    // build/and windows 10のビルド(サイトとアプリ用の新しいJavaScriptエンジンを含む)
  • Webを壊さずにJavaScriptを前進させる(Christian Heilmannの最近の基調講演)
  • ホストされたWebアプリとWebプラットフォームのイノベーション(Manifold.jsなどのトピックに関する深いダイビング)
  • HTML/JavaScriptをより高速にするための実用的なパフォーマンスのヒント(レスポンシブデザインからカジュアルゲーム、パフォーマンスの最適化まで)
  • 最新のWebプラットフォームJumpstart(HTML、CSS、およびJSの基礎)
  • および開始するためのいくつかの無料ツール:Visual Studio Code、Azure Trial、およびクロスブラウザーテストツール - すべてMac、Linux、またはWindowsで利用できます。
この記事は、MicrosoftのWeb Dev Techシリーズの一部です。 Microsoft Edgeと新しいEdgeHTMLレンダリングエンジンを共有できることを楽しみにしています。無料の仮想マシンを入手するか、Mac、iOS、Android、またはWindowsデバイス @ Modern.ieでリモートでテストします。

ゲームパッドAPI

に関するよくある質問

GamePad APIは何ですか?GamePad APIは、開発者がGamePadまたはコントローラーからの信号にアクセスして応答できるWebベースのインターフェイスです。このAPIは、あらゆるタイプのゲームパッドで動作するように設計されており、ゲーム開発者にとって汎用性の高いツールになります。サードパーティのソフトウェアやドライバーを使用する必要なく、ゲームパッドと直接やり取りする方法を提供します。

GamePad APIはどのように機能しますか?

GamePad APIは、ゲームパッドからの入力を検出し、ゲーム内のアクションに変換することで機能します。これは、ボタンプレスやジョイスティックの動きなどの特定のイベントをリッスンし、ゲーム内の対応するアクションをトリガーすることで行います。これにより、より没入型でインタラクティブなゲームエクスペリエンスが可能になります。

自分のゲームでGamePad APIを使用するにはどうすればよいですか?ゲームのコードで。これには、APIの機能を呼び出し、生成するイベントを聞くことが含まれます。次に、これらのイベントを使用して、キャラクターの動きやメニューナビゲーションなどのゲームの側面を制御できます。幅広いゲームパッドと互換性があります。これには、ボタンとジョイスティックを備えた標準的なゲームパッド、およびステアリングホイールやフライトスティックなどのより専門的なコントローラーが含まれます。 APIは複数のゲームパッドを一度に処理し、マルチプレイヤーゲームを可能にします。より複雑なゲームを作成する。たとえば、GamePad APIを使用してキャラクターの動きを制御できますが、別のAPIを使用してゲームの物理やグラフィックを処理します。

GamePad APIはすべてのブラウザーでサポートされていますか?すべてのブラウザが現在それをサポートしているわけではなく、Webベースのインターフェイスです。ただし、Chrome、Firefox、Edgeを含むほとんどの最新のブラウザーは、GamePad APIをサポートしています。開発を開始する前に、APIの現在のブラウザサポートを確認することをお勧めします。 GamePad APIには、正しいゲームパッドの検出、複数のゲームパッドの処理、さまざまなボタンレイアウトの処理が含まれます。これらの問題は通常、APIドキュメントを慎重に読んでゲームを徹底的にテストすることで解決できます。デスクトップブラウザは、モバイルゲームにも使用できます。ただし、これにはモバイルデバイスと互換性のあるゲームパッドが必要であり、ユーザーエクスペリエンスはデスクトップゲームほどスムーズではない場合があります。ゲームパッドをコンピューターに接続し、APIを使用するゲームを実行することにより、ゲームパッドAPIをテストできます。その後、ゲームパッドのボタンを押して、対応するアクションがゲームでトリガーされているかどうかを確認できます。

GamePad APIの詳細については、どこで詳しく知ることができますか?

GamePad APIの詳細については、オンラインで利用できるリソースがたくさんあります。これには、公式のAPIドキュメント、およびさまざまなゲーム開発Webサイトのチュートリアルとガイドが含まれます。 APIを使用して動作しているゲームの例を見つけることもできます。

以上がGamePad APIでの真のゲーム体験の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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