設計ガイドライン

CommonUI を統合し、プロジェクトで使用するためのガイドライン。

CommonUIUMG に追加された機能拡張で、把握しておく必要のある幅広いシステムとツールを備えています。このページでは、CommonUI の実装に関するベスト プラクティスを学習するうえで役立つ一連のガイドラインとよくある質問について説明します。

自分のプロジェクトに CommonUI は適しているか?

CommonUI は多くの役立つ機能を備えていますが、次の 2 つの主要なユース ケースを想定して作成されています。

  • 複雑なマルチレイヤー インターフェース。

  • クロスプラットフォームのサポート。

プロジェクトでこれらのどちらかのユース ケースを使用することを想定していない場合、CommonUI は必要ない可能性があります。これらのユース ケースに加えて、CommonUI を使用することで得られるメリットと、そのメリットが UI の作成とインタラクションのための新しいパラダイムの学習に費やす労力や時間に見合うものかどうかを検討することをお勧めします。

たとえば、PC 専用のリアルタイム戦略 (RTS) ゲームを設計する場合、CommonUI は適さない可能性があります。このタイプのゲームは、通常、複雑なカーディナル ナビゲーションが必要ない単一レイヤーの UI を使用するため、CommonUI の入力ルーティング システムや結合アクション システムを使用してもメリットが得られる見込みはありません。

また、CommonUI は、WidgetComponent を使用して配置されたウィジェットとの併用は推奨されません。CommonUI は、カーソルフォーカス ナビゲーション、アクティベーション順序、およびペイント順序/レイヤー ID に依存しているため、2D ゲームの HUD は処理できるものの、ゲームのワールドに配置されたウィジェットを処理することはできません。

CommonUI に移行する

既存の UI がある場合は、CommonUI への移行について検討する可能性があります。この判断を行う際には、UI がほぼ完成しているかどうか、CommonUI を使用することでメリットが得られる将来の UI 開発計画があるかどうかについて検討してください。

また、従来の UI で操作を行いながら、CommonUI を使用して新しいウィジェットを作成できるかどうか、または CommonUI に移行するために UI 全体をリフレッシュする必要があるかどうかも検討してください。

CommonActivatableWidget と CommonUserWidget のどちらを使用すべきか?

すべての CommonUI ウィジェットがアクティベート可能ウィジェットである必要はありません。ウィジェットは、オン/オフの切り替えで入力ルーティングに影響する必要のある場合にのみ、アクティベート可能ウィジェットにする必要があります。

作成するウィジェットが、そのウィジェット自体で入力を処理するために CommonUI の入力ルーティング システムとの相互作用を行う必要がある場合に限り、CommonUserWidget または通常のユーザー ウィジェットを作成することをご検討ください。CommonUserWidget は、UCommonButtonBaseUCommonTabListWidgetBase を含む、CommonUI の多くのクラスの基礎を形成します。ツールチップは、多くの場合、表示されてから、すぐに非表示になるため、子ウィジェットに入力を転送する必要がなく、UI のその他の部分から入力を取得する必要がありません。そのためツールチップは、アクティベート可能ウィジェットを使用することでかえって生産性が低下するケースの一例です。

作成するウィジェットに複数のインタラクション可能な子が含まれているか、UI の他の部分からの入力処理をブロックする必要がある場合は、アクティベート可能ウィジェットを使用することが推奨されます。ポップアップ ウィンドウやモーダル メニューは、このようなビヘイビアの好例です。

キーボードとマウスの同時ナビゲーションをどのように処理するか?

CommonUI は、従来のマウスとキーボードによるナビゲーションだけでなく、ゲームパッドによるナビゲーションも簡単にサポートすることができます。一般的な問題点は、キーボードとマウスの 同時 ナビゲーションをサポートする必要がある場合です。Common UI は、マウスで操作しながら、同時に、キーボードがゲームパッドであるかのうように動作するナビゲーションには対応 していません。CommonUI。

この特定のナビゲーション入力の組み合わせに関しては、マウスを自由に操作することができ、キーボードとは別に独自のホバー/フォーカスがある場合、キーボードが現在マウスを乗せていないか、フォーカスしていない要素に移動するとどのような処理が実行されるかについて検討してください。この場合、1 人のプレイヤーが 2 つの個別の要素にカーソルを乗せている状態で UI が表示されます。この状態は、視覚的に混乱するだけでなく、ゲーム内のすべての UI でこの状態をサポートするのは困難です。

CommonUI は、キーボードとマウスの同時ナビゲーションを直接サポートしていませんが、キーボード ナビゲーションで正しく動作する特殊なウィジェットを作成することを妨げることはありません。同様に、マウス ナビゲーションの使用とナビゲーション用のゲームパッドとしてのキーボードの使用を切り替え ても、1 つのウィジェットが常時フォーカスされるように維持されるため、設計上問題はありません。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル