第20回 オブジェクト型の変数を使ってみよう (2)

前回の振り返り問題
(再掲) MyCubeクラスにString型変数Talkを作り、そのデフォルト値を「Vキーを押しましたね!」とします。ゲーム中にVキーを押すと、その変数をもつMuCubeクラスのいずれかのインスタンス(どのインスタンスでも構いません)から、その変数を取得してそれが表示されるようなグラフをキャラクタークラスに作ってください。

まず、MyCubeクラスにTalk変数を作ります。
b20-1(画像1)
MyCubeのインスタンスは、前回設定したままのMyCube4です。
b20-2(画像2)
キャラクタークラスには、次のようなグラフを作ります。
b20-3(画像3)
これは非常に単純なグラフです。Vキーを押すと、Print Stringが実行されて、そこにつながっている(CubeInsの)Talkが表示されます。実行すると、次のようになります。
b20-4(画像4)

クラス オブジェクト型の基本
前回学んだように、ブループリントでは
クラス(オブジェクト) → インスタンス(オブジェクト)
という関係になっています。つまりクラスという設計図からインスタンスという具体物が作成されるのですが、ブループリントでは設計図も具体物もオブジェクトと呼ばれています。

前回は、インスタンス(オブジェクト)の場所を教えるリファレンス型(参照型)を使いました。今回は、クラスのありかを教えるクラス型を使ってみます。

クラスはインスタンスの設計図であるので、クラス型変数を使えばインスタンスをゲーム中に配置することができます。クラス型の変数は、クラスのファイルがどこにあるか教えるものです(クラスもメモリ上のどこかにあるはずですから)。

クラス オブジェクト型を使ってみる

次のグラフは、Gキーを押すと、MyCubeクラスからそのインスタンスをレベルに配置し、そのインスタンスがもつ変数を表示するものです。
b20-5(画像5)
ここにあるClassMyCubeという名前の変数はクラス型の変数として新たに作ったものです。(検索欄でMyCubeを検索して、それが出たらマウスオーバーして、「リファレンス」や「クラス」などの選択項目が出てくるので、「クラス」を選択します。)
b20-6-2(画像6)
なお、このデフォルト値は次のようにMyCubeとしておかなければなりません。
b20-7(画像7)
それから、中央にある「スポーンアクタ」関数(Spawn Actor from Class)は、左側のClass入力ピンから対象のクラスを受け取り(この場合ClassMyCube)、レベル内でそのインスタンスを出現(スポーン)させるとともに、右側のReturn Value(返り値)出力ピンからそのインスタンスへのリファレンス型(参照型)の値を返します。ここで注意していただきたいのは、クラス型のピンの色は紫色で、リファレンス型(参照型)は青色であるということです。この色はいつも統一されているので、画像6でも同じ色が使われていました。

Return Value(返り値)出力ピンからインスタンスへのリファレンス型を引っ張ってきて、そのインスタンスがもっているJikoShokaiという変数の値を取得して、表示しています。なお、このJikoShokaiは、次のようにしてMyCubeに新たに作ったものです。
b20-8(画像8)

ところで、画像5の左下のほうにあるMake Transform(トランスフォームを作る)というノードは、トランスフォーム(Location 位置、Rotation 回転、Scale スケール)というデータを設定できる関数です(「回転」とはそのアクタの角度あるいは向きのことです)。この返り値(つまりトランスフォームの値)は、「スポーンアクタ」関数のSpawn Transform(発生させるトランスフォーム)に供給されます。ここでは、Location (位置)だけを変更して、レベルのやや奥の方に出現させるようにしています。実行すると、次のようになります。

(Gキーを押す前)
b20-9(画像9)
(Gキーを押すと)
b20-10(画像10)

【振り返り問題】
Gキーを押すと、MyCubeクラスからスケールが2倍のインスタンスを作ってレベルに発生させ、さらに、そのインスタンスへの参照を使って、MyCubeがもっている関数(たとえば、以前に作ったHelloHyoujiKansuなど)を呼び出してみてください。








About なつのや

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

コメントを残す

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

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