ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
この記事の要点
- Blueprint のキーイベントは Event Graph で右クリック → 検索ボックスにキー名を入力
- 簡易:
Keyboard Eventsカテゴリの Pressed / Released ピンを持つノード - 正式: Input Action を定義し、PlayerController が紐付ける構成 (再マッピング容易)
- UE 5.1+ は Enhanced Input が推奨。Input Mapping Context + Triggered/Started/Completed
- キャラクター BP で受け取るには
Auto Possess PlayerをPlayer 0に設定
1Unreal Engine Blueprint でキー入力を受ける
Unreal Engine の Blueprint でキー入力イベントを受ける方法は、大きく分けて以下の 3 つです。
| 方式 | 難易度 | 用途 | UE バージョン |
|---|---|---|---|
| 直接キーイベント (Keyboard Events) | ★ 最も簡単 | プロトタイプ・デバッグ | 全バージョン |
| Input Action (旧 Input System) | ★★ | 本番ゲーム (キー再マッピング前提) | UE 4.x / 5.0 |
| Enhanced Input | ★★★ | 本番ゲーム (近代的) | UE 5.1+ 推奨 |
2方法1: 直接キーイベント (最も簡単)
- Character や Actor の Blueprint を開き、Event Graph に移動
- 空きスペースで右クリック
- 検索ボックスに
FやSpace Barなど、キー名を入力 - 「Keyboard Events」カテゴリのノードを選択
- 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 を設定
- キーを直接ハードコードするので、ユーザがキー再マッピングできない
3方法2: Input Action (旧 Input システム)
キーを抽象化した「アクション名」で扱うため、後からキー変更が容易。UE 4.x / 5.0 の標準。
ステップ 1: Project Settings で Input Action を定義
- Edit → Project Settings → Engine → Input
- 「Action Mappings」の「+」ボタンで追加
- Name に
Jump、Key に Space Bar を割り当て - 同じ名前に複数キーを追加可能 (Space Bar とゲームパッドの A ボタン両方など)
ステップ 2: Blueprint でイベントを受け取る
- Character BP の Event Graph で右クリック
- 「Input Action Jump」で検索
- 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) を提供します。
4方法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_*) | キー割当ての集合。状況 (歩行中 / 車中 / メニュー中) ごとに切り替え可 |
| Trigger | Pressed / Held / Released / Tap / Hold など |
| Modifier | 値の変換 (デッドゾーン / 軸反転 / 感度) |
セットアップ手順
- Content Browser で右クリック → Input → Input Action を作成 (
IA_Jump)。Value Type を Digital (bool) に - 同様に Input Mapping Context を作成 (
IMC_Default) - IMC_Default を開き、「+」で IA_Jump を追加 → Space Bar を割り当て
- Character BP の
BeginPlayで、PlayerController の Enhanced Input Local Player Subsystem に IMC_Default を追加 - 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 | 入力が有効な間 (毎フレーム発火) |
| Ongoing | Triggered になっていない継続入力 |
| Completed | 入力が終了した瞬間 (Released) |
| Canceled | 入力が途中でキャンセル |
| Hold | 指定時間長押し |
| Tap | 指定時間以内に押して離した |
| Pulse | 一定間隔で繰り返し発火 |
| Chorded Action | 別アクションが押されている時のみ |
5UI / 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)
6キーのデバッグ表示
[F Key Event]
Pressed ──→ Print String
In String = "F pressed!"
Text Color = Red
Duration = 2.0
# またはコンソールで確認
~ (チルダ) でコンソールを開いて:
showdebug input
7FAQ
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 を案内しています。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ブループリントで途中から親クラスを指定する方法
- C++で編集となっているコンポーネントをブループリントで編集する方法
- Boolean変数の初期値を変更する方法
- ブループリントで特定のキーが押された時にイベントを発火させる方法
- ブループリントで配列からインデックスを指定して取得する方法
- Blueprintで「Esc」キーを使ってイベントを発生させる方法
- Blueprintで「Cast To」を使い、複数のクラスに対応する方法
- Blueprintで指定した確率で処理を分岐させる方法
- FrameGrabberをBlueprintで使用する方法
- ブループリントで現在日時を取得する方法
- Enhanced Input とは?Input Action と Input Mapping Context の基本
- Enhanced Input でキー入力を受け取る手順
- 旧 Input Mappings から Enhanced Input へ移行する方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 Spring Frameworkのアノテーション一覧
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- PHP $_SERVERとは|DOCUMENT_ROOT・PHP_SELFなど主な要素 2026-08-07 17:15:57
- PHPでのファイルアップロード方法|multipart/form-dataと$_FILES 2026-08-07 17:15:57
- Scratchのアカウントの作り方|メールアドレスとユーザー名の登録手順 2026-08-07 17:15:57
- Bluetoothとは|仕組み・BLEとClassicの違い・用途 2026-08-07 17:15:57
- Spring Bootのテスト入門|@SpringBootTestとJUnitでの単体・結合テスト 2026-08-07 17:15:57
- djangoにおけるMVCアプリケーション実装例 2026-08-07 17:15:57
- Scratch 作品の公開方法 2026-08-07 17:15:56
- 【PHPフレームワーク】Laravelの使い方 2026-08-07 17:15:56
- Google OAuth 2.0 認証の実装方法 2026-08-07 17:15:56
- APIキー取得方法 2026-08-07 17:15:56
- インストール方法(Windows版) 2026-08-07 17:15:56
- Java とは?言語仕様・JVM・主要フレームワーク一覧 2026-08-07 17:15:56
- データベースとは?RDB / NoSQL / SQL の基礎 2026-08-07 17:15:56
- インストール(eclipseプラグイン) 2026-08-07 17:15:56
- Spring Frameworkの使い方 2026-08-07 17:15:56
コメントを削除してもよろしいでしょうか?