この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:4
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: ブループリントで特定のキーが押された時にイベントを発火させる方法
SEOタイトル: Unreal Engine Blueprint キー入力イベント完全ガイド

この記事の要点
  • Blueprint のキーイベントは Event Graph で右クリック → 検索ボックスにキー名を入力
  • 簡易: Keyboard Events カテゴリの Pressed / Released ピンを持つノード
  • 正式: Input Action を定義し、PlayerController が紐付ける構成 (再マッピング容易)
  • UE 5.1+ は Enhanced Input が推奨。Input Mapping Context + Triggered/Started/Completed
  • キャラクター BP で受け取るには Auto Possess PlayerPlayer 0 に設定

Unreal Engine Blueprint でキー入力を受ける

Unreal Engine の Blueprint でキー入力イベントを受ける方法は、大きく分けて以下の 3 つです。

方式難易度用途UE バージョン
直接キーイベント (Keyboard Events)★ 最も簡単プロトタイプ・デバッグ全バージョン
Input Action (旧 Input System)★★本番ゲーム (キー再マッピング前提)UE 4.x / 5.0
Enhanced Input★★★本番ゲーム (近代的)UE 5.1+ 推奨

方法1: 直接キーイベント (最も簡単)

  1. Character や Actor の Blueprint を開き、Event Graph に移動
  2. 空きスペースで右クリック
  3. 検索ボックスに FSpace Bar など、キー名を入力
  4. 「Keyboard Events」カテゴリのノードを選択
  5. Pressed ピンから処理を繋ぐ

このノードは押された瞬間 (Pressed) と離した瞬間 (Released) で発火します。

[F Key Event]
    Pressed  ──→ Print String ("F pressed")
    Released ──→ Print String ("F released")
    Key      ←   F

注意点

  • このノードはキャラクター BP に置いて、Auto Possess Player を Player 0 にするか、Player Controller BP に置く必要があります
  • Pawn 系 BP の場合、Class Defaults で Auto Possess Player = Player 0 を設定
  • キーを直接ハードコードするので、ユーザがキー再マッピングできない

方法2: Input Action (旧 Input システム)

キーを抽象化した「アクション名」で扱うため、後からキー変更が容易。UE 4.x / 5.0 の標準。

ステップ 1: Project Settings で Input Action を定義

  1. Edit → Project Settings → Engine → Input
  2. 「Action Mappings」の「+」ボタンで追加
  3. Name に Jump、Key に Space Bar を割り当て
  4. 同じ名前に複数キーを追加可能 (Space Bar とゲームパッドの A ボタン両方など)

ステップ 2: Blueprint でイベントを受け取る

  1. Character BP の Event Graph で右クリック
  2. 「Input Action Jump」で検索
  3. Pressed / Released ピンに処理を繋ぐ
[InputAction Jump]
    Pressed  ──→ Jump (Character の組み込みノード)
    Released ──→ Stop Jumping

軸入力 (Axis Mapping)

移動やマウスのように連続値が欲しい場合は Axis Mappings:

  • MoveForward: W=1.0, S=-1.0
  • MoveRight: D=1.0, A=-1.0
  • Turn: マウス X 軸 = 1.0
  • LookUp: マウス Y 軸 = -1.0

Blueprint では InputAxis MoveForward ノードが毎フレーム呼ばれ、Axis Value (float) を提供します。

方法3: Enhanced Input (UE 5.1+ 推奨)

UE 5.1 以降はEnhanced Input が新しい標準。Input Action と Input Mapping Context を分離する近代的な設計です。

構成要素

要素役割
Input Action (IA_*)抽象アクション (Jump / Fire / Move)。値の型 (bool/float/Vector2D/Vector3D) を持つ
Input Mapping Context (IMC_*)キー割当ての集合。状況 (歩行中 / 車中 / メニュー中) ごとに切り替え可
TriggerPressed / Held / Released / Tap / Hold など
Modifier値の変換 (デッドゾーン / 軸反転 / 感度)

セットアップ手順

  1. Content Browser で右クリック → Input → Input Action を作成 (IA_Jump)。Value Type を Digital (bool) に
  2. 同様に Input Mapping Context を作成 (IMC_Default)
  3. IMC_Default を開き、「+」で IA_Jump を追加 → Space Bar を割り当て
  4. Character BP の BeginPlay で、PlayerController の Enhanced Input Local Player Subsystem に IMC_Default を追加
  5. Event Graph で右クリック → EnhancedInputAction IA_Jump を配置
[Event BeginPlay]
    ──→ [Get Player Controller]
    ──→ [Get Local Player]
    ──→ [Get Subsystem (EnhancedInputLocalPlayerSubsystem)]
    ──→ [Add Mapping Context]
           Mapping Context = IMC_Default
           Priority = 0

[EnhancedInputAction IA_Jump]
    Triggered ──→ Jump
    Started   ──→ (押した瞬間)
    Completed ──→ Stop Jumping (離した瞬間)
    Action Value (V) → bool

Trigger の種類

Trigger意味
Started入力が始まった瞬間 (Pressed)
Triggered入力が有効な間 (毎フレーム発火)
OngoingTriggered になっていない継続入力
Completed入力が終了した瞬間 (Released)
Canceled入力が途中でキャンセル
Hold指定時間長押し
Tap指定時間以内に押して離した
Pulse一定間隔で繰り返し発火
Chorded Action別アクションが押されている時のみ

UI / Widget でキー入力を受ける

UMG Widget の場合は通常のキーイベントが届きません。以下のいずれかが必要:

  • Widget の Class Defaults で IsFocusable = true
  • Construct 時に Set Input Mode UI Only + Set Keyboard Focus to This Widget
  • Widget BP の Event Graph で OnKeyDown をオーバーライド
[Event On Key Down]
    Key Event → Get Key →  is Equal to Escape ?
        ──→ Remove from Parent
        ──→ Handled (return)

キーのデバッグ表示

[F Key Event]
    Pressed ──→ Print String
                  In String = "F pressed!"
                  Text Color = Red
                  Duration = 2.0

# またはコンソールで確認
~ (チルダ) でコンソールを開いて:
showdebug input

FAQ

Q: キーを押してもイベントが発火しない
A: ① Auto Possess Player が設定されていない → Pawn BP の Class Defaults で Player 0 に。 ② Player Controller がそのキャラを所有していない。 ③ Enhanced Input なら IMC を Subsystem に Add していない。

Q: Escape キーが反応しない
A: PIE (Play in Editor) では Escape がエディタの停止に使われるため、ゲーム側に届きません。Standalone Game で起動するか、別キーで検証。

Q: 旧 Input Action と Enhanced Input、どちらを使うべき?
A: UE 5.1 以降は Enhanced Input 推奨。コンテキスト切替・トリガ抽象化が強力で、Epic 公式も新規プロジェクトは Enhanced Input を案内しています。