このようなVerseでプロップにHPをつける仕組みを作っていきます。
![](https://withcreative.games/wp-content/uploads/2023/11/Fortnite-2023.11.01-10.20.59.27.gif)
コードの全体
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /UnrealEngine.com/Temporary/SpatialMath }
using { /Fortnite.com/Characters }
TowerHP_device := class(creative_device):
@editable PM:prop_manipulator_device = prop_manipulator_device{}
@editable Bill : billboard_device = billboard_device{}
@editable var HP:int = 3000
OnDamagedProp(Agent : agent) : void =
set HP -=10
Bill.SetText(StringToMessage("{HP}"))
StringToMessage<localizes> (value:string) <computes> :message = "{value}"
OnBegin<override>()<suspends>:void=
PM.DamagedEvent.Subscribe(OnDamagedProp)
コードの解説
冒頭
今回の仕組みでは小道具操作機とビルボードを使うため、10,11行目でそれぞれ定義します。
12行目でプロップのHPを定義します。
関数宣言
15行目から OnDamagedProp 関数を宣言しています。
コードブロックの意味は以下の通りです。
この関数は24行目のDamagedEventをきっかけに呼び出されるため、パラメータはagent型となります。パラメータの定数は使いませんが、書かないとエラーが出てしまうので書いています。
16行目でHP変数の値を-10していますが、この数値が1回の攻撃でプレイヤーが与えられるダメージになります。
17行目でStringToMessage関数によりstring型である”{HP}”をmessage型へ変換します。
それをSetText関数によりビルボードに表示させます。
20行目からStringToMessage関数を宣言しています。
これはこの関数を呼び出した際の引数をstring型からmessage型に変換するものです。
ビルボードのSetText関数はstring型ではなくmessage型を必要とするため変換が必要となります。
OnBegin~
コードブロックの意味は
小道具操作機でDamagedEventが発生したらOnDamageProp関数を呼び出す
となります。
仕掛けの設置
今回の仕組みで使う仕掛けは小道具操作機とビルボードです。
まず、HPをつけたいプロップをビューポート上に設置します。
![](https://withcreative.games/wp-content/uploads/2023/11/スクリーンショット-2023-11-01-092935.png)
次に、小道具操作機をプロップに重ねて配置します
![](https://withcreative.games/wp-content/uploads/2023/11/スクリーンショット-2023-11-01-092958.png)
プロップの近くにビルボードを設置します。
詳細で以下のように設定します。
- テキスト→3000
- テキストの行末揃え→Center
- テキストサイズ→24
- テキストカラー→黒
- ディスプレイモード→両面
![](https://withcreative.games/wp-content/uploads/2023/11/スクリーンショット-2023-11-01-093024.png)
Verseで書いたTowerHPデバイスの詳細で
以下のように設定します。
![](https://withcreative.games/wp-content/uploads/2023/11/スクリーンショット-2023-11-01-105412.png)
IslandSetting0の詳細で以下のように設定します。
- 環境ダメージ→オフ
以下のように動けば完成です。
![](https://withcreative.games/wp-content/uploads/2023/11/Fortnite-2023.11.01-10.20.59.27-1.gif)
コメント