

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マウスの移動処理
<a name="sdk-mouse-movement"></a>

マウスの移動処理は、ストリーミングされたアプリケーションで応答性と直感的なユーザーエクスペリエンスを提供するために不可欠です。Amazon GameLift Streams は、アプリケーションのカーソル動作に基づいてマウス入力送信を自動的に最適化し、カーソルが非表示でも表示でもマウスの動きが自然に感じられるようにします。Amazon GameLift Streams がマウスイベントを処理する方法を理解すると、ストリーミングサービスとシームレスに連携し、可能な限り最高のユーザーエクスペリエンスを提供するアプリケーションを設計できます。

## マウス入力モード
<a name="sdk-mouse-input-modes"></a>

Amazon GameLift Streams は、マウスイベントをアプリケーションに送信するために 2 つの異なるモードを使用し、カーソルの可視性に基づいて適切なモードを自動的に選択します。

相対モード  
相対モードでは、マウスの更新は前の位置との小さな増分差として送信されます。このモードは、ファーストパーソンシューティング (FPS) ゲームや 3D 方向を使用するインターフェイスなど、正確で継続的なマウスの動き追跡を必要とするアプリケーションに最適です。Amazon GameLift Streams は、オペレーティングシステムのカーソルが非表示または完全に透過的である場合、相対モードを使用します。

絶対モード  
絶対モードでは、マウスカーソルの位置は正確な画面座標として送信されます。このモードは、point-and-clickゲームやクリック可能な要素を持つ UI など、正確なカーソル配置に依存するアプリケーションに適しています。Amazon GameLift Streams は、アプリケーションにカスタムカーソルイメージが表示されていても、オペレーティングシステムのカーソルが表示されるときに絶対モードを使用します。

この自動選択により、手動設定を必要とせずに、さまざまなアプリケーションタイプに最適なパフォーマンスが保証されます。

## ポインタロック
<a name="sdk-pointer-lock"></a>

ポインタロックは、特定の要素内のマウスカーソルをキャプチャし、カーソルを非表示にして、指定された領域からマウスカーソルを離れないようにするウェブ API 機能です。この機能は、視認可能なカーソルの気が散ったり、ウィンドウエッジに到達したりすることなく、カメラ制御や狙いを定めるために無制限のマウスの動きを必要とするゲームに特に役立ちます。

Amazon GameLift Streams は、Web SDK の `InputConfiguration`インターフェイスの `autoPointerLock`プロパティを通じて自動ポインタロック機能を提供します。この機能は [requestPointerLock API](https://developer.mozilla.org/en-US/docs/Web/API/Element/requestPointerLock) と統合され、直感的でコンテキスト対応のマウスキャプチャを提供します。

### 自動ポインタロックの動作
<a name="sdk-pointer-lock-behavior"></a>

Amazon GameLift Streams は、アプリケーションが全画面表示で、リモートカーソルがストリームホストに表示されない場合に、ポインタロックを自動的に有効にします。この動作は、一般的なゲーム開発パターンとよく一致します。
+ **FPS/TPS ゲームと 3D 方向制御** - ポインタは自動的にロックされ、カーソルは非表示になり、FPS ゲームプレイに不可欠な無制限のカメラ制御を提供します。
+ **Point-and-clickゲームと UI コントロール** - ゲームがメニューインタラクションまたは戦略ゲームプレイにカーソルを表示すると、ポインタは表示およびロック解除されたままになり、意図したユーザーエクスペリエンスが保持されます。

### 設定オプション
<a name="sdk-pointer-lock-configuration"></a>

`autoPointerLock` プロパティは、次の値を受け入れます。

`true`  
リモートカーソルが表示されない場合、マウスは常にキャプチャされます。

`false`  
カーソルの可視性に関係なく、マウスはキャプチャされません。

`'fullscreen'` (デフォルト)  
マウスは、ビデオ要素が全画面表示モードにあり、リモートカーソルが表示されない場合にのみキャプチャされます。

**重要**  
`autoPointerLock` プラットフォームの制限により、 は Safari ブラウザや iOS プラットフォームには影響しません。

## ベストプラクティス
<a name="sdk-mouse-best-practices"></a>

ストリーミングされたアプリケーションでマウスを最適に処理するには：
+ **常に全画面ストリーミング**する - サービスで正常に動作するには、アプリケーションがすでに全画面モードで実行されている必要があります。さらに、ブラウザのサポートを使用して、ストリームをフルスクリーン要素にして、最適なエンドユーザーエクスペリエンスを実現することをお勧めします。これにより、システムカーソルとソフトウェアカーソル間のアライメントの問題などの問題を回避できます。
+ **相対モーションのカーソルを非表示**にする - アプリケーションでマウスの相対モーション (FPS 形式のカメラコントロールやドラッグベースのインタラクションなど) が予想される場合は、それらのインタラクション中にオペレーティングシステムのカーソルを非表示にします。シナリオによっては、マウスダウンでカーソルを非表示にし、マウスアップで再度表示する必要がある場合があります。
+ **絶対配置のカーソルを表示する** - アプリケーションで UI インタラクションに正確なカーソル配置が必要な場合は、オペレーティングシステムのカーソルが表示されたままにして絶対座標モードを有効にします。
+ **さまざまな入力シナリオをテスト**する - Amazon GameLift Streams がカーソルの可視性の変化に基づいてモードを切り替える可能性があるため、アプリケーションが相対モードと絶対モードの両方を正しく処理していることを確認します。
+ **さまざまなウィンドウモードをテスト**する - 該当する場合は、ウィンドウモードと全画面モードの両方でアプリケーションのマウス処理をテストします。入力`autoPointerLock`設定に最適な設定を決定します。