本文へスキップ
🎮

🛠️ UE5 · UMG · Blueprint

UE5ではじめての UMG — ボタンを押したらテキストが変わる(Blueprint)

コードを書かずにノード配線。Designer で UI、Graph で OnClicked、レベルから Viewport へ。

ゴールは「再生中に UMG 上のボタンを押すたび、ラベル文言が数え上がる」こと。 C++ や複雑な入力設定は扱わず、UMG の入口に集中します。

自己紹介

ココ先生(講師)・喜ぶ
ココ先生やさしい講師
Unreal は Designer / Graph の行き来が最初のカギです。「配置した名前」と「Graph で参照するコンポーネント」がそろっているか、いつも確認しましょう。
はじめちゃん(学習者)・笑う
はじめちゃんUE5 はじめたて
Blueprint の線が楽しい反面、どこにつないでいいか迷子になりがちです。ボタンだけ先に友だちにしたい!

オープニング対談

ココ先生(講師)・楽しむ
ココ先生UMG も発想は同じ。ボタンに『押されたよ』という出口(OnClicked)があって、そこから先をノードでつなぐだけ!
はじめちゃん(学習者)・驚く
はじめちゃんCreate Widget と Add to Viewport、ペアで覚えるんですね…!
ココ先生(講師)・喜ぶ
ココ先生うん。『作る』→『画面に載せる』の二段構え。慣れたら GameMode や PlayerController 側に移す選択もできるよ ✨

🎁このレッスンのおみやげ(学べること)

  • 🪟 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 して表示します。

こんな人向け

ビューポートでオブジェクトは触ったことがあるが UMG は初めて、という方。読むだけ 10 分、配置と Blueprint までで 20〜30 分目安です。

2🎬流れをつかむ

下図は「Designer で UI 配置 → Graph でクリック処理 → レベルで Viewport に載せる → 再生」の流れです。

Designer、Event Graph、Level Blueprint、PIE の流れ図
ノードの細部より『データが回る順番』を意識すると組み立てやすいです
WBP 作成User Widget
DesignerBtn + Text
OnClickedGraph
CounterInt 変数
Set TextFormat
ViewportLevel BP

画面幅に応じて折り返します。横スクロールは不要です。

3🧰出てくるキーワード(カード)

🪟
Widget Blueprint

UMG の「1画面分」の設計資産。DesignerGraph のセットで覚えます。

🎨
Designer

ボタンやテキストを Canvas 配下に並べるビジュアル編集。Hierarchy の名前が Graph 側の参照と一致します。

🔗
OnClicked

Button のクリック開始点。実行ピンを伸ばして処理の流れをつくります。

🔢
変数(Integer)

クリック回数など UI ローカルな状態の置き場所。Get / Set ノードで読み書きします。

📝
Set Text

Text 系ウィジェットの表示更新。Format Text や型変換と組み合わせることが多いです。

📺
Add to Viewport

生成済み User Widget を画面スタックに載せる代表手段。所有プレイヤー指定に注意。

4🧱素材と Designer

Content Browser で右クリック → User Interface → Widget Blueprint を選び、名前を WBP_ClickCounter などにします。開いたら Designer を選択します。

Canvas の下に Button と Text がある Hierarchy の例
BtnClick / TxtStatus など、あとで Graph で触る名前を先に決める
  1. Palette から Canvas Panel をルートに(既定であればそのまま)
  2. Button を配置し、Hierarchy 名を BtnClick、キャプションは「押す」など好きに
  3. Text を配置し、名を TxtStatus、初期文言は「ボタンを 0 回押しました!」など
  4. レイアウト(アンカー・位置)はこのレッスンでは大まかで OK(まず動作優先)

5📎Graph(OnClicked とカウンタ)

Graph タブへ切り替え、左の Graph パネルから BtnClick を探して OnClicked をドラッグして配置します(またはコンポーネント一覧からイベントを追加)。

WBP_ClickCounter(概念メモ)
text
【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(概念メモ)
text
【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 WidgetClass に、先ほどの WBP_ClickCounter を選びます。 Owning PlayerGet 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 に載せる話。

はじめちゃん(学習者)・混乱
はじめちゃんWidget は作ったのに画面に出ず… Level Blueprint 忘れてました(泣)
ココ先生(講師)・笑う
ココ先生あるある!『生成』と『表示』はペアって覚えると抜けにくいよ。あとで GameMode 側に寄せる選択もあるよ。
はじめちゃん(学習者)・喜ぶ
はじめちゃんOnClicked から先は、ほんとに数节点だけでした。次は見た目を整えます!
ココ先生(講師)・楽しむ
ココ先生うん。アンカーとサイズ感までやると一気にゲームっぽくなる。まずは動く基盤お疲れさま 🎉

🛠️理解チェック(3問)

選択してから「正解を見る」で確認しましょう。

1

クイズ

Q1. UMG の見た目を並べる画面は主にどれ?

2

クイズ

Q2. ボタン(UMG)のクリックで処理を始める典型的なイベントは?

3

クイズ

Q3. 画面に User Widget を載せる代表ノードは?