【Unreal Engine5】ブループリントノードを分かりやすく覚える【初心者向け】【Blueprint】

    • このページは定期的に更新・追加を行います。(最終更新: 2025/02/11)
    • 分かりやすくするため、数学や実際の定義と若干異なるこのページ独自の定義や使い分けも交えます。
    • ノードの分類は独自のものなので注意してください。

    前提となる定義や使い分け

    • ベクトル 複数の数字の集まりのこと。2DベクトルはXとYの2つの数値で、3DベクトルはXとYとZの3つの数値で表される。「数値を使って方向を表せる」のは正しいが、「ベクトル=方向」だと考えてしまうと混乱の原因になるので注意。
    • 実行 赤いノードを起点として、順番に起動していく三角形のピン(実行ピン)が起こす流れのこと。左のノードによって「実行され」、右のノードを「実行する」。
    • 入力と出力 数字や文字など、データの受け渡しのみを行う丸いピン(データピン)が起こす流れのこと。左のデータピンを通じて「入力」され、右のデータピンに「出力」する。
    • 有効と無効 変数の値が正常に存在しているかどうか。使用できない値だったり、空な場合、そもそも存在しない場合は無効と判断される。
    • クラス 設計図のようなもの。コンテンツブラウザに入っており、レベル(マップ)に配置することでインスタンス(実体)を無限に製造することができる。
    • インスタンス 設計図(クラス)を元に作られたレベル(マップ)上の実体のこと。設計図を元に作られた製品のようなものであり、一旦作られてしまえば個々の性質(置かれている場所や能力など)は自由に変更することができる。

    ピン解説

    • Delta Seconds 1フレームにかかる秒数のこと。Event Tickの場合、Delta Secondsと値Aをかけることで、値Aを1秒ごとに出力することができる。

    ノード解説

    Event系

    • Event Begin Play そのブループリントが生まれた時に実行される。
    • Event Tick 1フレームごとに実行される。

    Get(参照)系

    • Get Actor Location 「Target(Actor型)」に入力された値から位置を取得し、「Return Value(ベクトル)」に出力する。
    • Get Actor Forward Vector 「Target(Actor型)」に入力された値から前方の向きを取得し、「Return Value(ベクトル)」に出力する。

    分岐系

    • Branch 「Condition(Bool型)」に入力された条件(値)が「満たしている(True)」ならTrueを、「満たしていない(False)」ならばFalseを実行する。
    • ? Is Valid 「Input Object」に入力された値が有効ならば「Is Valid」を、無効ならば「Is not Valid」を実行する。

    キャスト(呼び出し)系

    キャストの構造は一つしかないのでまとめて解説する。
    Unreal Engineでは、Aというクラスがあった時、

    1, クラスAに機能を追加してクラスAの機能を受け継いだ(継承した)クラスBを作り
    2, クラスBに機能を追加してクラスAとBの機能を受け継いだクラスCを作る

    という感じで、親となるクラスを元に機能を追加することで、
    さまざまな機能を持つアクターやコンポーネントが実装されている。
    ※詳しくはオブジェクト指向を参照

    これによって生物の分類のような階層構造が出来上がる。
    例えば「」というクラスがあったとしたら、
    空を飛ぶ」機能を追加した「カラス」クラスと、
    泳ぐ」機能を追加した「ペンギン」クラスを作ることで、
    」クラスは2つの異なる子を持つことになるといった具合である。

    ここでUE側に対し、「鳥」型の出力ピンに「カラス」インスタンスを参照し、カラス独自の機能である「空を飛ぶ」を使ってほしいとお願いしたらどうなるだろうか。

    私たち人間からしてみれば参照に設定したインスタンスがカラスであることは当たり前に分かるが、それは私たちがクラス名や階層構造を画面から読み取って理解しただけであって、機械であるUEにとっては「鳥」であること以外は何も確定していない状況なのである。

    これは「鳥」に対して「空を飛べ」という命令を下すようなものなので、機械側は「いやいや、ペンギンだったら空を飛べないじゃん」と混乱してしまい、命令を実行できないのだ。

    ということでその「鳥」が「カラス」だということを確認し、次のノードで改めて「カラス」に対して空を飛べという命令を下す必要がある。
    「鳥」を入力することでその確認と「カラス」の出力を行うことができるのが、キャストノードなのである。(文章にするならば、「この鳥ってカラスだよね?(キャストノード)それに空を飛ばせて!(命令)」というようなものであり、前提となる認識を機械側と合わせる効果がある。)

    • Cast to A 入力された値がAのクラスに所属しているか確認し、存在するならば上の選択肢を、していなければ「Cast Failed」をそれぞれ実行する。