Chapter 35無料公開

📰変数とは?(3)変数の概要と型について解説 [UE5入門チュートリアル #3-9]

Daichi
Daichi
2022.05.22に更新

コメント🐤

改めて変数とはどんなものなのか、そして変数の型の種類を紹介し、どんな時に変数がゲームで使用されるのか解説していきたいと思います。

変数とは?改めて確認しよう

変数(Variable)とは変更できるデータの事で、数値や文字列などの様々なデータとして使用されます。例えばHPの数値を実装したい時や、状況に合わせてキャラのセリフを変化させる時に変数を使用します。

変数は「データを入れる箱」

プログラミングでわかりやすく変数を解説するのに、変数は「データを入れる箱」と頻繁に例えられます。例えばゲームでキャラのHP(体力)を実装する時には変数を使用しますのでHPの事例を元に紹介します。

変数作成イメージとしては「1.変数(箱)を作成→2.変数(箱)に名前をつける→3.変数(箱)にデータを入れる」といったものになります。

作成した変数はどこからでもいつでも呼ぶことができるので、ゲーム画面に表示したり、HPバーを作成する時など使用します。

変数、箱には「型」とよばれる種類が色々あります。整数を入れる「Integer」、文字列を入れる「String」、trueまたはfalseのどちらかのデータを入れる「Boolean」があります。

コメント🐤

変数は「データを入れる箱」でいつでも呼んだり、変更できたりする便利なものです。そして変数には変数には種類があり、それぞれのデータに対応した種類の箱を用意する必要があるという事になります。

変数の作り方と使い方(おさらい)

変数の使い方についておさらいしておきます。

①変数を作成する

変数と書かれた隣のプラスボタンから変数を作成する事ができます。

②変数の名前を決める

作成したら変数の名前を決定します。変数の名前はF2のショートカットからでも可能です。

変数の命名方法🐤

変数の名前の付け方は本など教材を参考にしながら、使って覚えていきましょう。例えばプレイヤーの名前の変数を作成したい場合は「PlayerName」、所持しているコインの枚数を作成する場合は「MyCoin」や「PlayerCoin」、攻撃するダメージを作成する場合は「AttackDamage」などとします。ここは特に決まりはありませんが、おすすめの名前の付け方は、ぱっと見て何のデータの変数なのかわかる名前が良いです。チームで作成する場合は変数名が自分しかわからないような変数名だと何の変数名なのかわかり辛いという事もあります。また変数名は基本的に英語で作成します。日本語で「Pureiya-Namae」などにしないようにしましょう。とはいえ最初の初心者の内であれば変数名なんて何でも構いません。

③変数の型を決める

変数名の隣の場所で型を決める事ができます。

変数の型の決め方🐤

変数の型はどうやって決めるのでしょうか?ヒントとしてノードのピンの色やピンにカーソルを合わせた時に出てくる解説で判別できます。例えばPrinstStringのInStringのピンはピンク色で、カーソルを合わせるとStringと表示されます。ここにはStringという型の変数を繋げられるよという意味になっています。

ただどんな時にどんな型を使用するのかここも、実際に使って覚えていくという事になってきます。

④必要であればデフォルト値を入力する

コンパイルして、変数を選択した状態で右の詳細から設定を行う事ができます。必要であればデフォルト値を設定しましょう。初期値はStringなら「Hello」で、Integerなら「0」になっています。

⑤ドラッグで追加し、「Get」か「Set」かどちらかを選ぶ

変数をノードに組み込む場合はGetとSetの二種類があります。変数をイベントグラフにドラッグで追加して、Getで変数のデータを取得できて、Setで変数のデータをセットする事ができます。

以下のGetで変数のデータを取得する事ができます。

以下のSet(セット)によって変数の中身のデータを変更ができます。

コメント🐤

変数の作り方については以上です。次に変数の数ある型の中から頻繁にゲーム開発で使用するものを紹介します。

主に使用する型(変数の種類)を5つ紹介!

使用する主な変数の型を紹介していきます。

①String(文字列のデータ)


Stringは文字列のデータで、例えば「こんにちは」「敵にダメージを与えた」「GAMEOVER」などを入れる事ができます。例えばプレイヤーの名前をデータとして扱う時にStringを使用します。以下のノードではPlayerNameというString型のデータをテキスト表示しています。

②Integer(整数のデータ)

Integerは整数のデータで、例えば「0」「10」「-99」などを入れる事ができます。例えば拾ったコインの枚数を保存しておくために使用したりします。

例えば以下のノードでは、HP(例:100)から受けたダメージ(例:10)を引いた残りの値(例:90)をセットしています。

③Float(小数のデータ)

Floatは小数のデータ、例えば「0.241」「-5.3131」「9.0」などを入れる事ができます。Integerと似ていますが、Integerは整数のみで小数を含めた数字には対応していません。

例えばアクタの位置を変更する時などに使用します。以下のノードではゲーム開始時にアクタの位置を変更させる処理を作成しており、X座標にFloat型のLocationXという変数を使用しています。

LocationXに95.56と入力してこのノードを実行するとこのアクタはゲーム開始時にx座標95.56、Y座標0、Z座標0の位置に移動します。

④Bloolean(true,falseのデータ)

Booleanは「true」または「false」というデータどちらかを入れます。

例えばドアを実装する時に、ドアの状態は開いている状態か閉まっている状態かをBooleanで扱います。以下のノードではBooleanの中身がtrueだった場合にブランチからtrueに繋がったノードが実行され、Booleanの中身がfalseだった場合ブランチからfalseに繋がったノードが実行されます。

なおデータの入力値を見てみるとチェック方式になっており↓チェックを入れた状態がtrueで、チェックを外した状態がfalseにあたります。

コメント🐤

Booleanは「true」または「false」というデータを扱うというプログラミングならではのもので、他にも事例であげるとカードゲームの先行後攻を決めるコイントスで表がtrue、裏がfalseのように使用し、trueだったらプレイヤーAが先行でプレイヤーBが後攻みたいな感じでBooleanを使用します。

⑤Actor(アクタのデータ)

Actorの変数はその名の通りアクタのデータで、例えば操作するレベル上のキャラクターだったりキューブだったり、ライトだったりを入れます。

例えば以下のノードではアクタを削除するDestroyActorノードにCubeというActor型の変数を繋いでいます。これによってCubeの変数に入れたアクタが削除されます。

コメント🐤

Actorに関してはかなり雑に解説しましたが、変数では文字列や数字だけではなくアクタなどにも使用されるとひとまず理解しておけばオッケーです。では最後に変数の操作について軽く紹介します。

覚えておくと便利な変数操作

覚えておくと便利な変数の操作について紹介しておきます。

①変数へ昇格(Promote to variable)

変数の作成は時短で行う事が可能です。ノードの変数の部分を右クリックで変数へ昇格(Promote to variable)を選択します。自動で変数が作成されて、自動でノードを作成と接続を行ってくれます。

②GetとSetのショートカット

Getの変数を作成する場合ドラッグ+Alt、セットする場合ドラッグ+Ctrlでショートカットができます。

コメント🐤

これにて3ページに渡る変数解説が終了しました。変数 = 変更可能なデータでいつでも呼んだり、セットで変更したりできるという事がわかりました。そして、変数には型と呼ばれる種類があります。変数についてはこれから学んでいく内にどの場面でどんな物を使うのか覚えていきましょう。