ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
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: 直接キーイベント (最も簡単)
- 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 を設定
- キーを直接ハードコードするので、ユーザがキー再マッピングできない
方法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) を提供します。
方法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 | 別アクションが押されている時のみ |
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 を案内しています。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?