コメント🐤
今回はノードについて改めて解説した後、ノードの基本操作と整列方法を紹介していきます。
ノードとは?
ノードとは、ブループリントで使用する機能持ったグラフの事です。このノード同士を接続してゲームの機能を作成していきます。
では、実際にノード作成しつつ解説していきます。
ノード操作を確認しつつ、ノードを作成してみよう|実践
なお、ノード操作の解説がメインなので処理自体は大したものは作りません。
-
レベルブループリントを開きます。プロジェクトは何でも良いです。
-
ノードはイベントグラフ上で右クリックを押して作成します。ノード一覧が表示され、例えばBeginPlayノードはイベントを追加のカテゴリの中にイベントBeginPlayノードがあります。カーソルを合わせるとどんなノードか解説も出てきますね。
-
ただし基本的には一覧から探すと大変なので検索してノードを探します。こんな感じですね↓
初心者の内はどうやってノードを探したり、作ったりする?
初心者の方はもちろんノードは全く知りませんし組み方もよくわかりません。では、どうやってゲームに機能を追加する時に一人でノードを組めるようになれるのでしょうか?それはこういった教材のものを参考にしたり、ネットで検索してそこに載っているノードを参考に作っていく中で徐々にノードを覚えていきます。つまり、最初の内はひたすらネットで検索してそのノードを参考にノードを作ります。例えば攻撃を実装したい場合にノードがわからない時には、日本語で「UE4 攻撃」や英語で「UE4 attack」などとGoogleやYouTubeで検索をかけます。
そこで使用されているノードを参考に、わからないノードは調べつつ、自分の実装したい機能のノードを作成していくといった感じになります。
関連ワードで検索してノードを見つけよう
例えば足し算するノードを使いたい時には正しい名称は「Add(加算する)」ノードですが、一覧で「plus」または「+」と打つとヒットします。ノードの名前がわからない時はこういった関連ワードで検索するとヒットする場合があります。
では、手順に戻ります。
- ピンからドラッグで検索してPrintStringノードを作成します。
ノードの名称
ノードの名称と役割を確認しておきましょう。白い矢印を実行ピンといい、ノードを実行する順序を決定するワイヤーを接続する場所になります。
実行ピンを繋ぐものを実行ワイヤーと呼びます。繋がっている事でBeginPlayノードからPrintStringに処理が順番に実行されるという事になります。
- ノードは下の矢印から詳細設定を開く事ができます。
例えばPrintStringのTextColorを赤にしてみて、プレイしてみると赤色でテキストが表示されます。
-
次にPrintStringを選択した状態でCtrl+CでコピーしてCtrl+Vでペーストします。
-
ピンの部分を「Alt+クリック」で接続を解除できます。接続解除したら下のノードに繋ぎましょう。こんな感じに接続と解除が自由にできます。
イベントグラフでのノード基本操作
ノードを選択してドラッグで移動ができ、ノードの追加選択はCtrl+クリック、範囲選択は何もない場所からドラッグするとできます。また、イベントグラフは右クリック押しながらドラッグで視点の移動ができ、スクロールで拡大縮小、Homeキーでイベントグラフ中央に焦点を合わせます。
-
では次にイベントTickノードを作成して以下の様にします。
イベントTickノードとは毎フレーム繋がれたノードを実行するものでしたね。実際にどんなものなのかわかりやすくなるように処理を作ってみます。 -
変数を作成します。プラスボタンを押して、名前をCount、型をIntegerにします。変数についてよくわかっていないという方は以前のページで解説しておりますのでそちらをご覧ください。
-
変数をドラッグで追加して、Getを選択します。そしたらCountのピンをInStringに接続します。(自動で変換ノードが作成されます)
変数の名称
変数のピンをデータピン、データピンから繋ぐワイヤーをデータワイヤーとも呼びます。
データピンからはデータピンにしか接続する事ができず、変換の型が異なる場合、つまり接続するデータピンの色が異なる場合自動で変換ノードが作成されます。
-
一旦今の状態でプレイしてみると、一番最初にHelloWorldと表示され後はCountの初期値「0」が毎フレーム表示されます。
-
イベントTickに繋がるPrintStringから++と検索してIncreamentIntノードを作成します。
IncreamentIntノードとは?
IncreamentIntノードとはInteger型の変数に+1足してセットするノードです。例えば以下のノードでCountというInteger型のデータの中身が0だとします。IncreamentIntに接続すると+1されてセットされるのでCountの中身は「1」になります。
このIncreamentIntノードは結構使う場面があり、例えばアイテムを拾った時にこのノードを使用して、変数に+1してアイテムのカウントを増やしたりできます。ちなみに足し算するノード「Add(加算する)」ノードがあるのですが、それを使って以下のように組んだ場合とIncreamentIntノードは全く同じ処理になります。
IncreamentIntノードだと一つのノードで「+1して変数にセット」ができるので便利という事ですね。
- Countからドラッグで伸ばして、Rerouteノード(下で解説)を作成しそこからドラッグでIncreamentIntノードに接続します。
Rerouteノードとは?
Rerouteノードはワイヤーをピン留めするためのノードです。ノード自体に意味はなく、ワイヤーがどこからどこへ繋いでいるのかわかりやすく表示するためのものです。なので作成したノードともう一つCountを追加した場合とのノードの意味は全く同じです。
つまりただ見やすくするためのものがRerouteノードです。また既存のワイヤーをダブルクリックで作成する事も可能です↓
さらにRerouteノードからワイヤーを分岐させる事も可能です↓
- ではプレイしてみましょう。1ずつ増えてテキスト表示されるようになりました。
ノード解説
BeginPlayで最初にHelloとテキスト表示します。イベントTickでは、まずCountを表示してその後、+1されます。一週目ではCountが0なので、0と表示された後+1され1になります。二週目ではCountは1になっているので1と表示された後+1されて2になります。といった感じで毎フレーム繰り返されます。
-
コメントで囲ってより見やすくしましょう。ドラッグで範囲選択にして、Cキーを押します。するとコメントを打てるのでノードの機能がわかるようにコメント欄を命名します。
このコメントを使用するとどこにどんなノードがあるかわかりやすくなるので、きりがよい時に作成する事をおすすめします。処理自体には何も影響もありません。 -
作成したノードをクラウド保存しておくにはbluprintUEが便利です。後にまた使うかもしれない長めのノードなどは保存しておくと後から簡単にコピペ出来ます。使い方は以前のページ「blueprintUEでノードを保存,コピペしよう」で解説しています。
今回作成したノードはこちら↓
コメント🐤
では残りはノードの整列操作について解説していきます。必須事項ではありませんが、覚えておいて損はないでしょう。
ノードの整列操作
ノードをまとめて整列を行い、整理を行います。ノードを選択して右クリック>整列で整列方法一覧が見えます。
おすすめの整列操作はQキー
色々あるのですが、主に覚えておきたいおすすめの整列操作は一つだけです。ノードを選択した状態で、Qキーによってピンを直線上に並べる操作です↓
他にも色々ありますが、最初はこの一つだけで充分でしょう。
整列操作一覧
機能 | 操作 |
---|---|
上揃え(AlignTop) | Shit + W![]() |
中揃え(AlignMiddle) | Alt + Shift + W![]() |
下揃え(AlignBottom) | Shift + S![]() |
左揃え(AlignLeft) | Shift + A![]() |
中央揃え(AlignCenter) | Alt + Shift + S![]() |
右揃え(AlignRight) | Shift + D![]() |
コネクションを真っ直ぐにする(Straighten) | ワイヤーが全て直線になるよう配置されます。Qキー![]() |
水平方向に分布(Distribute Horizontally) | ノードを水平方向に等間隔に配置します。![]() |
垂直方向に分布(Distribute Vertically) | ノードを垂直方向に等間隔に配置します。![]() |
コメント🐤
ノードは折りたたむ事もできるので紹介しておきます↓
ノードの折り畳み解説
- ノードを折りたたんでまとめる事ができます。ドラッグで範囲選択して、右クリック > ノードを折りたたむを選択します。
- ダブルクリックで開く事ができ、元の場所に戻るにはイベントグラフをクリックします。
- 折りたたまれたノードにピンを接続する事も、折りたたまれたノードから出力させる事も可能です↓
- 折りたたまれた状態から解除するには右クリック> ノードを展開をクリックします。
ノードがとても長くなってしまった場合に活用しましょう。
ノード名はわかるけど、検索しても出てこない..対処法
ノード名はわかるけど検索してもヒットしない場合が2つあります。
①「状況に合わせた表示」にチェックを入れている
ノード一覧で表示される状況(Context Sensitive)に合わせた表示にチェックを入れていると、ノードが表示されない場合があります。
この機能は関連ノードのみを表示してくれるので便利な機能なので基本的にチェックを入れて、ノードが見つからない場合にチェックを外して探してみましょう。
②日本語エディタで英語検索すると一部ノードはヒットしない
初心者の方はハードルが低い日本語がおすすめなので日本語エディタですが、ゲーム開発について学習し終わったタイミングで英語エディタに切り替える事をおすすめします。なので基本的に日本語エディタであっても英語のノード名で検索する事を推奨しているのですが、日本語エディタの場合、一部のノードは英語で検索すると出て来ない場合が稀にあります。
英語エディタならこんな感じにキーボード入力のFノードが候補に出てきます↓
日本語エディタだとキーボード入力のFノードが英語で検索しても出てきません↓
なのでもし英語で検索してもノードがヒットしなかった場合、日本語で検索をかけてみましょう。以下のように「F キー」と検索するとノードが表示されます。
もしノードが見つからない場合はこの二つが原因じゃないか探ってみましょう。
ノード基本操作については以上です。
コメント🐤
ノード = 様々な機能を持ったグラフという事でした。初心者の内は教材やネットに挙がっているノードを参考にしつつ、実際のゲーム開発でオリジナルのノードを組んでいく事になります。それを繰り返していると何も見なくても徐々にノードは組めるようになってきます。以上です!お疲れ様でした!