Unity開発者は、多種多様なプラットフォームに対応している恩恵を受けている一方で、入力デバイスの一貫した管理に課題を感じることも少なくありません。

「Input System」は入力デバイスの管理に特化したシステムであり、このような課題を解決してくれます。

本記事では、「Input System」の概要から、その機能や何ができるのか、そして具体的なインストール方法や基本的な使い方について詳しく解説します。

Unityでの入力管理の課題を克服し、より効率的な開発を目指す方は必見です。

|Unityとは

Unityは、ビデオゲーム、AR/VR、映画、アニメーション、その他さまざまなインタラクティブな3Dと2Dコンテンツの制作のための人気の高いクロスプラットフォームのゲームエンジンです。

Unityの強みの一つは、多様なプラットフォームに対応していることですが、プラットフォームごとにさまざまな入力デバイスが存在するため、これらを一貫して管理することが難しくなっています。

つまり、開発においてキーボード、ゲームパッド、VRコントローラーなど、それぞれのデバイスの特性を考慮する必要があります。

記事タイトルにもある「Input System」は、Unity内での入力デバイスの管理をシンプル化し、統一することを可能にします。

この記事では、その特徴についてまとめていますので、ぜひ目を通していただければと思います。

Unityについてもう少し詳しく知りたい方は、下記のリンクを参考にしてみてください。

Unityとは?特徴や作品事例、価格など徹底解説!
Unityとは?特徴や作品事例、価格など徹底解説!

|Input Systemとは

出典:https://docs.unity3d.com/ja/2019.4/Manual/com.unity.inputsystem.html

UnityのInput Systemは、現代のゲーム開発の複雑さと多様性を考慮した、革新的な入力管理手法を提供しています。その中心にあるのは「統合性」と「柔軟性」です。

統合性:様々な入力デバイスを一つのフレームワーク内で一貫して扱えます。

これにより、開発者は複数のデバイスに対して一元的なアプローチを持つことができるのです。

柔軟性:各種の入力要件や特定のゲームプレイのニーズにフレキシブルに対応できます。

従来の方法では困難だった、特定の操作の判定やカスタマイズが劇的に容易になりました。

このシステムを駆使することで、より柔軟で高度な入力処理を容易に実現でき、ゲームやアプリケーションのユーザーエクスペリエンスを大幅に向上させられます。

|Input Systemでできること

Input Systemには、3つの特徴があります。

  1. 「Action」中心の入力
    入力を「Action」という単位で考えます。従来のキー指定から一歩進み、「ジャンプ」や「射撃」といったプレイヤーの行動を中心に設計します。これにより、具体的なキーやボタンの配置から解放され、ゲームの設計や操作性の向上に集中することが可能になりました。
  2. 多様なデバイス対応
    タッチ入力からゲームコントローラーまで、幅広いデバイスに対応しています。異なるプラットフォーム間での一貫性が保たれ、開発効率も向上します。
  3. カスタマイズ性
    プレイヤーの好みやニーズに応じて、入力設定を簡単に変更・カスタマイズすることが可能です。これにより、ユーザが快適にゲームを楽しむための操作環境を構築することができます。

|Input Systemのインストール方法

Input Systemを利用するためには、まず適切なパッケージをインストールする必要があります。

その手順を簡単に説明します。

  1. Unityエディタを起動し、プロジェクトを開くか、新しいプロジェクトを作成します。
  2. メニューバーから「Window」を選択し、ドロップダウンリストから「Package Manager」をクリックします。
  3. 左上にある「Packages:」のフィルタを「Unity Registry」を選択します。
  4. 検索バーに「Input System」と入力し、該当するパッケージを探します。
  5. 「Input System」のパッケージが表示されたら、その右下の「Install」ボタンをクリックしてインストールを開始します。

インストール後、エディタを再起動することで、Input Systemが使用可能になります。

|Input Systemの使い方

Input Systemはキーボードやマウス、ゲームパッドといったデバイスからの情報をシンプルに管理し、統一した処理が可能になります。

ここからは、その基本的な使い方を簡潔に紹介していきます。

Actionを設定する

まず入力を管理するための設定ファイルである「Input Actions」を作成する必要があります。

Unityのエディタ内で、適当なフォルダを右クリックし、「作成」→「Input Actions」を選択することで新しいInput Actionsファイルが作成されます。

このファイルではControl Scheme、Action Maps、Actionsの定義ができます。

  1. Control Scheme
    様々な入力デバイス(キーボード&マウス、ゲームパッド、タッチ入力など)を管理してくれます。Input Actions編集ウィンドウ内で「Add Control Schemes」のメニューから新しいスキームを作成・編集することができます。
  2. Action Maps

入力のグループやカテゴリを管理するためのものです。

例えば「Player」と「UI」といった異なる入力のカテゴリを設定することができます。

  1. Actions
    具体的な入力動作(例: プレイヤーの移動、ジャンプなど)を定義します。作成したAction Map内で、具体的なアクションを追加・編集することができます。

Actionを設定したいオブジェクトを用意

Unityのシーンに、入力に反応するオブジェクト(例: プレイヤーキャラクター)を配置します。これは通常のGameObjectを配置する方法と同じです。

次にPlayer Inputコンポーネントの追加を行います。

Actionを設定したいオブジェクトには、「Player Input」コンポーネントをアタッチする必要があります。

これを行うことで、Input Actionsとオブジェクトがリンクされます。

設定したActionを認識させる

先ほど作成したInput Actionsファイルを「Player Input」コンポーネントの「Actions」フィールドにドラッグ&ドロップして関連付けます。

最後にコンポーネント内で、具体的にどのアクションがどのようにオブジェクトに影響を及ぼすのかを設定します。

これは、例えば「ジャンプ」アクションをトリガーとして、特定の関数やアニメーションを実行する設定などを指します。

Input Debuggerを使用すればデバッグも可能

ここは必須ではありませんが、知っておくと便利なので記載しておきます。

Input Debuggerは、開発者が現在の入力デバイスの状態や動作をリアルタイムで確認でき、予期しない入力の問題やバグを早期に発見することができます。

Unityエディタ内で、Windows > Analysis > Input Debuggerを選択すると、接続されているすべての入力デバイスの一覧が表示されるウィンドウが開きます。

これには、ゲームパッドやキーボード、マウスなど、認識されているデバイスがリストアップされます。

デバイス一覧からは、ボタンの押下状態やアナログスティックの角度、触覚フィードバックの状態など、デバイスの詳細な情報をリアルタイムで確認することができます。

具体的なデバイスの動作を確認しながら、ゲームの入力を最適化したり、バグを特定するなどの作業を効率的に行うことができます。

|まとめ

いかがでしょうか。

今回の記事では、Input Systemの基本的な概要やその利点、インストールから使い方について詳しく紹介していきました。

Unityの入力デバイス管理に関する課題に直面している開発者にとって、Input Systemは必携のツールとなるのではないでしょうか。