3.

UE5でBoolean変数の初期値を変更|Default ValueとCompileの注意

編集
この記事の要点
  • Boolean 変数は true / false の 2 値を持つ。フラグ管理や条件分岐の基本データ型
  • 初期値は変数を選択 → 詳細パネルの Default Value でチェックを切り替える
  • 初期値欄が 編集できない場合はツールバーの Compile を 1 回押す(コンパイル後に表示される)
  • 実行時の値変更は Set ノード、判定は Branch ノードを使う
  • インスタンスごとに別の初期値を持たせたいときは Instance Editable を ON にする

Boolean 変数とは

Boolean(ブール)型は true(真)/ false(偽)の 2 値だけを持つデータ型です。UE5 のブループリントでは、赤いピンチェックボックスのアイコンで表現されます。プレイヤーが鍵を持っているか、扉が開いているか、敵が見えているか、などのフラグ管理に多用します。

初期値(Default Value)を変更する手順

1. ブループリントを開く

コンテンツブラウザから対象のブループリント(例: BP_PlayerCharacter)をダブルクリックして開きます。

2. 変数を作る or 既存変数を選ぶ

マイブループリントパネルの Variables 欄で を押し、新しい変数を作成します。すでに変数がある場合はその変数をクリックして選択します。

3. 変数の型を Boolean に設定

右の詳細パネル(Details)の Variable Type ドロップダウンから Boolean を選びます。

4. ツールバーの Compile を押す

ここが UE5 初学者がつまずく最重要ポイントです。初期値の入力欄は変数を作っただけでは表示されません。必ず一度ツールバー左上の Compile ボタンを押します。コンパイル後に詳細パネルの最下部に Default Value セクションが出現します。

5. Default Value のチェックを切り替え

詳細パネルの Default Value → 変数名のチェックボックスをクリックして true / false を切り替え、再度 CompileSave で確定します。

初期値が表示されないときのチェックリスト

症状原因 / 対処
Default Value 欄がないCompile を押していない。ツールバー左の Compile をクリック
Default Value がグレーアウト変数の Category が Component として認識されている。型と参照先を確認
レベル配置済みのアクタで反映されないレベルに配置済みのインスタンスは別途編集が必要。インスタンスを選択して詳細パネルから上書き、または右クリック → Reset to Default

インスタンスごとに別の値を設定したい場合

同じブループリントから複数のアクタをレベルに配置し、それぞれに異なる初期値を持たせたいときは Instance Editable を ON にします。

  1. 変数を選択して詳細パネルを開く
  2. Variable セクション → Instance Editable のチェックを ON
  3. 同じ流れで Expose on Spawn を ON にすると SpawnActor ノードのピンとしても露出する
  4. レベルに配置したインスタンスを選択すると、詳細パネルにその変数欄が出るので個別に設定

実行時に値を変更する ─ Set ノード

ゲーム進行中に値を更新したいときは、イベントグラフ上で変数をドラッグ&ドロップして Set を選びます。

ノード役割
Get現在の値を取り出す(青いピンから出力)
Set新しい値を書き込む。チェックボックスで true / false を指定
Toggle(NOT Boolean → Set)現在の値を反転して書き戻す。鍵の開け閉めなどに便利

値で分岐する ─ Branch ノード

Boolean 変数の値で処理を分けるには Branch ノードを使います。if 文に相当します。

  1. イベントグラフを右クリック → 検索欄に Branch と入力して追加
  2. Condition ピンに Boolean 変数(Get)を繋ぐ
  3. True / False それぞれに処理を繋ぐ

命名のベストプラクティス

命名例意味
bIsAlive生きているか(先頭 b + 形容詞)
bHasKey鍵を持っているか
bCanJumpジャンプ可能か
bIsVisible表示中か

UE5(および C++ 側)では Boolean に 先頭 b を付ける命名規約が慣習です。

クラスのデフォルト値とインスタンスの上書き

UE5 の変数値には3 段階の階層があります。これを理解しておくと「なぜ値が戻る / 戻らない」が一発で分かります。

階層編集場所影響範囲
クラスのデフォルト値ブループリントエディタ → Default Valueそのブループリントから生成される全インスタンスの初期値
インスタンスの上書き値レベルに配置済みアクタを選択 → 詳細パネルそのインスタンスのみ。クラスデフォルトより優先
実行時の値Set ノードで変更ゲーム実行中のみ。終了でリセット

レベル配置済みアクタの値を「クラスデフォルトに戻したい」ときは、詳細パネルでその変数を右クリック → Reset to Defaultを選びます。逆に「インスタンスごとの違いを無視して全部統一したい」ときは、各インスタンスでこの Reset を実行してからクラスデフォルトを編集します。

サンプル ─ 鍵フラグを使う扉

変数: bHasKey  Boolean  Default=false   [Instance Editable: ON]

Event: OnOverlapBegin (扉のコリジョン)
    ↓
Branch  Condition = bHasKey
    True  →  Open Door (扉の Mesh を Rotate)
    False →  Print String "鍵が必要です"

Event: OnKeyPickup (鍵のアイテム)
    ↓
Set bHasKey = true

上記の構成では、扉アクタの bHasKey をクラスデフォルトで false にしておき、レベル配置時に「最初から開いている扉」だけインスタンス側で true に上書きできます。ゲーム実行中は鍵を拾った瞬間に Set ノードで true になります。

NOT ノードと AND/OR の組み合わせ

Boolean を条件式で扱うときに必須なのが論理演算ノード群です。検索欄で次の語を入力すると追加できます。

ノード名役割
NOT Booleantrue / false を反転bIsDead の NOT で「生きている」を判定
AND Boolean両方 true のときのみ truebHasKey AND bIsNearDoor
OR Booleanどちらかが true で truebIsAdmin OR bIsOwner
Equal Boolean2 つの Boolean が等しいか同期チェック

AND / OR ノードはピン横の ボタンで入力ピンを 3 個以上に増やせます。条件が多いときに Branch を何段も繋ぐより、AND ノードで集約してから 1 個の Branch に渡す方が見通しが良くなります。

関連

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ブループリントで途中から親クラスを指定する方法
  2. C++で編集となっているコンポーネントをブループリントで編集する方法
  3. Boolean変数の初期値を変更する方法
  4. ブループリントで特定のキーが押された時にイベントを発火させる方法
  5. ブループリントで配列からインデックスを指定して取得する方法
  6. Blueprintで「Esc」キーを使ってイベントを発生させる方法
  7. Blueprintで「Cast To」を使い、複数のクラスに対応する方法
  8. Blueprintで指定した確率で処理を分岐させる方法
  9. FrameGrabberをBlueprintで使用する方法
  10. ブループリントで現在日時を取得する方法

最近更新/作成されたページ