フラッシュセールライセンス 30% オフ、同じ価格で増量トークンパック。ライセンス 30% オフ + 増量トークンパック終了まで …料金を見る → V2 の新機能を見る · 刷新されたインターフェース、Crew、Blueprint から C++ への変換、マルチプレイヤーのプレイテスト、エディター内アップデート 変更履歴を読む →
すべての記事
6 分で読めます

Unreal Engine のダメージ数字:AI で浮かぶダメージ表示を作る

Unreal Engine で浮かぶダメージ数字を作る方法。通常ヒットは白、22 以上のクリティカルは金色で、数字は 120 ユニット上昇してフェードアウト。AI への 1 回の依頼で作成。

Unreal Engine の浮かぶダメージ数字は、3 つの小さな要素でできています。ダメージを受けて体力を覚えているもの、ワールド内の適切な位置に現れる小さな文字、そしてそれを上へ動かしてフェードアウトさせるルールです。ゲームで見る数字の正体は、これだけです。1 秒足らずで消える小さなアクターにすぎません。いちばん簡単な作り方は、システム全体を 1 回の依頼で AI に作らせることです。

このチュートリアルでは、Ultimate Engine CoPilot が、白い通常ヒットと金色のクリティカルヒットに対応する、訓練用ダミーと浮かぶダメージ数字を作ります。実際に使ったプロンプト、AI が画面を見て見つけたバグ、そして浮かぶダメージ数字の仕組みのやさしい解説をお届けします。

完成したシステムの動き

雪の中に、訓練用ダミーが 2 体立っています。G キーを押すと、いちばん近いダミーが攻撃を受け、その上に数字が浮かび上がってフェードアウトします。通常ヒットは白、クリティカルヒットは金色で、少し大きく、感嘆符がつきます。体力はヒットのたびに減り、0 になるとダミーは倒れて消えます。

雪の上の 2 体の訓練用ダミーの近くに立つプレイヤー

400 ユニット離れた 2 体のダミー。プレイヤーは近いほうの射程内にいます。

プロンプト

これをコピーして、ダメージの範囲やクリティカルのしきい値を変えながら、AI が何を作るか試してみてください。

Make floating damage numbers. Create BP_TrainingDummy in /Game/Series/EP40_DamageNumbers, a dummy made from a cylinder body and a sphere head with 100 health, and WBP_DamageNumber, a text widget. Create BP_DamageController in the same folder, an actor that I place once in the level, that listens for the G key. Pressing G hits the nearest training dummy within 600 units for a random damage from 10 to 25. Each hit spawns a floating number above the dummy that rises 120 units over 0.8 seconds and fades out: normal hits are white, hits of 22 or more are critical, gold, bigger and written with an exclamation mark. When a dummy reaches 0 health it falls over and is destroyed after 1 second. Keep the damage range, the critical threshold and the rise height as variables. Place two dummies near the player start, 400 units apart. Then play test it: teleport the player next to a dummy, press G five times, check each hit spawns a number with the right colour, check the dummy health goes down, check the dummy is destroyed at 0, and fix anything that does not work.

依頼文のうち、どこが数値で、どこが言葉かに注目してください。ルールは数値で書かれています。10 から 25、クリティカルは 22、600 ユニット、上に 120、0.8 秒です。見た目は言葉で書かれています。白と金色、大きめ、感嘆符です。この使い分けは、どんなプロンプトにも役立ちます。

AI はどう作るのか

AI はプロジェクトを読み込んでから、作業を始めます。4 つのアセットが現れます。ダミー、数字のウィジェット、コントローラー、そしてウィジェットをワールドに運ぶ追加のアクターです。ウィジェットがワールドに存在するには小さなアクターが必要だと、AI が自分で判断して追加しました。

コントローラーにはコンパイルエラーがありました。ある変数に古い型が残っていたのです。AI はそれに気づき、問題のない形でグラフのその部分を作り直し、もう一度コンパイルしました。

最も近いダミーの検索と数字のスポーンを持つ BP_DamageController のイベントグラフ

コントローラーのグラフ:最も近いダミーを探し、ダメージを乱数で決め、与えて、数字をスポーンします。

数値では分からなかったバグ

