ブループリントの基本的な構成要素⑤ 列挙型変数

ビデオの内容紹介 
既存の列挙型変数の作り方と、独自の列挙型の作り方をていねいに説明しています。

原題 Blueprint Essentials-5-Enum Variables

キーワード 
列挙型(enum): ある事柄と数値を結びつけることができる変数です。たとえば、
MyEnumという列挙型の変数があって、そのエントリが次のようになっている場合が考えられます。
MyEnum
apple 0
orange 1
peach 2
これによって、appleを0、orangeを1の代わりに使うことができるようになり、プログラムの分かりやすさと保守性を向上させることができるようになります。

既存のenum型の変数を作成する方法 (0:11)
スロー 
(引き続き、「ブループリントの基本的な構成要素①」http://manabibeya.com/ue4tutorial/blueprint/blueprint1/ )で作ったブループリントのVariableWorkshop上で) 「+V変数」をクリック → NewVarの代わりにMyEnumという名前をタイプ → 「詳細」パネルの「変数の種類」の黒三角をクリック → Enumを展開 → EblendModeという型を選択 → ツールバーの「コンパイル」をクリック

メモ 
列挙型の変数の作り方は、これまでの変数の場合と変わりません。ただし、コンパイルを実行することによって、「詳細」の「デフォルト値」が新たに設定されるようになります。

独自のenum型を作成する方法 (0:54)
スロー 
エディタの「コンテンツ ブラウザ」で「Blueprints」フォルダが選択している状態で → 「新規」を展開(クリック) → 「未分類」から「Enumeration」をクリック → 名前として「MyEnumerationAsset」とタイプ → これをダブルクリック → ブループリントエディタが開かれ「MyEnumerationAsset」のタブが表示される → 右端の「new」をクリック → 1番目のエントリ名としてFirstListEntryを入れる → さらにnewを押して2番目のエントリ名としてPumpkin、さらにnewを押して3番目のエントリ名としてCheeseburgerを入れる → 「保存」をクリック → ブループリントエディタ全体を閉じる → コンテンツ ブラウザでVariableWorkshopをダブルクリック → (すでに作ってある)MyEnumの型を選択(し直す)ために、すでに選択されている変数の種類(型)であるEblendModeをクリック → 型の一覧が表示されるので、最後の方にある(先ほど作ったばかりの)MyEnumerationAssetという型を選択する → コンパイル → ブループリントエディタの「詳細」パネルの「デフォルト値」の下にFirstListEntry、Pumpkin、Cheeseburgerが含まれていることが確認できる

メモ 
「デフォルト値」とは、その列挙型の変数に最初から入れる値のことです。それをブループリントエディタの「詳細」パネルの「デフォルト値」から選択することができます。その動作を確かめるために次のようなグラフを組んでみました。

enum3

このTestEnumというのは、MyEnumerationAsset型の変数です。MyEnumerationAsset にはred=0、blue=1という2つのエントリが含まれています。とりあえず、blueをデフォルト値として選んでおきます (画像左下の部分参照)。

TestEnumの値(デフォルト値のblue、つまり数の「1」)は、String(文字型つまり、文字としての「1」)に変換されてからPring String(文字列を出力する)という関数に接続されています。

エディタでゲームを開始すると「イベント BeginPlay」というノードによって、Pring Stringが実行されるため、エディタ内のシーン左上に「1」という文字が表示されることになります。

enum2

お疲れ様でした!


About なつのや

アンリアル・エンジン 4 を基礎から勉強するためのサイト「UE4 の学び部屋」を開いています。どうぞよろしくお願いいたします。
ブループリント

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>