【UE4】Part12 ダッシュエフェクトを追加する

Part11ではBボタンダッシュを実装したのですが、地味です。

確かに2倍速にしたので早く走れるのですが、地味です。

そこで、ゲームらしくダッシュしたときにエフェクトを表示するようにしてみたいと思います。

目次

初めての方に

アンリアルエンジンの記事では、初心者がアンリアルエンジンの勉強をのんびりしていき、最終的にはゲームを完成させる目的で、記事をあげていっています。紹介する手法が必ずしも最適な方法とは限りませんので、ご了承ください。

また、ゲーム完成まで温かく見守っていただけると幸いです。

ダッシュフラグを作る

まず、今回完成予定のブループリントを先に見せておきます。

Part11で作成したBボタンダッシュのブループリントを改造します。

Bボタンを押した時に、ダッシュフラグをONにし、Bボタンを離した時に、ダッシュフラグをOFFにします。

ダッシュフラグがONの間は、エフェクトを生成し続けるという流れになります。

さて、まずはダッシュフラグを作成します。

ThirdPersonCharacterのブループリントを開き、左側メニューある変数の項目の右側にある+ボタンをクリックします。

名前は、今回はダッシュフラグなので、Dashにしました。

次に、作成されたDashをドラッグして、ブループリントの空欄のところまで持っていきます。

Set Dash ・ GetDashの選択が出てくるので、今回はフラグをセットするので、Set Dashを選択します。

セットの箱ができたと思います。オフの処理も必要なので、同じ動作をして、もう1つ箱を作りましょう。

そして、以下の図のように繋ぎなおします。

Pressedの方のセットには、Dashの右側のチェックボックスにチェックを入れます。

これで、Bボタンを押した時に、DashフラグがONになり、Bボタンを離した時にDashフラグがOFFになります。

Dashフラグによってエフェクトを発生させる

次に、DashフラグがONの間は、キャラクターにエフェクトを表示する処理を作成します。

定期的にイベントを発生させる方法として、Tickというものを使います。

初期設定では毎フレーム処理するらしいです。

Tickを追加します。空白のところで右クリックをして、Tickを追加します。

合わせて、ブランチを追加します。どちらも、「Tick」「ブランチ」と検索枠に打てば出てくると思います。

次に変数から、Dashをドラッグして、Get Dashを選択します。

このようにつなぎます。

今回初登場のブランチについて簡単に説明します。

プログラム言語でいうIF文と同じです。

Conditionに対して、Trueだった場合、Falseだった場合と別々の処理を動かすことができます。

今回の場合、DashフラグがONのとき、ブランチのTrue側が動きます。

次に、エフェクトの表示を行います。

エフェクトの表示は、「Spawn Emitter Attached」を使います。

いつもどおり、右クリックしてから検索して追加しましょう。

Emitter Templateが表示するエフェクトです。

Attach to Componentが表示する場所。今回の場合は、キャラクターのメッシュになります。

Auto Destroyは、チェックを入れるとエフェクト終了時に消えてくれるらしいです。

画面左上のコンポーネントから、Mesh(継承)をドラッグして入れましょう。

以下の図のように結びましょう。

Emitter Templateは好きなエフェクトを設定します。(筆者はマーケットプレイスからダウンロードしてきました)

インストール時にスターターコンテンツを入れてる場合は、最初から何か入ってるはずです。

エフェクトによっては、ループ設定されているのか、消えずに残り続けるものがあるようなのでご注意。(大量にエフェクトが表示され、消えることもないので重くなって落ちます)

とりあえずは、これでダッシュした時、エフェクトが表示されるようになります。

ただ、Tickが毎フレーム毎に処理されることから、60FPSだと秒間60個もエフェクトが作成されてしまうので、調整が必要でうす。

Tickの間隔の調整は、以下のところを選択して、右側の詳細メニューから、Tick Interval(secs)を調整します。

まとめ

今回は、ダッシュエフェクトを追加してみました。

本当は、体にプラズマを纏うエフェクトを想定して作ってたのですが、思ってたエフェクトがなく、場所も足元に出てきてしまったため、足から強烈なプラズマが出てるようなエフェクトになってしまいました。

あと、ThirdPersonCharacterのブループリントをいじる形で作成しているのですが、別ファイルに分けた方がいいのではないかと思い始めました。

目次