🛠️ UE5 · UMG · Blueprint
UE5ではじめての UMG — ボタンを押したらテキストが変わる(Blueprint)
コードを書かずにノード配線。Designer で UI、Graph で OnClicked、レベルから Viewport へ。
ゴールは「再生中に UMG 上のボタンを押すたび、ラベル文言が数え上がる」こと。 C++ や複雑な入力設定は扱わず、UMG の入口に集中します。
自己紹介
オープニング対談
🎁このレッスンのおみやげ(学べること)
- 🪟
Widget Blueprintの役割 - 🎨
Designer(ヒエラルキー) - 🔗
OnClicked - 🔢
Integerカウンタ変数 - 📺
Add to Viewport - 🧩
Level Blueprintから表示
このページは UMG + Blueprint(C++ なし) です。エディタのメニュー名やノード名称はバージョンで多少違うことがあるので、見当たらない場合は類似名を検索してください。
Unreal Engine 5.x を想定しています。
1👋導入 — いまからやること
Third Person など任意のテンプレートでプロジェクトを開き、 Widget Blueprint(UMG)を新規作成します。Designer でボタンとテキストを配置し、Graph で OnClicked からカウンタを増やして Set Text します。最後に Level Blueprint から Add to Viewport して表示します。
こんな人向け
2🎬流れをつかむ
下図は「Designer で UI 配置 → Graph でクリック処理 → レベルで Viewport に載せる → 再生」の流れです。
画面幅に応じて折り返します。横スクロールは不要です。
3🧰出てくるキーワード(カード)
UMG の「1画面分」の設計資産。Designer と Graph のセットで覚えます。
ボタンやテキストを Canvas 配下に並べるビジュアル編集。Hierarchy の名前が Graph 側の参照と一致します。
Button のクリック開始点。実行ピンを伸ばして処理の流れをつくります。
クリック回数など UI ローカルな状態の置き場所。Get / Set ノードで読み書きします。
Text 系ウィジェットの表示更新。Format Text や型変換と組み合わせることが多いです。
生成済み User Widget を画面スタックに載せる代表手段。所有プレイヤー指定に注意。
4🧱素材と Designer
Content Browser で右クリック → User Interface → Widget Blueprint を選び、名前を WBP_ClickCounter などにします。開いたら Designer を選択します。
- Palette から Canvas Panel をルートに(既定であればそのまま)
- Button を配置し、Hierarchy 名を
BtnClick、キャプションは「押す」など好きに - Text を配置し、名を
TxtStatus、初期文言は「ボタンを 0 回押しました!」など - レイアウト(アンカー・位置)はこのレッスンでは大まかで OK(まず動作優先)
5📎Graph(OnClicked とカウンタ)
Graph タブへ切り替え、左の Graph パネルから BtnClick を探して OnClicked をドラッグして配置します(またはコンポーネント一覧からイベントを追加)。
【WBP_ClickCounter · Event Graph のイメージ】
※ 実際は Blueprint エディタ上のノードでつなぎます。
① 変数 ClickCount(Integer, 既定 0)を用意
② BtnClick の OnClicked イベントを配置
③ 実行ピン: SET ClickCount = ClickCount + 1
④ TxtStatus を取得し、SetText(In Text)
· Format Text ノードなどで「ボタンを {0} 回押しました!」の {0} に ClickCount を渡す
· または Conv_IntToText → 文字列連結でも OK
⑤ Compile → Saveノード名は英語UIのままの場合が多いです。「Increment Int」や単純な「加算→Set」、Format Text など、手元のエンジンバージョンで検索しながら同じ結果になる配線を選んでください。
6🗺️レベル Blueprint で表示
メインレベルを開き、ツールバーから Blueprints → Open Level Blueprint を開きます。Event BeginPlay から Widget を生成して Viewport へ載せます。
【Level Blueprint · Event BeginPlay のイメージ】
Event BeginPlay
→ Create Widget(Class = WBP_ClickCounter, Owning Player = Get Player Controller)
→ Return Value を「Add to Viewport」へ
· ZOrder はこのレッスンでは既定のままで可
※ テンプレートやプロジェクト設定により、別の場所(PlayerController 等)から
Add to Viewport する構成もあります。まずはレベルから表示できればゴール達成です。ヒント
Create Widget の Class に、先ほどの WBP_ClickCounter を選びます。 Owning Player は Get Player Controller(Index 0)など、シングルプレイ想定のつなぎ方で大丈夫です。7✨動作確認
- Compile / Save を忘れずに。エラーが出たら Output Log とグラフを確認
- Play(PIE)でボタンをクリックし、テキストが更新されることを確認
- ウィジェットが二重に出る場合は、BeginPlay が複数回走っていないか・別経路でも Add していないかを確認
8🩹つまずきポイント
- クリックしても反応しない … Is Visible、入力モード(Set Input Mode UI Only / Game And UI)の影響、他 UI が被っていないか。
- Compile Error … ピンの型(Text と String 等)不一致。Set Text に渡す値の型を確認。
- 画面に何も出ない … Add to Viewport を呼んでいない、Class が None、別レベルを再生している等。
- Designer の名前と Graph が一致しない … Hierarchy の名前変更後、古い参照が残っていないか。
9🏆まとめ
- Widget Blueprint を作成し、Designer で Button / Text を配置した
- Graph で OnClicked からカウンタを更新し Set Text した
- Level Blueprint から Create Widget → Add to Viewport した
- UE5 の UI 入口(UMG)を掴んだ
10🚀次のステージへ
- PlayerController や GameMode から HUD を管理する構成へ移す
- 入力(Enhanced Input)と UI のフォーカスを組み合わせる
- Common UI やスタイル・アニメーション(Widget Animation)へ展開
- Unreal ロードマップで学習の順番を俯瞰する
COMIC MODEキャラ対談で復習
Viewport に載せる話。
🛠️理解チェック(3問)
選択してから「正解を見る」で確認しましょう。
クイズ
Q1. UMG の見た目を並べる画面は主にどれ?
クイズ
Q2. ボタン(UMG)のクリックで処理を始める典型的なイベントは?
クイズ
Q3. 画面に User Widget を載せる代表ノードは?