のぼるゲーム開発備忘録

ゲーム開発のプログラマーです。ゲーム開発関連、調べた内容をアップしていきます。Unityを使用して個人開発を行っています。

【Unity】【Corgi Engine】UI体力ゲージの調査まとめ

f:id:ikeball:20210206161428p:plain

はじめに

今回はCorgi EngineのUI表示を差し替え方を確認してみました。

調べてみたら初期設定では簡易的な設定になっていますが設定次第で、ダメージを受けた際にアイコンを変更したり、アニメーションをいれたりすることもできそうです。

使用アセット

Corgi Engine - 2D + 2.5D Platformer

作業環境

Unity 2019.4.16f1

ゲージUIの場所

Assets/CorgiEngine/Demos/Corgi3D/NewCorgi3Dのシーンで確認しました。

f:id:ikeball:20210124212502p:plain

Cameras/UICamera/Canvas/HUD が、左上の体力ゲージになります。

f:id:ikeball:20210206203108p:plain

HUDの構成

f:id:ikeball:20210207102056p:plain

JetpackBar ... ダッシュ時に使用しているゲージ

HealthBar ... 体力ゲージ

AvatarBackground ... キツネさん表示の後ろの丸と、体の部分

AvatarHead ... キツネさんの顔

ゲージの仕組み

ダメージを受けた際に体力に合わせてゲージが減っています。

f:id:ikeball:20210207103532g:plain

拡大した時の表示はこちら。

f:id:ikeball:20210207104035g:plain

HealthBarについているMMProgressBarにてゲージ管理が行われています。

f:id:ikeball:20210207102714p:plain

 MMProgressBar

BindingsBindings

PlayerID ... このバーに関連付けられたプレイヤーID(Player1等)

ForegroundBar ... メインで動く、表側のバー

DelayedBarDecreasing ... 値が減った時に表示される遅延バー

DelayedBarIncreasing ... 値か増えた時に表示される遅延バー

f:id:ikeball:20210207151356g:plain

DelayedBarDecreasingに黄色でバーを追加した場合

Fill Settings

MinimumBarFillValue ... 対象の値が0%のときの塗りつぶし量。(0.0 - 1.0)

MaximumBarFillValue ... 対象の値が100%のときの塗りつぶし量(0.0 - 1.0)

SetInitialFillValueOnStart ... 開始時にバーの値を初期化するかどうか

InitialFillValue ... バーの初期値(0.0 - 1.0)

BarDirection ... 向き。デフォルトは左から右。上から下や、右から左も設定可能。

 ※上下に動かす場合は、スプライトの基準位置を上基準、下基準に設定する必要があります。

FillMode ... メインバーを操作するための方法。

 LocalScale/FillAmount/Weidth/Heightの設定が可能

TimeScale ... TimeScaleの影響を受けるかどうか。

BarFillMode ... バーのアニメーションの方法。(スピード固定、時間固定)

f:id:ikeball:20210207152334g:plain

BarDirectionをRihgt To Leftに設定

Foreground Bar Settings

LerpForegroundBar ... フォアグラウンドバーの動きをアニメーションするか

※下記全項目はLerpForegroundBarが有効で表示される。

※下記2項目はBarFillModeがスピード固定の場合のみ
LerpForegroundBarSpeedDecreasing ... 減るときのバーアニメーション速度LerpForegroundBarSpeedIncreasing ... 増えるときのバーアニメーション速度

※下記2項目はBarFillModeが時間固定の場合のみ

LerpForegroundBarDurationDecreasing ... 減るときのバーアニメーション時間

LerpForegroundBarDurationIncreasing ... 増えるときのバーアニメーション時間

LerpForegroundBarCurveDecreasing ... 減るときのアニメーションカーブ設定。

LerpForegroundBarCurveIncreasing ... 増えるときのアニメーションカーブ設定。

f:id:ikeball:20210207200126g:plain

LerpForegroundBarSpeedDecreasing を15→1に変更

Delayed Bar Decreasing

DecreasingDelay ... 減少遅延バーが動くまでの遅延時間

LerpDecreasingDelayedBar ... 遅延バーのアニメーションをするかどうかLerpDecreasingDelayedBarSpeed ... アニメーション速度(スピード固定時)

LerpDecreasingDelayedBarDuration ... 前景バーの各更新にかかる時間(時間固定時)

LerpDecreasingDelayedBarCurve ... 遅延バーのアニメーションカーブ

f:id:ikeball:20210207202208g:plain

上は初期状態のまま、DelayedBarDecreasingを設定した状態

下はDecreasingDelayを1.0 → 1.5、LerpDecreasingDelayedBarSpeedを15→8に設定

Delayed Bar Increasing

IncreasingDelay ... 増加遅延バーが動くまでの遅延時間

