Input System のセットアップ

Tutorial

Beginner

+0XP

10 mins

(9)

Unity Technologies

Input System のセットアップ

このシリーズのチュートリアルでは、まず Input System Package をインストールして、ゲームで使える入力をすぐに設定する方法を学びます。次に、プレイヤーの動きのスクリプトを作成したり、ゲームに対応した入力を使ってプレイヤーを制御する方法を学びます。さらに、独自の入力アクションをカスタマイズして、ゲームパッドやキーボードのデバイスに合わせて Input System を調整する方法を学びます。最後に、特に Input System API を活用したプレイヤーの動きをスクリプト化する方法を学びます。

Languages available:

1. 概要

Unity のビルトイン入力マネージャー (Input Manager) は、最近の Editor バージョンのアップデートでも、長い間、比較的安定していました。ビルトインの入力マネージャーはプレイヤーの入力をうまく処理していますが、現在使われている多くの現行プラットフォームやデバイスが利用可能になる前に設計されたものです。ビルトインの入力 API は、特にデバイスの設定部分で改善の余地があります。幸いなことに、Input System Package は、プレイヤーの入力の設定、構成、および処理をより効率的な方法で改善します。Input System Package は、すべてのプラットフォームに対応しており、カスタムデバイスや将来のデバイスに対応するための拡張も容易に行えます。

このシリーズのチュートリアルでは、まず Input System Package をインストールして、ゲームで使える入力をすぐに設定する方法を学びます。次に、プレイヤーの動きのスクリプトを作成したり、ゲームに対応した入力を使ってプレイヤーを制御する方法を学びます。次に、自分のゲームパッドやキーボードに合わせて入力システムをカスタマイズする方法を学びます。最後に、特に Input System API を活用したプレイヤーの動きをスクリプト化する方法を学びます。

2. Input System のセットアップ

ゲームコントローラーやその他のデバイスを使用する際には、ゲームコントローラーや特定の機器のドライバーがお使いの OS に正しくインストールされていることを確認してください。お使いのデバイスのメーカーやモデルなどの仕様を調べ、お使いの OS に適したドライバーをダウンロードし、インストール作業を行ってください。インストール完了後、コンピューターの再起動が必要になる場合があります。お使いのデバイスが認識されているかどうか、コンピューターの設定パネルまたはシステム環境設定ウィンドウを開いて、お使いのデバイスが表示されているかどうかを再確認してください。本チュートリアルの例では、Xbox ワイヤレスコントローラーと、標準的なキーボード入力を使用します。お客様がお持ちのデバイスあるいはカスタムでインストールしたデバイスを使用することも可能です。

Input System Package for Unity をセットアップするためには、まず Unity エディターのバージョンが 2019.1+ よりも新しいものをインストールし、Project の API 互換性レベルが .NET 4.x ランタイムに設定されていることを確認してください。

1. Unity Hub から新規または既存のプロジェクトを開きます。プロジェクトの API が対応しているかどうかを確認するには、トップメニューのドロップダウンから選択します。Edit > Project Settings と選択し、Project Settings ウィンドウを表示します。左の列から Player オプションを選択し、三角形を選択して、メインの Project Settings ウィンドウの Other Settings のオプションを展開します。Configuration オプションまでスクロールダウンし、API Compatibility Level フィールドの設定が .NET 4.x になっていることを確認します。

本チュートリアルでは、Roll-a-Ball プロジェクトの例を用いて、Input System の設定を説明します。地面 (ground plane) や球体 (sphere) などのプリミティブオブジェクトの設定、マテリアルの追加、Rigidbody コンポーネントの設定など、詳しくは Roll-a-Ball プロジェクトを参照してください。また、ご自身のプロジェクトですでに設定されている既存のプレイヤーを使って作業することもできます。

2. デバイスを使って制御するプレイヤーとして、シーン内にゲームオブジェクトをセットアップします。

このシーンでは、球体のゲームオブジェクトを接地面の中央に配置し、制御可能なプレイヤーとして指定します。このプレイヤー (球体) には、C# スクリプトを使って移動できるようにするコマンドを設定します。C#スクリプトのコマンドについては、このチュートリアルで詳しく説明します。

3. トップメニューのドロップダウンから Package Manager を選択し、Package Manager ウィンドウを開きます:

Window > Package Manager と選択。In Project オプションの Packages の右にある矢印を選択し、ドロップダウンメニューから Unity Registry を選択します。Unity Registry の検索フィールドに「input」と入力して Input System を検索し、Input System パッケージを選択、Install ボタンをクリックしてパッケージをインストールします。本チュートリアルは、Input System のバージョン 1.0.0 で検証しています。

4. Input System Package がインストールされると、新しい Input System を有効にするために、Unity エディターの再起動が必要であることを示すポップアップ警告が表示されます。Yes を選択して、Unity エディターを再起動します。

5. Unity エディターを再起動した後、元々 Unity に統合されているビルトイン Input Manager が無効になっていることを確認します。トップメニューのドロップダウンから選択して Project Settings ウィンドウを開きます:

Edit > Project Settings と選択。左の列からビルトインの Input Manager を選択し、赤い警告が出て無効になっていることを確認します。

新しいプロジェクトを開始した場合は、ビルトインの Input Manager はもう必要ありません。ただし、ビルトインの Input Manager を使ってプレイヤーの入力を利用している既存のプロジェクトで作業していて、既存のプレイヤーコントローラーのスクリプトを壊したくない場合は、旧システムから新システムへ移行する手があります。移行する前に、オプションで両方のシステムを有効にしておくことも可能です。両方のシステムでアクティブな入力処理を有効にしておく場合は次のステップに進み、そうでない場合はステップ番号 7 に進みます。

