UE4:アニメーションシーケンスでのNiagaraエフェクトの再生方法
お疲れ様です。
現在Chaos of warという変なゲームを作成中です。
Chaos of warというマルチプレイゲームを開発してます。
— ぶっさん (@Bussan_desu) 2018年9月30日
武器、魔法、特殊能力、クラフトなどの要素が入った対戦・協力ゲームです。
協力者を探してますので興味ある方は是非。#UE4https://t.co/C7V4QWo0vLhttps://t.co/IBO7HJts5j
このプロジェクトではカスケードそしてNiagaraを使用しています。
まだアーリーアクセスなのか、カスケードのようにアニメーションシーケンスでエフェクトを設定して確認する及びアタッチ機能がありません・・・。
そのため通知BPにてこの機能を補完することにしました。
エフェクト提供:@torisutamoyasitwitter.com
まず通知BPの特性を説明します。
通知BPはサウンドやエフェクトをアニメーションシーケンス内にて発生及びスポーンさせることが可能です。
アクターもスポーンされます。(life timeなどでデストロイ処理を入れないとアニメーションシーケンスを閉じるまで消えません。)
この特性を使って通知BPにてNiagaraのスポーンの処理を作成します。
まずフォルダを右クリックしてブループリントクラスを押します。
親クラスを選択からAnimNotifyを選択します。
AnimNotifyStateは一定時間出すなどに使用できるTick処理が含まれています。(今回は使いません)
エディターを開きオーバライドからReceived_Notifyを選択します。すると以下のブループリントグラフが出てきます。
では通常のPlayParticleのプロパティーの構成を見てみます。
パクりました。
インスタンス編集可で変数を作成しました。
Niagaraの変数、LocationとRotationの変数、SocketのName型の変数となります。
すべてをインスタンスでの編集を許可します。
処理はSocketをLocationとRotationを取得し、設定したOffset群の変数を追加してあげます。
そしてSpawnSystemAttachedを出してNiagaraとSocket、そして上記の数値を接続します。
アニメーションシーケンスに戻り通知部分に作成した通知BPを設定します。
そして作成したプロパティーを埋めるとナイアガラのエフェクトでていることを確認します。
自分のプロジェクトですと、NiagaraはBPに包まれている事が多いので以下のように、キャストに成功(インゲームと判断)した場合、設定したBPをスポーンする関数を呼んでいます。
これでエフェクト製作時に確認出来て、尚且ゲームにも反映されるようになりました。
以上