2.0 Blueprintとは

  1. ノードベースで組むプログラム
  2. UnrealEngineではC++やPythonなど使用できる言語があり、その中の一つ
  3. 基本的には機能のがついたアクタを作りたいときに使用されます
  4. 操作キャラクター、敵キャラクターのAI、動く床、メニュー画面など
    レベルの操作をするレベルブループリントなど種類が存在します
  5. Blueprintはコンポーネントと呼ばれる部品の集合体で出来ていて、コンポーネントでアクタを構築します
  6. 例: カメラアクタ > カメラコンポーネント
    例: スタティックメッシュアクタ > スタティックメッシュコンポーネント
  7. ※ BlueprintはC++より出来ることがすくなく、処理速度が遅いので本格的に何かを作成する場合はC++と併用するのが好ましいです
  8. ※ C++を使用すれば出来ることは広がりますが、Blueprintだけでもゲーム制作は可能です

2.1 BPの作成

  1. 下記の手順でBPの作成をします
  2. ※ 親クラスの説明はここではしません
  3.  コンテンツフォルダ選択 > 右クリック > ブループリントクラス
    BP作成
  4.  Actor
    親クラスの選択

2.2 BPEditorのUI説明

  1. ノードベースで組むプログラム
  2. UnrealEngineではC++やPythonなど使用できる言語があり、その中の一つ
  3. ウィンドウ説明
    1. メインツールバー
    2. セーブやコンパイルなどのショートカットやここからもゲームのプレイができます
    3. コンポーネント / Components
    4. コンポーネントとの一覧
      追加のボタンからコンポーネントの追加ができます
    5. マイブループリント / My Blueprint
    6. 変数(プロパティ)や関数を管理する場所です
    7. ウィンドウ選択
    8. ビューポート、ConstructionScript、EventGraphのウィンドウを切り替えます
    9. メインウィンドウ(グラフ)
    10. ビューポートの場合はBPの見た目を確認できます
      ConstructionScript、EventGraphの場合ノードの作成が作成できます
    11. 詳細 / Details
    12. ウィンドウ説明の詳細パネルを同じようなものです
      ですが、ここでは詳細パネルに表示される変数の初期値などを指定できます
    13. コンパイル結果 / Compile Results
    14. BPをコンパイルした際のエラーなどがここに表示されます

2.3 ConstructionScriptとEventGraph

  1. EventGraphとConstructionScriptがありどちらもノードを組んでプログラムを作成します
  2. EventGraph
  3. 実行(Play)しないと実行されない
    また、EventGraphの主なイベントは下記になります
    1. Event BeginPlay
    2. プレイ時に一回だけ呼ばれる
    3. Event Tick
    4. 毎フレーム呼ばれる
  4. ConstructionScript
  5. 非実行時(Play時ではない)時でも実行される
    実行されるタイミングは基本的に下記になります
    1. アクタがレベルにスポーンされたとき
    2. Instanceが生成される為
    3. BlueprintClassをコンパイルしたとき
    4. コンパイルするとレベルに置いてあるアクタは再度Instanceが生成される為(作り直しがされる)
    5. ビューポート上でアクタや紐づくコンポーネントの変数などが変更されたとき
    6. その為、アクタを移動させたときも毎回実行されます
    7. レベルを開いたとき
    8. レベルを開いたときに全アクタのinstanceが生成される為です
      サブレベルの場合でも同様に呼ばれます

2.4 BPEditorの操作方法

  1. 基本操作
  2. ノード検索: 右クリック
    画面移動: 右クリック + マウス移動
    画面拡縮: マウスホイール
    ノード選択: ノードに対して右クリック
    ノード移動: ノード選択したままマウス移動
    ノード複数選択: 右クリック長押し + マウス移動
    ノード削除: del
    ノードを繋いだまま削除: Shift + del
    コンパイル: F7
    検索: Ctrl + F
  3. ノードを出すショートカット
  4. コメント: C
    Delay: D + 左クリック
    Sequence: S + 左クリック
    Branch: B + 左クリック
    MultiGate: M + 左クリック
    BginPlay: P + 左クリック
    レベルで選択しているリファレンス: R + 左クリック
  5. 変数
  6. Getノード: Ctrl + ドラック
    Setノード: Alt + ドラック

2.5 Print文を使う

  1. Printノードを使用して「Hello」をPrintしてみます
  2. 右クリックを押し、検索ウィンドウを表示して「print」を入力します
  3.  右クリック > print > Print String
  4. 下記のように「Event Tick」に白いノードを繋ぎます
  5. F7か上のコンパイルボタンを押してコンパイルをします
  6. ※ BPはコンパイルしないと動きません
  7. コンパイル方法
  8. 「NewBlueprint」をレベルにドラックしてスポーンしてから、プレイを押します
  9. 毎フレーム「Hello」と表示とされれば成功です
  10. 起動確認
  11. POINT
  12. アウトプットログからも確認が出来ます
  13. アウトプットログからも確認

