ブループリントの基本的な構成要素③ 構造体変数

ビデオの内容紹介 構造体変数の作り方、メンバー変数への分解方法などが紹介されています。用語は難しく感じるかもしれませんが、考え方そのものはとても簡単です。

キーワード 構造体(struct): 構造体は、複数のデータ(変数)をひとまとめにしてかかえます。こうすることによって、互いに関連性があるデータを扱いやすく(分かりやすく)するわけです。たとえば、musicという型の構造体があるとします。このmusicの中には、入れ子のようにして、title(曲名)、length(演奏秒数)、composer(作曲者)などのメンバー変数が含まれています。この構造体を実際に利用するためには、まず、(たとえば)MyBestMusicという「変数」を作り、その「型」としてmusicという(構造体)型を指定します。この後は、MyBestMusicという構造体変数に自動的に含まれる(先ほどの)メンバー変数に具体的なデータ(“ゴールドベルク変奏曲”、3082、”Bach”など)を入れたりできるようになります。こうすることによって、少なくても、MyBestTitle、MyBestLength、MyBestComposerなどのような変数をバラバラに用意しなくても済むようになり、分かりやすくもなります。

原題 Blueprint Essentials-3-Struct Variables

構造体変数の作り方 (0:10)
スロー ブループリントエディタの「マイブループリント」パネルで「+V変数」というアイコンをクリック → 「グラフ」の下に新しい変数がNewVarという名前で作られる → NewVarの代わりに名前をつける(ビデオではMyStructとタイプ) → 「詳細」パネルの「変数」/「変数の種類」の黒三角をクリック → structをクリック → (たとえば)Transformという型を選択 → Event Graphパネルの中にドラッグアンドドロップ → (たとえば)「取得」を選択

メモ ①これまで見てきた他の変数とまったく同じようにして、変数を作ることができます。
②ビデオではstructからTransformを選択しましたが、「変数の種類」の黒三角をクリックしてすでに表示されるもの(基本的な型)の中にもTransformがあるので、こちらを選んでもまったく同じです。

キーワード Transform: 本来「変換」や「変形」といった意味ですが、ここでは構造体の1つの型のことを言います。構造体なので、メンバー変数をかかえています。それはLocation、Rotation、Scaleという変数です。
Vector:同じく構造体の1つの型です。メンバー変数には、X、Y、Zが含まれています。
Rotator:同じく構造体の1つの型です。メンバー変数には、Pitch、Yaw、Rollが含まれています。

構造体のメンバー変数を表示する方法 (1:04)
スロー 構造体変数MyStructの出力ピンからスペースにドラッグアンドドロップ → (ウィンドウが表示されるので)Break Transform(Transformを分解)をクリック

構造体のメンバー変数を表示するもう一例 (1:24)
スロー ブループリントエディタの「マイブループリント」パネルで「+V変数」というアイコンをクリック → 「グラフ」の下に新しい変数がNewVarという名前で作られる → NewVarの代わりにMyHitResultという名前を付ける(タイプ) → 「詳細」パネルの「変数」/「変数の種類」の黒三角をクリック → structをクリックして HitResultという型を選択 (または、Search(検索)欄にhitとタイプしてHitResultという型を選択) → Event Graphパネルの中にドラッグアンドドロップ →「取得」を選択 → 出力ピンからスペースにドラッグアンドドロップ → Break Hit Resultをクリック(または、Search欄にbreakとタイプするとBreak Hit Resultが選択状態で表示されるので、そのままリターンキーを押す)

キーワード hit: この場合は、何かが何かにぶつかることです。たとえば、レイキャストによってレイが(たとえば)壁などにぶつかった時のことを言っています。
レイキャスト(raycast): ある地点からレイ(光線的なもの)を飛ばして、その先にぶつかるものがあるかどうかを調べることです。

構造体を出力する関数の例 (2:26)
スロー Event Graphパネルの中で右クリック → 「ブループリントのすべてのアクション」というウィンドウが表示される → Searchにtraceとタイプ → Single Line Trace for Objectsをクリック → Out Hitからドラッグアンドドロップ → Break Hit Resultをクリック

メモ 上記の意味をメモしておきます。Single Line Trace for Objectsという関数は、ある地点からレイキャストを飛ばして、そのレイ(Line)に沿って衝突するオブジェクトを探します。衝突するオブジェクトがあったら、その結果をHit Resultという構造体として出力します。その構造体の内訳(メンバー変数)を表示しています。たとえばLocationという変数には、オブジェクトにぶつかった位置が値として格納されています。

今回はこれにてお終いです。おつかれさま!



シェアする

  • このエントリーをはてなブックマークに追加

フォローする

コメント

  1. 匿名 より:

    このサイトがあるおかけでUE4を挫けずに頑張れています!ありがとうございます。