6. オプションとして、両方のシステムのアクティブな入力処理を有効にするには、Project Settings ウィンドウの左列から Player オプションを選択し、Other Settings オプションを展開します。

7. Active Input Handling までスクロールダウンして、ドロップダウンメニューから Both を選択します。その後、Unity エディターを再起動する必要があります。

オプションとして、開発中の Input System プレビューパッケージのアップデートをテストすることもできます。パッケージが開発されると、特定の機能が改善され、既知の問題が解決されることがよくあります。プレビューパッケージはテスト用に設計されており、通常、本番環境での使用はお勧めできません。オプションで最新の Input System プレビューパッケージをインストールする場合は、次のステップに進み、そうでない場合はステップ 12 に進んでください。

8. プレビューパッケージを有効にするには、Package Manager ウィンドウで歯車のアイコンを選択し、ドロップダウンメニューから Advanced Project Settings を選択します。

9. Project Settings ウィンドウが開き、左側の列で Package Manager オプションが選択されます。Enable Preview Packages のチェックボックスを選択し、ポップアップで表示される警告ダイアログを I Understand ボタンで確認します。

10. Project Settings ウィンドウを閉じて、Package Manager ウィンドウに戻ります。Package Manager ウィンドウの左列にある Input System のオプションを三角形を選択して展開し、ライン読み出し (See other versions) を選択します。他のバージョンを参照してください。

11. 最新の Input System プレビューパッケージを選択し、Package Manager ウィンドウの右下にある Update to 1.x.x-preview ボタンを選択します。

これで、新しくインストールした Input System Package が正しくインストールされ、設定できる状態になったことを確認できます。

12. Project Settings ウィンドウの左側の列から Input System Package を選択し、Project Settings ウィンドウの Create settings asset ボタンを選択すると、編集可能な設定アセットが作成されます。

13. 新たに作成された入力設定アセットは、プロジェクト内に InputSystem.inputsettings.asset として保存されます。ここでは、イベントの処理方法を動的に更新または FixeUpdate メソッドのいずれかにしたり、ボタンをタップするタイミングをデフォルトにしたりする設定をカスタマイズできます。ここでは、Input System Package の設定をデフォルトのままにして、Project Settings ウィンドウを閉じます。これらの設定を後から編集するには、Project Settings ウィンドウを再度開くか、まず Project ウィンドウで InputSystem アセットを選択し、Inspector の Open Input Settings Window ボタンを選択して Project Settings ウィンドウを開きます。

14. これで、ゲームコントローラーが Unity エディターに正しく接続されたはずです。お使いのゲームコントローラーが接続されているかどうかは、トップメニューのドロップダウンから選択して確認してください:

Window > Analysis > Input Debugger の順に選択。接続されているデバイスが表示され、Devices カテゴリーに一覧表示されます。

3. ゲーム対応の Input Action アセットを使い始めよう

プレイヤーの動きを制御するためには、まずプレイヤーの Input コンポーネントをプレイヤーに追加して、新しい Input Action アセットを作成する必要があります。幸いなことに、Unity には一般的なキーボードとゲームコントローラーのボタンバインディングが自動的に追加されたゲームに対応できる Input Action アセットが用意されています。

1. Hierarchy ウィンドウで、Player ゲームオブジェクトを選択します。次に、Inspector の Add Component ボタンを選択し、検索フィールドに「input」と入力して、ドロップダウンメニューから Player Input を選択します。

2. Player Input コンポーネント内で、Create Actions ボタンを選択し、ゲームに対応した Input Action アセットを作成します。

3. ポップアップウィンドウが開き、新しい Input Asset を保存するよう促されます。プロジェクトの Assets フォルダー内に「Inputs」という名前の新規フォルダを作成し、Save を選択します。

ゲーム対応の Input Action アセットが新たに作成されます。検証済みの Input System Package version 1.0.0 の場合、Console ウィンドウに警告エラーが表示されます。この警告を無視して、Console ウィンドウの警告をクリアしても問題はありません。Input System Preview Package version 1.1.0 preview.2 がインストールされている場合は、警告は出ず、新しい Input Actions ウィンドウが自動的に開きます。その場合は、ステップ 6 に進んでください。

4. 新しく作成した Input Action アセットを Player Input コンポーネントに接続するには、Actions フィールドの右側にあるオブジェクトローダーの丸いボタンを選択し、Select InputActionAsset ポップアップウィンドウから Input Action を選択します。別の方法として Project ウィンドウから Input Action を直接選択して、Inspector の Player Input コンポーネントの Actions フィールドにドラッグすることもできます。

5. Project ウィンドウで新規作成した Input Actions アセットを選択し、Inspector の Edit asset ボタンを選択すると、Input Actions ウィンドウが表示されます。

6. Project ウィンドウで Input System Package Input Actions asset が選択されている状態で、Inspector の Edit asset ボタンを押すと、Input Actions ウィンドウが開きます。

7. Input Actions ウィンドウを閉じます。Input Actions のカスタマイズ方法は、このチュートリアルの後半で説明します。次のセクションでは、プレイヤーの動きのスクリプトを作成し、Play モードで制御のテストを行います。

4. 次のステップ

Input System Package は、さまざまなデバイスの入力に対応しています。Input System Package をインストールして設定すると、ゲームに適したデフォルトの入力アクションをすぐに適用して、プロジェクトを開始することができます。

Complete this Tutorial