TopDownEngineサンプルのHUDを消したときの影響範囲

前回Unity で見下ろし型ゲームを作るアセット TopDown Engineサンプルゲーム Koala Dungeon の画面左上の HP バーなどの HUDキャラクター画像を差し替えました。

TopDown Engine KoalaDungeon の HUD のアバター画像も主人公の画像に差し替えました。

TopDown Engine KoalaDungeon の HUD のアバター画像も主人公の画像に差し替えました。

しかし、ゲームによっては、HUD の一部を表示しない場合もあるでしょう。
今回は、 HUD の部品を消した場合の影響範囲とその対処法について紹介します。
※ Unity は 2021.3.14f1、TopDown Engine は 3.1.1 です。主人公のキャラクター画像はぴぽや倉庫様のキャラクターチップを使っています。

実際に消してテストプレイした結果

Unpack Completly で HUD を含む KoalaCameras 全体のプレハブとの関連付けを解除しました。

UD を含むゲームオブジェクト群のプレハブ関連付けを解除し、HUDの2つの要素を削除しました。

UD を含むゲームオブジェクト群のプレハブ関連付けを解除し、HUDの2つの要素を削除しました。

その後 HUD の HealthBar / AbatarBackground ゲームオブジェクトを削除し、テストプレイをしましたが敵からダメージを受けたりして HP が変わっても問題なく動作し、Console にもエラーや警告のメッセージは表示されませんでした。

TopDown Engine KoalaDungeon の HUD の2項目を削除してテストプレイしても問題なく動作しました。

TopDown Engine KoalaDungeon の HUD の2項目を削除してテストプレイしても問題なく動作しました。

HUD が不要ならば HUD ゲームオブジェクトを消しても問題なく動作するようです。
様々な組み合わせを試すべきかもしれませんが、要件としては HUD を表示したくないという要件はこれで十分です。
TopDown Engine のカスタマイズ性の良さを確認できる結果になりました。
※ 削除した HUD は Hierarchy ウィンドウで KoalaCameras の階層から←ボタンで抜けてシーンのゲームオブジェクトのツリー表示にしたあと Undo (Ctrl + Z) 数回元の状態戻しました

ここからは、HP が減ったときに HealthBar も減る処理があるはずなので、その部分を調べて、HUD 要素をどのように設定し、バーを操作しているのかを確認してみようと思います。

TopDown Engine のダメージ処理

購入したアセットですが、内部のコードを掲載する権利はないかもしれないので、ざっくり記述します。
Health コンポーネントではダメージ処理の際に、 HealthBar があるかどうかを確認したあと、あれば HealthBar の値を更新していました。
このように、設定が有効かどうかを確認してから処理をするため、HUD ゲームオブジェクトを削除してもエラーメッセージなどが発生せずに済んだようです。

HUD の HealthBar と AbatarBackground の登録場所

HUDHealthBarAbatarBackground ゲームオブジェクトは、その数段上位の KoalaUICamera ゲームオブジェクトGUIManager コンポーネントに設定されます。
HUD ゲームオブジェクトは空のゲームオブジェクトであり、登録されていると HUD 全体の表示/非表示を変更できます。

HP を横長のメーターで表示する HealthBarGUIManagerHealthBars に複数指定することができ、サンプルでは左上の 1 個だけが登録されています。
登録された MMProgressBar コンポーネントHP の表示と連動するようになります。
MMProgressBar コンポーネントは、直線状にメーターが増減するプログレスバーの UI です。

HUD の HP ゲージとキャラ画像は KoalaUICamera ゲームオブジェクトの GUIManager に設定されています。

HUD の HP ゲージとキャラ画像は KoalaUICamera ゲームオブジェクトの GUIManager に設定されています。

キャラ画像を表示する AvatarBackgroundGUIManagerDashBars に複数指定することができ、 HealthBar と同じくサンプルでは左上の 1 個だけが登録されています。
登録された MMRadialProgressBar コンポーネントは Dash (XBox 互換ゲームパッドでは Y ボタン)を行った際に待ち時間として円グラフが変化しました
※サンプルゲームの既定の入力については Input | TopDown Engine Documentation で説明されています。

KoalaDungeon でゲームパッドXBoxの Y ボタンを押すとダッシュでき、次回使用までのウェイトに DashBar が使われているようです。

KoalaDungeon でゲームパッドXBoxの Y ボタンを押すとダッシュでき、次回使用までのウェイトに DashBar が使われているようです。

しかし、Unity エディタの Inspector ウィンドウで直接 MMRadialProgressBar コンポーネントTolerance の値を変更しても見た目変化しませんでした。
かわりに同じく追加されている Image コンポーネントの値を変更すると Raidal 360 なので、先ほどの直線状のバーの動きとは異なり円グラフのように変化しました。
Dash の動作では変化するので、 MMRadialProgressBar コンポーネントの Tolerance の値を変えるだけではなく他の設定も必要なのかもしれません。

Unity Image で Radial 360 を選択したときの値にともなう表示の変化(円グラフのように変化)

Unity Image で Radial 360 を選択したときの値にともなう表示の変化(円グラフのように変化)

HUD を削除した際の GUIManager のフィールド

以前に公式動画「TopDown Engine Tutorial : How to create a Character?」で主人公のゲームオブジェクトの見た目を差し替えた際Missing になったフィールドを None に変更していました。
今回は HUD ゲームオブジェクトを削除したため、その登録場所KoalaUICamera ゲームオブジェクトGUIManager コンポーネントの HUD 関係のゲームオブジェクトやコンポーネントを登録するフィールドの設定は Missing になってしまいました。

HUD が必要ない場合削除するだけでもプレイはできますが、GUIManager の設定は Missing と表示されます。

HUD が必要ない場合削除するだけでもプレイはできますが、GUIManager の設定は Missing と表示されます。

この状態でテストプレイしても問題はありませんでしたが、先ほどの公式の手順と同じく MissingNone に変えたほうが作法としては良いかもしれません。

参照サイト Thank You!

 

コメント

Ads Blocker Image Powered by Code Help Pro

お願い - Ads Blocker Detected

このサイトは広告を掲載して運営しています。

ポップアップを閉じて閲覧できますが、よろしければ

このサイト内の広告を非表示にする拡張機能をオフにしていただけませんか?

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

We have detected that you are using extensions to block ads. Please support us by disabling these ads blocker.

タイトルとURLをコピーしました