G キーの 1 回目は正しく動きます。ダメージは 22、体力は 100 から 78 になり、数字が上昇しました。そのあと AI がスクリーンショットを見て、数値では分からなかったものを見つけます。ダミーの胴体がルートになっていたため、胴体は半分地面に埋まり、頭がその上に浮いていたのです。AI はダミーのルートを作り直し、テスト全体をもう一度実行しました。AI に画面を見させるとよいのは、このためです。

レポート

5 回のヒット、体力の値、意外かもしれない点を並べた AI のレポートの表

すべてのチェックに合格。キー、色、スクリーンショットに関する注意点も載っています。

レポートには、すべてのチェックをまとめた表があります。

  • 5 回押して、5 回ヒットしました。色は、白、白、金、白、金です。
  • 体力は、100、83、69、45、29、6 と推移しました。
  • 射程外の 667 ユニットにあるダミーは、無傷です。
  • 体力が 0 になったダミーは倒れ、とどめの一撃から約 1 秒後に破壊されます。
  • 数字は、0.8 秒が終わる少し前に 101 ユニット上昇しています。

意外かもしれない点も書かれています。

  • G キーはキーイベントではなく、毎フレーム確認する方式です。AI が従来のキーイベントを扱うツールを見つけられなかったためです。プレイ中の動作は同じで、代わりに Enhanced Input アクションを頼むこともできます。
  • 倒れている最中のダミーは対象から外されるので、次のヒットは、次に近いダミーに入ります。
  • AI は金色の数字を画面で撮影していないため、感嘆符と大きめのサイズは、グラフからしか確認されていません。
  • 最後の実行では、ダミーのヒットイベントを 100 ダメージで直接呼び出して倒しました。それより前の実行では、G キーを押すだけでダミーを倒しており、倒れ方も破壊のされ方も同じでした。

浮かぶダメージ数字のしくみをやさしく解説

G キーを押すと、コントローラーはダミーを順に調べ、射程内でいちばん近いものを選びます。最小値と最大値のあいだでランダムな数を選び、ダミーに「このダメージを受けて」と伝えます。ダミーはそれを自分の体力から引きます。

次に、コントローラーはダミーの頭の上に小さな数字のアクターをスポーンし、ダメージを渡します。ダメージがクリティカルのしきい値以上なら、文字は金色で、大きく、感嘆符がつきます。数字のアクターには Timeline があります。0.8 秒かけて、上昇の高さの分だけ上へ動き、不透明度は 1 から 0 になります。そのあと、自分自身を破壊します。範囲、しきい値、上昇の高さは変数なので、4 つの数値を変えるだけで、控えめな数字にも、派手なアーケード風の数字にもできます。

拡張のアイデア

  • 炎のダメージと回復で別の色を使う。
  • 少し左右にずれて動く数字。重なって積み上がらないようにします。
  • クリティカルのときは音が高くなるヒット音。

ダメージ数字プロンプトの 4 つのコツ

  1. ダメージの範囲とクリティカルのしきい値を数値で指定する。
  2. 見た目は言葉で説明する。色、大きさ、記号。
  3. 数字がどの高さまで、どれくらいの時間で上昇するかを書く。
  4. 値だけでなく、スクリーンショットも見るよう AI に頼む。

よくある質問

Unreal Engine 5 で浮かぶダメージ数字を作るにはどうすればよいですか?

ヒットのたびに、テキストウィジェットを持つ小さなアクターを対象の上にスポーンします。Timeline で上へ動かしながらフェードアウトさせ、そのあと破壊します。色は、ダメージがクリティカルのしきい値に達したかどうかで選びます。

クリティカルヒットの見た目を変えるにはどうすればよいですか?

ダメージをクリティカルのしきい値と比べます。しきい値以上なら、金色、大きめのサイズ、感嘆符を使います。

AI はなぜダミーのルートを作り直したのですか?

スクリーンショットで、ダミーの胴体が半分地面に埋まり、頭が浮いていたからです。胴体が Blueprint のルートになっていました。AI は正しいルートを追加して、テストをもう一度実行しました。

プロジェクトで試してみましょう

Ultimate Engine CoPilot で何が作れるかは 製品ページ でご覧いただけます。入手は Fab からどうぞ。AI Blueprint ジェネレーター のしくみもご覧ください。

このシリーズの他の作例: Unreal Engine 近接戦闘、Unreal Engine 遠距離武器、Unreal Engine 爆発する樽。

どう思いましたか?

エディタで試してみよう
Unreal Engine 5 向けの 1,655 のツール。
プラグインを入手