前提
身内用に書いたものを、暫定的に公開しているものです。何かおこったら閉じるかもしれません。
前の記事に書いた知識(ブループリントの最低限の知識)は持っている、という前提で書いてます。特に説明のない限り、Unreal Engine 4.25 で FirstPerson テンプレートで作成したプロジェクトのレベルブループリントのイベントグラフ上で操作をする前提です。
パーティクルをブループリントで操作する
パーティクルはアクターではないので、アクターとは少し違う方法で操作します。
パーティクルをとにかく画面上に出す
最も簡単な方法は、SpawnEmitterAtLocation か SpawnEmitterAttached を使う方法です。
Emitter Template のところで、設置したいパーティクルを選びます。スターター有りにしていれば、爆発などのいくつかのパーティクルがメニューから選べます。ここでは P_Explosion にしてみました。Location は 200, 0, 300 くらいにすると、プレイ直後の目の前あたりに出現します。
上記のコードで、Enter キーを押せばパーティクルが再生されます。再生が終わるとパーティクルは消滅します。(SpawnEmitterATLocation ノードの AutoDestory にチェックが入っている場合)
SpawnEmitterAttached は、他のアクターにくっつけた状態で設置できます。ここでは、画面の目の前にあった EditorCube11 というアクターにくっつけてみました。
こんな感じになります。Location でアクターとの相対的な位置を指定することもできます。
アクターにくっつくので、弾を撃って箱をふっとばしても、パーティクルは箱にくっついていきます。
パーティクルを消す
ループ再生になっているパーティクルを SpawnEmitter ノードで設置すると、永遠に再生され続けます。SpawnEmitter ノードで出したパーティクルの再生を止めたい場合は、DestroyComponent ノードを使います。
再生を止めるというより、パーティクルの存在を消去している感じです。
パーティクルを移動、回転、拡大する
パーティクルを移動させたり拡大縮小するには、ブループリントクラス化(アクター化)します。しなくても SetRelativeLocation などを使ってコンポーネントを無理やり操作できますが、座標の管理が面倒になるので、特別な理由がなければアクター化したほうがよいでしょう(多分)。(移動させるだけなら、上で説明した SpawnEmitterAttached で別のオブジェクトにくっつけることでも実現できます)
こんなかんじで、アクター化したいパーティクルの上で右クリックメニューを出して、アセットアクションから「これを使用してブループリントを作成」を選びます。(ちなみに P_Fire は「コンテンツ」「StarterContent」「Particles」にあります)
ブループリント化(アクタ化)すると、他のアクターと同様に開いてエディットできるようになります(ここでは、P_Fire_BP という名前にしてます)。
あとは、普通のアクターと同じように SpawnActorAtLocation などで設置できます。
アクターを移動させれば、(コンポーネントとして含まれている)パーティクルも移動します。SetActorTranform で回転や拡大、縮小などもできます。
続くとしたら
レベル間移動、ファイル入出力、音声再生あたりです。