[UE4]FortniteなどのゲームにあるSettingを再現する

# 0.目指すべきこと
皆様、いかがお過ごしですか
本日は[Unreal Engine (UE) Advent Calendar 2022](https://qiita.com/advent-calendar/2022/ue)12/10 に記事を投稿させていただくことになりました。
今回は、FortniteやApexなどのゲームにある「Setting」画面のUIを再現していきます。
![Test.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/e0623aef-92c0-7991-13d7-28b916322324.gif)

# 1.構造の確認

今回のUIを作成するにあたりBPは以下の物を作ります。
 ( )内にUMGのタイプを記載するので各自変更をお願いいたします。
- WBP_SettingMenu   ← 設定画面の大枠(FullScreen)
- WBP_CommonSlider ← 左右のボタンを押すだけのUI(Desired) 
- WBP_SettingFPS   ← 今回はFPS値を設定する用(Desired) 
![keki.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/cbfb0231-e54f-2e21-4e73-a9979756ba78.gif)

:::note info
変更する基準について
画面全体を管理する「FullScreen」
画面のパーツとして使用する「Desired」
:::

# 2. 設定背景画面を実装(WBP_SettingMenu) 
LevelBluePrintに以下のBPを作成しキーボードの１を押下時に表示できるようになります。![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/d6fe7e95-3b01-e1c8-e0cb-2ac090d96c4f.png)
# 2.1 Buttonを組み合わせて汎用性のあるパーツを作る(WBP_CommonSlider )
汎用パーツでは、主に以下のことを実装します
- ボタン押下時の制御
- 項目名の表示
![eeeeeee.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/71f5c440-4a79-0508-1c1c-50429cf5c0ed.png)
変数：ItemName　Categoryを" Setting "にして外部から名前を付けられるようにします
![Category-Setting-.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/b5d49e99-4548-4715-ec24-3e932849a0f8.gif)

ボタン押下時にイベントディスパッチャーをコールします。
引数はIntで加算・減算後の値を送ります。

:::note info　
イベントディスパッチャーとは　
[UE4/UE5ゲーム制作講座】超基礎編・これを見ればイベントディスパッチャーがわかる！](https://www.youtube.com/watch?v=9bacwUaJ5nk&ab_channel=%E4%B9%9D%E9%87%8C%E6%B1%9F%E3%82%81%E3%81%84%E3%81%8F%E3%80%90UE4%E3%83%BBUE5%E5%88%9D%E5%BF%83%E8%80%85%E5%90%91%E3%81%91%E8%AC%9B%E5%BA%A7%26%E3%82%AF%E3%83%A9%E3%83%95%E3%83%88%E3%82%B2%E3%83%BC%E3%83%A0%E5%88%B6%E4%BD%9CVTuber%E3%80%91)
:::


上記のBPを組むとこんな感じ
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/a21d2c9f-2dec-0023-e5e2-fe4962f7c2bd.png)

# 2.2 汎用パーツを使って本番パーツを作る(WBP_SettingFPS)
WBP_SettingFPSを開き、Palletaで「WBP_SettingMenu」と入力
汎用パーツを配置します。
![haiti.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/66697988-3016-3b09-49e2-02f8649a1ac0.gif)

:::note alert
画面右端が「Desired」であることを確認してください
:::

「WBP_SettingMenu」と同じ階層にWidgetSwitcherを配置します
![WidgetSiweior.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/4df2b136-9811-e30f-8a12-2d9cbf9b630e.gif)

:::note info
Widget Switcherとは　
[[UE4][UMG]Widget Switcherについて](https://historia.co.jp/archives/9175/)
:::

Widget Switcher下にTextを配置以下の項目を設定します
- 位置
- 大きさ
あとはコピペで増やしてください！
![Text (1).gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/4523f298-4a36-9c31-971d-078cb9a13bc7.gif)

BPの設定を行います。
WBP_CommonSliderの参照を置き以下の関数をコールします
- Init
- Bind Event to PushButton 
![Init.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/99238f19-010c-6d44-56e7-c91e69b45fd2.png)

ここでボタン押下時の処理を登録します。
- Widget SwitcherのGetterを配置
- Set Active Widget Indexをコール
- Add CustonEventに設定
![Add-Custom.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/d0b1ede0-9e72-0ead-776d-bce43e29e2a7.gif)

ここまで出来たら、表示する項目と項目名を決めてください
（画像の赤い部分です!）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/31d050d7-9026-5446-c5af-6f7b57c0ca63.png)

# 3.完成

お疲れ様でした。
後は、WBP_SettingMenu配置し、キーボードの1を押下して確認してください！
![Videotogif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1918199/5e6aaf92-b77f-375c-866b-d2b2b82e07c1.gif)




# 4.最後
お疲れ様でした。
今回、[Unreal Engine (UE) Advent Calendar 2022](https://qiita.com/advent-calendar/2022/ue)12/10 に記事を投稿させていただけて学ぶことが多く大変勉強になりました。

これからもUE4,UE5の記事を投稿していくのでよろしくお願いします！