Unity を検索

新しい Input System のご紹介

2019年10月14日 カテゴリ: Engine & platform | 4 分 で読めます
取り上げているトピック
シェア

Is this article helpful for you?

Thank you for your feedback!

Input System は現在プレビュー版として公開されており、Unity 2019.1 からご使用いただけます。この新しいシステムは、すべてのデバイスとプラットフォームで使いやすさを実現することに重点を置いて開発されています。パッケージマネージャー経由でインストールしていただけます。ぜひご試用になって、フォーラムからフィードバックをお寄せください。

Unity の現行のビルトイン入力管理システムは、Unity が現在のように多数のプラットフォームやデバイスに対応する以前に設計されたものです。このシステムに関しては、長年にわたって使用されて来た中で、その使い勝手があまり良くなく、時として(実行ファイルが起動してからコントローラーを接続するなどの)単純なケースにさえ対応が困難な場合もあることが明らかになっていました。このため Unity では、完全に書き直した新しいシステムの作成を進めてきました(現段階では、現行の Input Manager の廃止時期は決定していません)。

このコンテンツはサードパーティのプロバイダーによってホストされており、Targeting Cookiesを使用することに同意しない限り動画の視聴が許可されません。これらのプロバイダーの動画の視聴を希望する場合は、Targeting Cookiesのクッキーの設定をオンにしてください。

新しい Input System は「使いやすさ」「すべての対応プラットフォームにわたる一貫性」「柔軟性」を念頭に置き、根本から再構築されています。ぜひこれをご試用になって、Unity 2020.1 との同時公開に先駆けて、フィードバックをお寄せください。本システムはバージョン 2019.1 以降の Unity であればご使用いただけます。

近年の新しい技術によって、媒体やコンテンツのプレイや消費の仕方が大きく変化しました。新しい技術の波のひとつひとつが、特定の制御要件を持つ各種の新しいデバイスを生み出します。

使いやすさ

新しい Input System のワークフローは「すべてのプラットフォームで機能する単純なインターフェースを」中心に据えた設計になっています。また、簡単に拡張してカスタムのデバイスや将来登場するデバイスに対応させることができます。

Action(アクション)を軸にしたワークフローは、ゲームコードが反応する論理的な入力とユーザーが行う物理的なアクションとを分離する形で設計されています。専用のエディター内(またはスクリプト内)で Action を定義し、それを抽象的な入力と具体的な入力の両方(例えば Device《デバイス》の主要なアクションとマウスの左ボタンなど)に結び付けることができます。

Action Maps for the Input System
Action Map を使用して、多数の Action を複数の Device や Control Scheme(制御スキーム)にわたって管理することができます。

Input System の PlayerInput コンポーネントを使用すると、入力アクションを特定のゲームオブジェクトに紐付け、アクションへの反応を記述することができます。これはゲーム内の何人のプレイヤーにでも使用できます。

Player Input UI
PlayerInput を使用して特定のプレイヤー用の入力を設定できます。

以下のスクリプトで、アクションが実行された時にコールバックを取得できます。

public void OnMove(InputValue value)
{
    m_Move = value.Get();
}

public void OnLook(InputValue value)
{
    m_Look = value.Get();
}

public void OnFire()
{
    SpawnProjectile();
}

この新しいシステムがサポートできるデバイスの数や種類に制限はありません。またデバイスの変更に関する通知も可能なので、ランタイムで新しいデバイスに適切に対応することができます。

コンソール向けの開発には追加パッケージのインストールが必要です。追加パッケージは、(通常 Unity インストーラーをご提供している)各コンソール専用フォーラムから取得していただけます。詳細は サポートされている Input Device(入力デバイス)のリストをご覧ください。

カスタマイズ

Input System は拡張可能な形で開発されており、API によって、新しいデバイスに対応したり独自の Interaction(インタラクション)Input Processor(入力プロセッサー)が設計できるだけでなく、カスタムの Binding(バインディング)セットアップの設計も可能になっています。また本パッケージは、内部構造を確認したい方のために完全なソースコードを含んでおり、GitHub 上で開発されています。

デフォルトのインタラクションの例です。独自のインタラクションも簡単に作成していただけます。

Input System の使用を開始する

バージョン 2019.1 以降の Unity でパッケージマネージャーを開き、Advanced メニューから「Show Preview Packages」を有効にしてください。「All Packages」のリストに「Input System 」が表示されます。詳細パネルの右上にある「Install」をクリックしてください。現行のバージョンは 1.0-preview です。現在 Unity では、本パッケージを Unity 2020.1 で検証済みにすべく取り組みを進めています。それ以降に、新しい機能を追加してゆく予定です。

「新しい Input System バックエンドを有効にする必要がある」という旨の警告メッセージが表示された場合は、「Yes(はい)」をクリックしてエディターを再起動すれば解決され、使用を開始していただける状態になります。

ご使用に際してはクイックスタートガイド(英語)をぜひご利用ください。また、パッケージマネージャーから各種サンプルのインストールも可能となっています。皆様のフィードバックを、ぜひフォーラムからお寄せください。また GitHub レポジトリにて開発状況もご確認いただけます。

2019年10月14日 カテゴリ: Engine & platform | 4 分 で読めます

Is this article helpful for you?

Thank you for your feedback!

取り上げているトピック