LerpIncreasingDelayedBar ... 遅延バーのアニメーションをするかどうかLerpIncreasingDelayedBarSpeed ... アニメーション速度(スピード固定時)

LerpIncreasingDelayedBarDuration ... 前景バーの各更新にかかる時間(時間固定時)

LerpIncreasingDelayedBarCurve ... 遅延バーのアニメーションカーブ

Bump

BumpScaleOnChange ... 値が変更されるときにバンプ拡縮アニメーションをするか

BumpOnIncrease ... 値が増える際にバンプするか

BumpOnDecrease ... 値が減る際にバンプするか

BumpDuration ... バンプのアニメーション時間

ChangeColorWhenBumping ... バンプ時にバーが点滅するかどうか

BumpColor ... バンプ時にバーに適用する色

BumpScaleAnimationCurve ... バンプアニメーションのスケール曲線BumpColorAnimationCurve ... バンプアニメーションのカラー曲線

f:id:ikeball:20210207213528g:plain

違いが分かりやすいように基本の色を白黒に変更しています。

設定は下記の状態となります。

要注意点してアニメーションカーブの設定を行わないと変化が現れません。

設定する値もカナリ大きな値を設定しないと効果が感じられません。

f:id:ikeball:20210207213937p:plain

アニメーションカーブは中央の値にkeyを追加しひたすら上に引っ張りました。

f:id:ikeball:20210207230245p:plain

Events

OnBump ... バンプ時の呼び出しイベント

OnBarMovementDecreasingStart ... バーが減少開始時の呼び出しイベント

OnBarMovementDecreasingStop ... バーが減少停止時の呼び出しイベント

OnBarMovementIncreasingStart ... バーの上昇開始時の呼び出しイベントOnBarMovementIncreasingStop ... バーの上昇停止時の呼び出しイベント
※設定したタイミングでスクリプトを呼び出す設定になります。

 ダメージを受けた際に顔アイコンを変えたりHP〇%以下で点滅とかやれそうです。

Text

バーのパーセント表示を行える設定です。

PercentageText ... 対象のText

TextPrefix ... パーセント文字列の前に表示する文字列

TextSuffix ... パーセント文字列の後に表示する文字列

TextValueMultiplier ... 対象の値に掛ける倍率。100を入れると下記動画の状態になる

TextFormat ... 数字の表示のさせ方。{000}で3桁まで0埋めされた状態で表示される。

f:id:ikeball:20210207222727g:plain

HealthBar以下にTextを追加し設定を行いました。

右くクリックからUI/Textを追加します。

f:id:ikeball:20210207223145p:plain

設定内容は以下のものになります。

f:id:ikeball:20210207223214p:plain

Debug

バーの表示確認デバッグ機能です。

非実行中は「DebugNewTargetValue」で値を変更し「DebugSetBar」で更新

実行中には他のボタンも有効になり、各ボタンに書かれている動作を行います。

DebugNewTargetValue ... DebugSetBarボタンを押したときに設定する値

DebugUpdateBar ... 良く分からず。

DebugSetBar ... DebugNewTargetValueの値にゲージを更新する。

Bump ... 実行中に有効。バンプアニメーションを実行。

Plus10Percent ... 実行中に有効。ゲージの値を+10%する。

Minus10Percent ... 実行中に有効。ゲージの値を-10%する。

Debug Read Only

デバッグ向け値の確認パラメータ

BarProgress ... 現在のバーの値

BarTarget ... 対象の値

DelayedBarIncreasingProgress ... 増加時の遅延バーの値

DelayedBarDecreasingProgress ... 減少時の遅延バーの値

ゲージの追加

f:id:ikeball:20210207144337p:plain

ゲージの関連付けはUICameraにある、CUIManagerにて行われています。

2P向けや、敵、ボス向けの新しくゲージを追加した場合はGUIManagerのHealthBarsに追加する必要があります。

f:id:ikeball:20210207144800p:plain

その後、MMProgressBarのPlayer IDを任意の名前に変更します。

ゲージアイコン変更

f:id:ikeball:20210208012225p:plain

UICameraのプレハブを開き、Canvas/HUD/AvatarHeadの画像を差し替えることでアイコンの変更ができます。

f:id:ikeball:20210208012624p:plain

※上記の画像でAvatarBGと言うのを用意しています。背景の色だけ画像ソフトで切り抜き背景色の設定がUnity上のColorから切り替えられるようにしました。

おわりに

 ここまで確認頂きありがとう御座いました。遅延ゲージと、バンプの使用で初期設定よりは見栄えが良くなりそうだと感じました。CorgiEngineの理解がまた一つ進みました。

今後も記事アップしていきたいと思います。

関連記事

ikeball.hatenablog.com

ikeball.hatenablog.com