2.6 変数と演算子

  1. 変数の作り方
  2.  「変数」横の「+」ボタンを選択
    変数の追加
     どちらかの場所を選択して、型を選択
    型の選択
  3. 変数の出し方(ゲッタ、セッタ)
  4.  コンポーネント欄の変数一覧からメインウィンドウにドラック
    変数の出し方(ゲッタ、セッタ)
  5. ※下記の方法でもノードを出せます
    Getノード : Ctrl + ドラック
    Setノード : Alt + ドラック
  6. 演算子の出し方
  7. 演算子ノードは下記のように出せます
  8. Add: +
    Subtract: -
    Multiply: *
    Divide: /
  9.  右クリック > 使いたい演算子
    変数の使い方
  10. 変数と演算子を使う
  11. 毎フレーム1足されて、変数に格納して表示する処理を作ります
  12.  画像のように毎フレーム足されて表示されれば成功です
    変数の使い方
    1. Integer型の変数を作成します
    2. で作成した変数のGetノードを出します
    3. 「+」の演算ノードを出します
    4. のGetノードとの演算ノードを繋ぎます
    5. で作成したセットノードを出します
    6. の演算ノードの出力ピンをのセットノードに繋ぎます
    7. PrintStringノードを出します
    8. のGetノードをPrintStringに繋ぎます
  13.  正解ノードサンプル(コピー出来ます)
  14. 条件式
  15. 条件式が書けないと出来ることが少なくなってしまいます
  16. Boolなどに関しては、ANDやOR、XORなどが使用出来ます
  17. 様々な条件式

2.7 関数とマクロ

  1. 作成方法など詳しくは説明しませんが、挙動だけ説明します
  2. 関数
  3. 個別にコンパイルされ、利用時には呼び出す処理だけになる(個別にコンパイルされるため実行が早い)
    1. オーバーライドできる
    2. 複数の実行ピンを使うことができない
    3. ローカル変数が使える
    4. 実行ピンが必ず必要
    5. LatentノードやDelayノードなど一部ノードが使えない
  4. マクロ
  5. ノードを折りたたんでまとめている(コンパイル時にグラフへコピー&ペーストされるため実行が遅い)
    1. オーバーライドできない
    2. 複数の実行ピンを使うことができる
    3. ローカル変数が使えない
    4. 実行ピンがなくても可(計算だけさせる場合に有効)
    5. どんなノードでも使える

Ex ノード整理

  1. ノードを綺麗に見せるノードやショートカットです
  2. Rerouteノード
  3. ノードをダブルクリックなどで使えます
  4.  例1
    例1
     例2
    例2
  5. 整列ショートカット
  6. 真っ直ぐにする: ノード選択 + Q
    上揃え: ノード選択 + Shift + W
    中揃え: ノード選択 + Alt + Shift + W
    下揃え: ノード選択 + Shift + S
    左揃え: ノード選択 + Shift + A
    中央揃え: ノード選択 + Alt + Shift + S
    右揃え: ノード選択 + Shift + D
  7. コメント
  8. Cキーで使え、色なども変えることが出来ます

Ex よく使う便利ノード

  1. 絶対必要になるノードです
  2. Branchノード
  3. 別言語でいう「if文」です
  4. Sequenceノード
  5. Then0 から順に処理を実行します
    「Add pin」ボタンで無限に追加出来ます
  6. DoOnceノード
  7. 最初の一回だけ処理され、2回目以降は何もしません
    「Reset」に処理を流すと、再度一回だけ処理されます
  8. ForEachLoopノード
  9. C#の「foreach文」です
    配列(Array)の全要素をループさせます
  10. WhileLoopノード
  11. Cなどの「WhileLoop文」です
    「Condition」がFalseになるまでループします
  12. Switchノード
  13. C言語などの「switch文」です
    intやString、Enumなど様々な型が使用できます(Defaultピンは削除出来ます)
  14. Selectノード
  15. C言語などの「三項演算子」です
    「Pick A」の条件によってAかBが返ります
    IntやFloat、Vector、Objectなど様々な型が使用出来ます

Ex UE内の命名規則

  1. 知っておいて損はないUE内の変数などの法則です
  2. PascalCase(アッパーキャメルケース)
  3. UE内の全ての表示名は「PascalCase」になっており
    PascalCaseに加えてアンダーバー「_」はスペースに変換されます

引用・参考資料