(UE4)Widgetをレベル内に配置する方法
*概要
作成したWidget(UMG)を、ビューポートではなくレベル内にオブジェクトとして配置する方法
*作業環境
UE:4.26.1
OS:Windows10
UMG、Widgetとは
・UMG(Unreal Motion Graphics)
例えば、ゲームのタイトル画面やスコア、アイテムのインベントリ等、情報や制御の選択を行うためのUIを作成できるツールがUMGです。
テキストだけでなく画像を読み込んで使うこともできるので、用途に応じて様々な形式を作成することができます。
・Widget
UMGで作られたUIのことを云います。
基本的には、ビューポート全体に表示して使うものですが、
今回はWidget自体をレベル内の空間に配置してみたいと思います。
手順①_Widgetの作成
レベル内に配置する用のWidgetを用意しましょう。
作成手順は通常通りです。
コンテンツブラウザから右クリックでUser Interface>Widget Blueprintを選びます。
*Widgetを作る際、パネルのアンカーをセンターに設定しておきましょう
例として、imageとtextパネルを使ってこの様なものを作りました。
名前は"MyWidget"とします。
今回は、このWidgetをレベル内に配置させます。
手順②_Widgetコンポーネントの作成
コンポーネントとは
一つのアクターの中にサブオブジェクトとして追加できる機能です。
コンポーネントは単体では存在できませんが、既存のアクターに設定されたオブジェクトと共存することができ、アクターがコンポーネントの機能にアクセスすることも可能です。
この機能を使い、Widgetの実行結果を別のアクター内で表示させます。
まずは新規アクターを作りましょう。
こちらも通常通り、右クリックでBlueprint Class>Actorを選んで開きます。
画面左側にComponentsというタブがあります。
予めDefaultSceneRootというコンポーネントが入ってますが、
この下に新しいものを追加します。
Add Componentをクリックして、Widgetコンポーネントを検索して選びましょう。
Widgetコンポーネントが追加されました。
ですが、このままではまだ何も表示されません。
このコンポーネントに、先ほど作ったMyWidgetを設定する必要があります。
WidgetコンポーネントのDetailsにUser Interfaceという項目があります。
その中のWidget Classから作成したMyWidgetを選択し、
Draw at Desired Sizeにチェックを入れてください。
これで、ビューポートに作成したWidgetが表示されました。
*この時、Widget内のパネルのアンカーがセンターに無いと、変な位置にずれてしまいます。
それでは、このアクターをレベルに置いてみましょう。
レベル上で、Widgetがオブジェクトとして配置できました。
まとめ
・コンポーネントに追加されたオブジェクトは、サブオブジェクトとして固有の機能を待つ
・コンポーネントを追加する事でアクターから機能を制御する事もできる。
参考:(公式ドキュメント)Widgetコンポーネント
[UE4]Widget Interactionコンポーネントを使ってVRで触れるUIを制作してみる!
Discussion