【UE4】Part14 ダッシュゲージを追加する

Part13でHello Worldという文字を表示しました。

今度は、ゲージを追加して、ダッシュに制限をつけたいと思います。

目次

初めての方に

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

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

UIにプログレスバーを追加する

まずは、UIにプログレスバーを追加してみましょう。

前回は、Textを追加しましたが、今回はProgress Barをドラッグして入れます。

ついでに、文字もダッシュに変えてみました。

ダッシュゲージに使う変数の準備をする

次に、ダッシュゲージに表示するための変数を準備します。

Progress Barは、最小が0で1が最大です。

要するに、0がゲージ0、0.5がゲージ半分、1.0がゲージマックスです。

では、ThirdPersonCharactorのブループリントを開きます。

Dashフラグを作成する時と同じように、DashPoint、MaxDashPointの2つの変数を作成します。

キャラクターの成長を想定して、最大値は動的に動かせるようにしておきます。

変数の左側にあるボタンを押して、変数の型を変更します。

今回は、整数を扱うのでIntegerを選択しました。

次に、ブループリントを以下のように修正します。

追加した部分は、①~④です。

1つ1つ説明していきます。

① 変数をドラッグして入れて、Get 変数名を選びます。変数の値を取得します。

②Integer – Integerという関数を使います。引き算した結果を返します。

③Integer+Integerという関数を使います。こちらは足し算した結果を返します。

④変数をドラッグして入れて、Set 変数名を選びます。変数に値を代入します。

この処理を追加することで、ボタンを押してる間は、DashPointを1ずつ増やしていき、ボタンを離してる間は、DashPointを1ずつ減らしていきます。

これで良さそうに見えますが、2つ処理が抜けています。

押し続けると、MaxDashPointを超えて、値が増え続けること。もしくは減り続けること。

0以下になってもダッシュは止まらないということです。

これらの対応策は色々あると思いますが、以下のように作成してみました。

箱の数が増えて複雑に見えるかもしれませんが、難しいことは全く行っていません。

MaxDashPoint以上になる場合は、Dash PointにMaxDashPointを代入する処理を入れました。

また、DashPointを0以下になる場合は、Dashフラグをオフにして、MaxWalkSpeedを元に戻す処理を入れました。(Bボタンを離した時の処理にくっつけてます)

とりあえず、これでダッシュ変数の準備が完了しました。

次はプログレスバーにこの変数適応してみたいと思います。

プログレスバーに変数の値を適用させる

まず、最初の手順で作成したプログレスバーを選択します。

Percentの項目の右側にあるバインドを選択して、バインディングを作成を選択します。

ブループリントの画面が表示されます。

最初に完成図を出しておきます。

左から、

Get Player Character でキャラクターを取得し、

Cast To ThirdPersonCharacterを経由して、

getDashPointgetMaxDashPointで変数の値を取得し、(DashPoint・MaxDashPointは作成した変数名)

DashPoint÷MaxDashPointで割合を計算して、(float / float)

その値を適用させます。

変数と割り算に入っているコネクタのようなものは、変数をintegerからfloatに変換です。勝手に追加されます。

太字のワードで検索すれば出てくるので、上図の完成図のように結べばOkです。

これで、保存して実行してみましょう。

ダッシュゲージがある時だけ、ダッシュできるようになりました。

まとめ

今回は、UIを表示して、ダッシュ機能の拡張を行いました。

シンプルなプログレスバーなので、あまりカッコよくないですが、デザインされたプログレスバーに変えれば、いよいよゲームっぽくなってくるかと思います。

ある程度、機能回りの処理ができたら、見た目も重視した作成をしていきたいですね。

目次