のりブログ

ゲーム関連(攻略/レビュー/業界情報/開発秘話)、および雑記(お出かけ情報)などをメインに書いています。

【UE4】ブループリントで クラス(class) を 動的生成(new) する方法。

こんにちは!のりです。

本日は、UE4 (Unreal Engine4) のブループリントでクラスを作成する方法と、クラスをnewする方法を書いてみたいと思います。

普段、ゲーム攻略やレビューなどをメインに書いているのに突然どうした?という感じに思われる方もいらっしゃるかもしれませんが、せっかく仕事でも趣味でもゲーム開発をしている以上、ちょっと開発っぽいことを書くのもいいかなと思い書くことにしてみました。まあ、自分用のメモ的な意味もありますが。(笑)  

 

スポンサーリンク

 

目次

ブループリントクラス(class)を作成

1.画面下の「コンテンツブラウザ」で「右クリック」をして「ブループリントクラス」を選択します。 

f:id:norizn:20190316121801j:plain

2.親クラスは「Actor」を選択します。

f:id:norizn:20190316121857j:plain

3.「NewBlueprint」というブループリントクラスが作成されます。名前は自由に編集できます。

f:id:norizn:20190316121911j:plain

4.「NewBlueprint」クラスを「ダブルクリック」すると編集画面を開くことができます。画面左下の「+変数」をクリックすると、変数を追加できます。画面右上の「変数の型」をクリックすると、「bool」や「int」といったお馴染みの型を選択することができます。

f:id:norizn:20190316121919j:plain

 

ブループリントクラス(class)を動的生成(new)する

作成したブループリントクラスを他のブループリントクラスで動的生成する方法を解説します。

1.他のブループリント「NewBlueprint2」を作成します。クラス名はなんでも構いません。

f:id:norizn:20190316121926j:plain 2.作成したブループリントクラスの編集画面で、クラスを動的生成するための「ポインタ変数」を作成します。

f:id:norizn:20190316121933j:plain

3.ポインタ変数を作成したら、画面左下の「+関数」ボタンをクリックして、クラスをnewするための関数を作成します。

f:id:norizn:20190316121941j:plain

4.「新規関数_0」の編集画面で「右クリック」をすると、いろんな「ノード」の選択ウィンドウが開かれます。ここで、「SpawnActor」を入力すると、英語では「SpawnActor」という関数ノードを呼び出すことができ、日本語では「クラスからアクタをスポーンします」という関数ノードを作成することができます。

f:id:norizn:20190316121948j:plain

5.「スポーンアクタ NONE」という関数ノードが作成されます。「Class」の引数から、動的生成(new)したいクラス(NewBlueprint)を選択します。

f:id:norizn:20190316121955j:plain

6.「SpawnActor クラス名(New Blueprint)」という関数ノードに名前が変更されます。あとは、新規関数_0とノードを繋いだりポインタ変数(New Var0)に new して動的生成されたクラスのポインタをセットしたりすれば、完成です。「Spawn Transform」という引数が未設定になるかもしれませんが、適当なローカル変数を作成して繋いでおけばコンパイルが通ります

f:id:norizn:20190316122002j:plain

 

スポンサーリンク

 

あとがき

ということで、ブループリントでクラスをnewする方法でした。以前、私自身がブループリントでC++でいうところの、class を new するのってどうすればいいの?と疑問に思ったことがあったので、書いてみました。

一度こういうHowTo記事を書いてみたかったので書いてみましたが、画像を準備するのが面倒ですね。(笑) でも、まあブループリントに関しては文字だけで説明しても分かりづらいので、仕方の無いことです。あんまり起動が重いページにしたくないので、あまり画像は使用しない主義なのですが、この記事は画像だらけですね。重かったらすみません。

以上、【UE4】ブループリントで クラス(class) を 動的生成(new) する方法。でした。