キャラクターが爆弾に触れて爆弾が爆発した場合、ゲームであれば本来はキャラクターのHPが減少、もしくは、HPの残量が少なければキャラクターは死亡します。キャラクターのHPの状態を知るためにはHPバーが必要になります。HPバーがあることで、例えば、爆弾が爆発した時にキャラクターにダメージを与えていることを視覚的に確認できます。
HUDを使ってHPバーを作成する
先ず、HUDが使えるようにMyProject.Build.csを書き換えます。
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "UMG" });
PrivateDependencyModuleNames.AddRange(new string[] { "Slate", "SlateCore" });
コンテンツフォルダ内に新たにHUDフォルダを作成して、そのフォルダ内で右クリック、ユーザーインターフェース→ウィジェットブループリントを選択します。名前はCharacterHealthBarにします

ファイルを開いたらCanvas Panelを削除します。
検索窓にprogressと入力してprogressbarをCharacterHealthBarに追加します。
追加したprogressbarの名前をHealthBarに変更します
検索窓にfillcolorと入力して青色のバーの部分を左クリックします。
RとAを1に、GとBを0に設定します。
これでヘルスバーの作成は終了です。今度は、ヘルスバーを画面に表示させます。
HPバーを画面に表示させる
プレイヤーコントローラを親クラスにした新しいC++クラスを作成します。名前はここではMyPlayerControllerのままにしています。

MyPlayerController.hのGENERATED_BODY()の下に以下のコードを追加します。
public: AMyPlayerController(); protected: virtual void BeginPlay() override; private: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = Widgets, meta = (AllowPrivateAccess = "true")) TSubclassOf HUDOverlayClass; UPROPERTY(VisibleAnywhere, BlueprintReadOnly, Category = Widgets, meta = (AllowPrivateAccess = "true")) UUserWidget* HUDOverlay;
MyPlayerController.cppに以下のコードを追加します。
#include "MyPlayerController.h"
#include "Blueprint/UserWidget.h"
AMyPlayerController::AMyPlayerController()
{
}
void AMyPlayerController::BeginPlay()
{
Super::BeginPlay();
if (HUDOverlayClass)
{
HUDOverlay = CreateWidget<UUserWidget>(this, HUDOverlayClass);
if (HUDOverlay)
{
HUDOverlay->AddToViewport();
HUDOverlay->SetVisibility(ESlateVisibility::Visible);
}
}
}
UE4エディタのHUDフォルダ内に新規にウィジェットブループリントを作成します。ここではファイル名はCharacterHudOverlayにしています。

検索窓にhealthbarと入力します。
Character Health BarをCanvas Panelの中に引っ張てきます。
アンカーを開いて左上を選択します。
ヘルスバーの大きさを調整します。
コンテンツフォルダ内にPlayerControllerフォルダを新規に作成してMyPlayerControllerをベースに新規にブループリントを作成します。

フォルダにPlayerControllerを選択し好きな名前を付けます。

HUDOverlayClassのNoneを押します。
HUDOverlayClassをNoneからCharacterHudOverlayに変更してコンパイルと保存を押します。
GameModeフォルダをクリックして中のファイルを開きます。
Player Controller Classのボタンを押します。
プルダウンメニューからMyControllerPlayer_BPを選択してコンパイルと保存を押します。
ワールドセッティングタブを押します。
ゲームモードオーバライドがGameModeフォルダ内のファイル名と一致していることを確認します。
CharacterHealthBarを開き検索窓にpercentと入力してPercentを動かして赤色が表示されるようにします。
CharacterHudOverlayを開いてヘルスバーウィジェットが左上になっていることを確認します。
表示されたHPバーを確認します。
HPバーが大き過ぎるのとパディングが必要なのが分かります。サイズを小さくしてパディングします。パディングはAlignmentのxとyの数値を変えます。
このくらいが一番しっくりきます。






















コメント