【UEFN】タイクーンの基本的な実装方法
背景:
タイクーンゲームを作りたいけど、実装方法が書かれた記事が少ない、、、と僕自身困ったのでタイクーンの実装方法について解説していきます!
つくるもの:
今回はタイクーンの基本となる、必要な資源がある状態でゾーンに入った時にイベントを起こす仕組みの実装方法を解説します。
具体的には下記の動画のように、木を持っていない何も起こりませんが、15個持っていると建物が下から出現する、というものです。
手順:
実装の流れは以下です。
1.建物が出現する仕組みをシーケンサーで作成
2.各小道具の設定
3.Verseで資源があるかを確認、イベント実行の実装
1. 建物が出現する仕組みをシーケンサーで作成
まずは適当な建物を用意します。
次にシーケンサーを用いて建物が出現する動きを作りましょう。
コンテンツドロワーの空いている個所を右クリックして、「シネマティックス」>「レベルシーケンス」を選択。
ダブルクリックすると以下のような画面が出てきます。
そして左上の「追加」>「シーケンサーにアクタを追加」から、用意した建物を選択します。
次にプラスボタンから「トランスフォーム」を選択します。
そして以下のひし形プラスボタン(赤枠)をクリックし、動きを設定していきます。(まだしません)
次に建物を地面に埋めて「0.00」の位置で設定し、建物を戻した(表示している)状態で「5.00」に設定します。
今回は5秒間だと表示させるまで少し長いので、設定のマークから赤枠の部分を1.00に変更します。
スペースボタンを押すと以下のようになります。
(タイクーンぽい!)
これでシーケンサーの設定は終了です。
2. 各小道具の設定
「Device」から「ムービーシーケンスの仕掛け」と「ミューテーターゾーン」、「条件付きボタン」を設置。
そしてムービーシーケンスの仕掛けは赤枠のように設定します。
ver29.40でバグが発生しているのでこちらも参考にしてみてください。
条件付きボタンを以下のように木材に設定します。
3. Verseで資源があるかを確認、イベント実行の実装
そしてプレイヤーがこのゾーンに入り、かつ必要な資源を持っている場合のみ、シーケンスが発動し、建物が地面から出現するよう実装します。
これはUEFNのみでも実装できますが、今回はVerseを用いて実装します。
(実際ゲームを作るとなるとVerseの方が作業を短縮できます)
以下がコード全体です。
using { /Fortnite.com/Devices }
using { /Verse.org/Simulation }
using { /UnrealEngine.com/Temporary/Diagnostics }
confirm_resourse := class(creative_device):
@editable MZ:mutator_zone_device = mutator_zone_device{}
@editable MS:cinematic_sequence_device = cinematic_sequence_device{}
@editable conditional_button : conditional_button_device = conditional_button_device{}
OnBegin<override>()<suspends>:void=
MZ.AgentEntersEvent.Subscribe(Activate_MZ)
Activate_MZ(Agent:agent):void=
Wood := conditional_button.GetItemCount(Agent, 0)
if(Wood >= 15):
MS.Play(Agent)
解説していきます。
@editable MZ:mutator_zone_device = mutator_zone_device{}
@editable MS:cinematic_sequence_device = cinematic_sequence_device{}
@editable conditional_button : conditional_button_device = conditional_button_device{}
このコードはUEFNで用意した小道具をVerseで扱えるようにするためのものです。
以下のようにUEFN上で小道具を設定できるようになります。
MZ.AgentEntersEvent.Subscribe(Activate_MZ)
このコードはミューテーターゾーンに入ったプレイヤーに対して「Activate_MZ」というイベントを実行するものです。
Activate_MZ(Agent:agent):void=
Wood := conditional_button.GetItemCount(Agent, 0)
if(Wood >= 15):
MS.Play(Agent)
これは「Activate_MZ」イベントの内容を書いています。
条件付きボタンで設定したアイテム(Wood)において、プレイヤーが15個以上保有している時、「ムービーシーケンスの仕掛け」を有効にする、というものです。
そして保存してビルドし、UEFN上で小道具の設定をすれば完成です!
最後に:
今回は木材を使用していますが、Verseを用いることでアイテムを使わず独自通貨を実装することもできます。
今後も同様にタイクーンの実装方法やその他UEFN、Verseに関することをnoteにてまとめていきます。
これまでの記事もぜひ参考にしてみてください!