視聴メモ「Blueprintをさわってみよう」(1)
今回のメモの範囲(Start ~ 1:15:10)
※ UE4(4.25.0)の初心者向け動画を視聴して、UE5(5.0.0早期アクセス)の学習をします
※ 全内容のメモではありません 学習者は元動画の視聴を強くお勧めします
※ 略記 UE = Unreal Engine , BP = Blueprint
Agenda
1. Blueprntとは?
UEの代表的な機能である「ビジュアル スクリプティング システム」
UEはノードベースで実現
UEは非エンジニアでもモノ作りができる環境の実現を目指している
非エンジニアがエンジニアの手を借りずプロトタイプを作る
開発全体のスピードが上がる
このような経緯があるので、BPは見た目から難しく受け取られがちだが
実は文字ベースのプログラミングよりとっつきやすい
2. Blueprintの機能
Blueprint = アルゴリズム + パーツの組み合わせ
BPがベースになってレベルに配置するアクタが作られる
# Javaで例えるとBPがクラス、アクタがインスタンスのイメージかな
2.1. パーツの組み合わせ
UEではパーツのことをComponent(コンポーネント)と呼ぶ
UEでは3DCGのモデルのことをMesh(メッシュ)と呼ぶ
コンテンツブラウザからBPをダブルクリックして開く
コンポーネントパネルの追加ボタンをクリックすると
追加可能なコンポーネントの一覧が表示される
# 実作業
球形(Sphere)のMeshをThirdPersonCharacterに追加
SphereコンポーネントをMesh(CharacterMesh0)にドラッグ&ドロップして親子付け
親ソケットを「head」、トランスフォームの位置、回転を「0.0」に設定
コンパイルしてプレイすると球形がグレイマンの頭に固定して追随する
⇒キャラクターに剣とか盾とかの装備を付けるのに使える
⇒Meshコンポーネントどうしを親子付けして親ソケットを設定
Character Movementコンポーネントはキャラクターの動きを管理する
走ったり、ジャンプしたりできるのはこのコンポーネントのおかげ
動きのアニメーションは管理外 他のシステムで管理している
コンポーネントはプロパティを持つ
詳細パネルからプロパティ値を変更することで、コンポーネントの挙動を調整できる
変更したプロパティは右側に矢印が付く
矢印をクリックするとデフォルト値に戻すことができる
レベルに配置したアクタを選択して個別にBPの値を変更できる
ひな形のBPアセットの値を変更する(デフォルト値の変更)すると
レベルに配置した全てのアクタ(インスタンス)の設定も変更される
ただしデフォルト値の変更は各アクタで個別に変更したプロパティには反映されない
逆に個別のアクタの設定をひな形のBPのデフォルト値にしたい場合は
詳細パネルの「このアクタのブループリントを編集」アイコンをクリックし
「インスタンス変更をブループリントに適用」を選択
2.2. アルゴリズム
アルゴリズムの基本は、どんな時に、どんな処理を、どんな順番で実行するか
イベントグラフからアルゴリズムの編集が可能(ノードベース)
2.2.1. ノードの操作
イベントグラフでノードベースのプログラミンができる
イベントグラフを閉じてしまった場合は下記を選択して開くことができる
マイブループリント -> グラフ -> イベントグラフ ※通常の「ウィンドウ」からではないので注意
イベントグラフへのノード配置は右クリックして検索窓から目的のものを選択する
検索窓には配置してもエラーにならないノードが表示される
ノード同士をつなぐ線はリンク
ノード同士をつなぐポイントはピン
ノード同士は左クリックで線を引くようにしてピンをつなぐことでリンクできる
リンクはピンを右クリックして「すべてのピンリンクを削除」を選択するか
altキーを押しながらリンクをクリックすることで削除できる
リンクを削除して切り離されたノードを放置しておいても問題ない
イベントグラフ内のノードはctrl + Fで検索可能
2.2.2. ノードの整理
イベントグラフは複数枚用意することができる
マイブループリント -> グラフ -> +アイコン(新規グラフ)
ノードを複数選択して折りたたむことができる
ノードを複数選択 -> 右クリック -> ノードを折りたたむ
折りたたんだノードをダブルクリックすると折りたたんだ部分が
別のイベントグラフに表示される
折りたたんだノードを元に戻すこともできる
折りたたんだノードを選択 -> 右クリック -> ノードを展開する
関連するノードをひとまとめにしている白い背景のようなものはコメント
ノードと同様、イベントグラフを右クリックして「comment」で検索し
「Commentを追加」を選択する
コメントのショートカットはcキー
複数ノード選択した状態で利用すると便利
2.3. Unreal C++
従来のC++をUE向けに拡張したもの C++14ベース(17もサポート)
BPとの連携やエンジンのコア部分へのアクセス
非エンジニアにはハードルが高い
BPと比較すると試行錯誤の速さが落ちる
2.4. BlueprintとUnreal C++の使い分け
初心者はまずはBlueprintを使って慣れることが最重要
Bluprint
- 非エンジニアが触る部分
- 試行錯誤の速さが求められる部分
- システム寄りの複雑な部分
- 非エンジニアにとってブラックボックスでもよい部分
BPの中身はC++なので、BPに慣れてくるとC++のイメージもついてくる
BPとUnreal C++でプログラムの実行速度に差がでるケースもあるが
実際にパフォーマンスに影響あるケースで多いのはアルゴリズムの問題
BPのアルゴリズムを修正することでパフォーマンスが改善することが多い
「BP=遅い」というのは間違った認識