開発者コンソール

Google Input SDKからの移行

Google Input SDKからの移行

Amazon Input SDKを使用すると、さまざまなデバイスにおいて、アプリからキーボードとマウスの入力コントロールをユーザーに表示できます。Google Input SDKの場合、対象となるのはGoogle Play Games対応デバイスだけで、ヘルプの呼び出しをサービスが処理します。Amazon Input SDKでは、互換性のあるすべてのAndroidデバイスがサポートされ、コントロールのヘルプ画面の表示を開発者が制御できます。

Google Input SDKとは

Google Input SDKは、Google Play Gamesで動作するゲームを対象としたものです。Google Input SDKを使用すると、ゲームからキーボードとマウスのコントロールを登録することができます。Google Play Gamesは、リクエストに応じてそれらのコントロールを表示します。Google Input SDKはGoogle Play Games対応デバイスでのみ利用でき、Amazonデバイス、Windows 11、その他のAndroidデバイスでは動作しません。

Amazon Input SDKへの移行

アプリが既にGoogle Input SDKと統合されている場合は、Amazon Input SDKへの移行を検討してください。Amazon Input SDKは、Google Input SDKと同様のインターフェイスを使用しています。このため、インポートステートメントを更新した後は、Google Input SDKをサポートするために作成したコードの大部分を最小限の変更でAmazon Input SDKに使用できます。

Amazon Input SDKのサポートを追加する手順

Amazon Input SDKのサポートを追加するには、次の手順を使用します。

  1. プロジェクトにAmazon Input SDKを依存関係として追加します。詳細については、Input SDKをプロジェクトに追加する方法を参照してください。
  2. InputMappingProviderインターフェイスを実装します。次のコードは、入力マッピングプロバイダーの作成方法をJavaで示しています。
     public class CustomInputMapProvider implements InputMappingProvider {
    
         @Override
         public InputMap onProvideInputMap() {
             InputAction jumpAction = InputAction.create(
                 "Jump",
                 MyGameActions.JUMP, // ここでのMyGameActionsはゲーム内の列挙体
                 InputControls.create(
                         Collections.singletonList(KeyEvent.KEYCODE_SPACE),
                         Collections.emptyList()
                 )
             );
                
             InputAction moveAction = InputAction.create(
                 "Move",
                 MyGameActions.MOVE,
                 InputControls.create(
                         Collections.emptyList(),
                         Collections.singletonList(InputControls.MOUSE_MOVEMENT)
                 )
             );
                
             InputGroup movementInputGroup = InputGroup.create("Basic Movement",
                 Arrays.asList(moveAction, jumpAction));
                    
             return InputMap.create(Arrays.asList(movementInputGroup),
                 MouseSettings.create(true, true));
         }
     }
    
  3. デバイス環境に応じて、Amazon Input SDKまたはGoogle Input SDKから入力マップを登録します。詳細については、Amazon Input SDKとGoogle Input SDKの両方をサポートする方法を参照してください。
  4. Amazon Input SDKの場合は、ヘルプ画面の呼び出しをアプリ内で処理します。これはGoogle Input SDKでは必要ありません。アプリがAmazon Input SDKを使用して入力マップを登録するシナリオでのみ、この処理を有効にしてください。

APIの詳細については、Amazon Input SDKを参照してください。

Amazon Input SDKとGoogle Input SDKの両方をサポートする方法

Google Input SDKは、Google Play Gamesサービスと連携して動作します。Amazon Input SDKとGoogle Input SDKの両方をアプリでサポートしようとしている場合、Amazonアプリストアでは、Google Play Gamesサービスを利用できないデバイスでAmazon Input SDKを有効にすることをお勧めします。このようなデバイスとして、Amazon Fireデバイス、Windows 11、いくつかのAndroidデバイスがあります。

これを行うには、次の例に示すように、Google Play Games APIが利用可能かどうかを特定します。

 

クリップボードにコピーされました。

boolean isGPGEnabled = getPackageManager()
    .hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE");

if (isGPGEnabled) {
    // Google Input SDKの入力クライアントを初期化します。
    com.google.android.libraries.play.games.inputmapping
        .InputMappingClient inputMappingClient = com.google.android.libraries.play
            .games.inputmapping.Input.getInputMappingClient(this);
inputMappingClient.setInputMappingProvider(new PayGamesInputMapProvider());
} else {
    // Amazon Input SDKの入力クライアントを初期化します。
    com.amazon.device.inputmapping.input.InputMappingClient inputMappingClient 
        = com.amazon.device.inputmapping.Input.getInputMappingClient(this)
    inputMappingClient.setInputMappingProvider(new CustomInputMapProvider());
}

 

クリップボードにコピーされました。

val IsGooglePlayGamesEnabled = packageManager
    .hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE");

if (IsGooglePlayGamesEnabled) {
    // Google Input SDKの入力クライアントを初期化します。
    val inputMappingClient = com.google.android.libraries.play
            .games.inputmapping.Input.getInputMappingClient(this);
    inputMappingClient.setInputMappingProvider(PayGamesInputMapProvider());
} else {
    // Amazon Input SDKの入力クライアントを初期化します。
    val inputMappingClient = com.amazon.device.inputmapping.input.Input
        .getInputMappingClient(this);
    inputMappingClient.inputMappingProvider = CustomInputMapProvider();
}

 

クリップボードにコピーされました。

using AmazonInputSDK = Amazon.InputSDK.Input;
using GoogleInputSDK = Google.Play.InputMapping;

// initメソッド内
public static bool IsGooglePlayGamesEnabled => PackageManager.Call<bool>("hasSystemFeature",
    "com.google.android.play.feature.HPE_EXPERIENCE");
if (isGooglePlayGamesEnabled){
    var inputMappingClient = GoogleInputSDK.GetInputMappingClient();
    inputMappingClient.SetInputMappingProvider(new MyInputMappingProvider());
else {
    var inputMappingClient = AmazonInputSDK.GetInputMappingClient();
    inputMappingClient.SetInputMappingProvider(new MyInputMappingProvider());
}

ヘルプ画面の呼び出し

Google Input SDKでは、ヘルプ画面を表示するタイミングを制御するのはGoogle Play Gamesサービスです。Amazon Input SDKでは、開発者がヘルプ画面の呼び出しの処理方法を制御します。

ヘルプ画面を表示するには、クリック時にヘルプ画面を開く視覚要素をユーザーに表示することを検討してください。この視覚的なインジケーターは、ゲームウィンドウ内に配置することも、設定ページや管理ページなどの別の画面に配置することもできます。


Last updated: 2024年3月5日