2021-01-09

【Unreal Engine4】はじめての変数

ブループリントでプログラミングする上での一番最初の入り口「変数」。誰もが必須となるノードの作り方だがプログラムと思うとちょっと特殊なので詳しく見ていく。

Article Image

UE4での変数

あらゆるプログラミングで必須の変数。

本当にこれだけに絞ってUnreal Engine 4のブループリントで見ていく。

前提

次でやっていることが分かることが前提

  • サードパーソンのテンプレートを使う

  • ThirdPersonCharacter(つまりメインのプレイヤーキャラ)のブループリント

  • インプットアクションJumpPrint Stringをつないだ状態で実行

image-20210109130620354

こうするとジャンプ入力(スペース)があったときにHelloが左上に描画される。

image-20210109130718952

まずはこれが理解できるまでは進めておく。

わからない場合

次の動画で解説している内容は一通り見ておくと良い

猫でも分かる UE4を使ったゲーム開発 超初級編 #1:まずはプロジェクトを作ってUE4エディタを触ってみよう!

『猫でも分かる UE4を使ったゲーム開発 超初級編 #2:Blueprintをさわってみよう

今回はこの2番めの動画内でやっている変数を「より詳しく&分かりやすく」解説したい。

変数

ブループリントを編集する画面で左側下部にマイブループリントと書いてあるタブがある。

ここに変数の項目があるので+ボタンを押す

image-20210109131057563

これで変数が追加される。

変数って?

要するに数字や文字を入れておいて後から自由にプログラムで変更できる箱。

キャラクターのステータスなどのはこういう変数と言われるものにしまっておき、逐次計算で変化する。

変化する数字だから変数。

変数の型

型についてはプログラム基礎で長くなるであまり詳しく説明しないが(他サイトも参照)

変数はデフォルトでBooleanという型になっているのでTrueFalseの2通りになる。

今回は「整数」を扱って計算を行いたいのでまず型を「整数」へ変更するところから。

  • ブループリント画面で対象の変数をクリック image-20210109131647018
  • 右上から変数の型Integerに変更 image-20210109131723290

※Integerは整数

これで整数となったため計算式をいれて値を増やしたり減らしたりできる

ジャンプする度に変数+1

では、変数最初の一歩。

ジャンプする度に値を増やして画面に表示してみる。

まずは完成図

image-20210109155614824

なるほど、わからん。

色々とプログラムをやった側からしてみるとブループリントは逆に見づらい気がする。

解説

実際に制作しながら解説していく。

  • 変数をイベントグラフにドラッグ&ドロップしてGet~となっている箇所を選択

image-20210109134057287

これによりまずは変数に格納されている値を**「とってくる」**ことができた。

初期値は0

  • なにもないところを右クリックして+で検索
  • int + intを選択

image-20210109134240510

これで整数と整数を足し算するノードが追加される。

  • 変数をGetしたノードとつなぐ

image-20210109134422316

これで変数+1を計算するノードが完成

  • 同様に変数をドラッグしてSet~のノードを追加

image-20210109134531913

これは計算した値を変数に入れる処理をしている。

  • +のピンをセットの下側につなぐ

これがないと計算された値は破棄されるだけなので意味がない。

image-20210109134706795

これにて変数+1を行って変数へ戻してやる処理ができた。

しかしこれは問題がある。

いつこれを実行するのかが指定されていないので一度も実行されないまま終わる。

この「いつ」は右側セットの白い三角形にタイミングをいれてやって指定する。

つまり今回は「ジャンプした時」である。

  • インプットアクションJumpPressedをセットの白い矢印につなぐ

image-20210109134927374

これでジャンプのイベントが起こる度に値が+1されていく処理が完成である。

最後にこれを画面に表示させれば完成だ。

セットの右下の緑色になっているピンは計算結果をGetする事ができるピンなのでこのままPrint Stringに繋げられる。

  • セットの緑色のピンをPrint Stringの紫のピンにつなぐ

image-20210109135357412

さて、謎の箱が自動で挟まれた。

これは変数が「整数」に対してPrint Stringが「文字列」なので通常のプログラムでは「型が違う」というエラーが出るはず(プレステにスイッチのゲームを入れてるようなもん)

しかしUE4はこれを自動で認識して「変換するやつ」を挟んでくれているのである。

したがってエラーなくつなぐことが出来る。

さて、最後にまだ一つ問題があるのが分かるだろうか。

Print Stringにも「表示せよ」という信号を入れてやらないと画面は更新されないのでこのままでは数字は「表示されない」のである。

  • セットから出ている白い三角をPrint Stringに接続

image-20210109135828126

完成である。

  • 左上のコンパイルボタンを押す

プログラムを変更したら必ず押す。ノードで作ったプログラムをコンピュータが理解できる言語に変換していると思えば良い。

  • 実行してジャンプしてみる(スペースキー)

image-20210109140004187

以上

変数だけでも記事にしてみると長くなる。

しかし、一般的なプログラムから考えるとブループリントのせいで逆に処理の流れがより難しく見える。

入り口は初心者には厳しい気はするが、ゲーム内のイベントとどうしても絡めないといけないのでコレが精一杯小さい処理になるのは仕方ないのかもしれない。

次回は「条件式」を扱いたい。

おまけ:インスタンス側で変数を変更

先程のThirdPersonCharacterのブループリントにて

変数の右側の目のマークをオンにしておくと

image-20210109131247264

キャラクタをレベルに配置した後、詳細パネルから変数を手動で書き換えることができるようになる

image-20210109131331660

これも合わせて覚えておくと便利そうだ。



この記事のタグ

この記事をシェア


謎の技術研究部 (謎技研)