UEFNのVerseでアイテム選択メニューUIウイジェットを作成
OneShotBallistic (島コード: 7218-4337-3934)という島で作ったアイテム選択メニューのverseのコードを記載しておきます。
苦労して作ったもののそのうち作り直すつもりなので、メモ代わりとして残しておきます。
目次
アイテム選択メニューのUIの説明
下記画像は「GET」ボタンを押下すると各アイテムを取得することができるアイテム選択メニューの画面キャプチャです。
このメニューは、Verseによって各アイテムの透過PNG画像を表示し、正方形の背景色やボタンの生成を行っています。

アイテム選択メニューのUIを生成するVerseのコード
アイテム付与の処理なども別のverseファイルとして作成しているのですが、そういう部分は端折って、ここではUIの生成のverseファイルだけを記載します。
using { /Fortnite.com/Devices}
using { /Verse.org/Simulation}
using { /UnrealEngine.com/Temporary/UI}
using { /Fortnite.com/UI}
using { /UnrealEngine.com/Temporary/SpatialMath}
using { /UnrealEngine.com/Temporary/Diagnostics }
using { /Verse.org/Colors }
using { /Verse.org/Assets }
# NOTE: デバッグ用のログ出力のためのもの
log_weapon_select_menu_device := class(log_channel){}
weapon_select_menu_device := class(creative_device):
# NOTE: デバッグ用のログ出力のためのもの
Logger:log = log{Channel:=log_weapon_select_menu_device}
# UI にテキストとして表示するローカライズ可能なメッセージ
TextForMyUI<localizes>(InText:string):message = "{InText}"
# プレイヤーと、そのプレイヤーの UI に追加されている可能性があるウィジェットとの間のマッピング
var MaybeMyUIPerPlayer:[player]?overlay = map{}
# インベントリ制御
# NOTE: 別のverseファイルとして自作したインベントリにアイテム付与する際の処理をまとめたクラス
@editable
InventoryCtrl:inventory_control_device = inventory_control_device{}
# 入力トリガーデバイス
@editable
OpenMenuInputTriggerDevice:input_trigger_device = input_trigger_device{}
# メニューを開くSE
@editable
OpenSEAudioPlayerDevice:audio_player_device = audio_player_device{}
# メニューを閉じるSE
@editable
CloseSEAudioPlayerDevice:audio_player_device = audio_player_device{}
# 武器を選択したSE
@editable
SelectSEAudioPlayerDevice:audio_player_device = audio_player_device{}
# ラウンド開始時
OnBegin<override>()<suspends>:void=
# メニューを開く入力トリガーの押下時のイベントリスナー
OpenMenuInputTriggerDevice.ReleasedEvent.Subscribe(OnOpenWeaponSelectMenuUI)
# ===================================
# 入力トリガー
# ===================================
# 武器選択メニューを開く
OnOpenWeaponSelectMenuUI(Agent:agent, HoldDuration:float):void=
OpenWeaponSelectMenuUI(Agent)
# ===================================
# 武器選択メニューの処理
# ===================================
# 武器選択メニューを開く
OpenWeaponSelectMenuUI(Agent:agent):void=
if (InPlayer := player[Agent], PlayerUI := GetPlayerUI[InPlayer]):
if (MyUI := MaybeMyUIPerPlayer[InPlayer]?):
# NOTE: デバッグ用ログ出力の条件分岐が残ってるだけ。
Logger.Print("OpenUI nope")
else:
# メニューのUIウィジェットを表示
NewUI := CreateWeaponSelectMenuUI()
# NOTE: InputMode := ui_input_mode.All でキャンバス内の要素をインタラクト可能にする
PlayerUI.AddWidget(NewUI, player_ui_slot{ InputMode := ui_input_mode.All })
if (set MaybeMyUIPerPlayer[InPlayer] = option{NewUI}) {}
# SE再生
OpenSEAudioPlayerDevice.Play(Agent)
# 武器選択メニューを閉じる
CloseWeaponSelectMenuUI(Agent:agent):void=
if (InPlayer := player[Agent], PlayerUI := GetPlayerUI[InPlayer]):
if (MyUI := MaybeMyUIPerPlayer[InPlayer]?):
# メニューのUIウィジェットを非表示にする
PlayerUI.RemoveWidget(MyUI)
if (set MaybeMyUIPerPlayer[InPlayer] = false) {}
# SE再生
CloseSEAudioPlayerDevice.Play(Agent)
# ===================================
# 武器選択メニューの中で行う処理
# ===================================
# 武器を付与する
# NOTE: InventoryCtrl は別のverseファイルとして自作したインベントリにアイテム付与する際の処理をまとめたクラス
SelectPistol1(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectPistol1(WidgetMessage.Player) # Hand Cannon
SelectAssaultRifle1(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectAssaultRifle1(WidgetMessage.Player) # Enforcer Assault Rifle
SelectAssaultRifle2(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectAssaultRifle2(WidgetMessage.Player) # Striker Assault Rifle
SelectAssaultRifle3(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectAssaultRifle3(WidgetMessage.Player) # Nemesis Assault Rifle
SelectSMG1(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectSMG1(WidgetMessage.Player) # Thunder Burst SMG
SelectSMG2(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectSMG2(WidgetMessage.Player) # Drum Gun
SelectSMG3(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectSMG3(WidgetMessage.Player) # Hyper SMG
SelectShotgun1(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectShotgun1(WidgetMessage.Player) # Hammer Pump Shotgun
SelectShotgun2(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectShotgun2(WidgetMessage.Player) # Frenzy Auto Shotgun
SelectSniperRifle1(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectSniperRifle1(WidgetMessage.Player) # Reaper Sniper Rifle
# 消耗品を付与する
SelectItemBtn1(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectItem1(WidgetMessage.Player) # Impulse Granade
SelectItemBtn2(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectItem2(WidgetMessage.Player) # Smoke Granade
SelectItemBtn3(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectItem3(WidgetMessage.Player) # Bubble Shield
SelectItemBtn4(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectItem4(WidgetMessage.Player) # Frang Granade
SelectItemBtn5(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectItem5(WidgetMessage.Player) # Flash Bang Granade
SelectItemBtn6(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectItem6(WidgetMessage.Player) # Recon Granade
SelectItemBtn7(WidgetMessage:widget_message):void=
SelectSEAudioPlayerDevice.Play(WidgetMessage.Player) # SE再生
InventoryCtrl.SelectItem7(WidgetMessage.Player) # Proximity Mine
# 武器選択メニューを閉じる
CloseUIinWeaponSelectMenu(WidgetMessage:widget_message):void=
CloseWeaponSelectMenuUI(WidgetMessage.Player)
# ===================================
# UIの生成
# ===================================
CreateWeaponSelectMenuUI():overlay =
# ================= UIウィジェット内に表示するボタン =================
# 武器ボタン
UIPistolBtn1:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIAssaultRifleBtn1:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIAssaultRifleBtn2:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIAssaultRifleBtn3:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UISMGBtn1:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UISMGBtn2:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UISMGBtn3:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIShotgunBtn1:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIShotgunBtn2:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UISniperRifleBtn1:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
# ボタン押下時のイベント登録
UIPistolBtn1.OnClick().Subscribe(SelectPistol1)
UIAssaultRifleBtn1.OnClick().Subscribe(SelectAssaultRifle1)
UIAssaultRifleBtn2.OnClick().Subscribe(SelectAssaultRifle2)
UIAssaultRifleBtn3.OnClick().Subscribe(SelectAssaultRifle3)
UISMGBtn1.OnClick().Subscribe(SelectSMG1)
UISMGBtn2.OnClick().Subscribe(SelectSMG2)
UISMGBtn3.OnClick().Subscribe(SelectSMG3)
UIShotgunBtn1.OnClick().Subscribe(SelectShotgun1)
UIShotgunBtn2.OnClick().Subscribe(SelectShotgun2)
UISniperRifleBtn1.OnClick().Subscribe(SelectSniperRifle1)
# 消耗品ボタン
UIItemBtn1:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIItemBtn2:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIItemBtn3:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIItemBtn4:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIItemBtn5:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIItemBtn6:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIItemBtn7:button_loud = button_loud{ DefaultText := TextForMyUI("Get") }
UIItemBtn1.OnClick().Subscribe(SelectItemBtn1)
UIItemBtn2.OnClick().Subscribe(SelectItemBtn2)
UIItemBtn3.OnClick().Subscribe(SelectItemBtn3)
UIItemBtn4.OnClick().Subscribe(SelectItemBtn4)
UIItemBtn5.OnClick().Subscribe(SelectItemBtn5)
UIItemBtn6.OnClick().Subscribe(SelectItemBtn6)
UIItemBtn7.OnClick().Subscribe(SelectItemBtn7)
# 閉じるボタン
# NOTE: button_quiet の方が閉じるボタンとしては適切だが、ボタンの見た目が薄すぎて視認性が悪かったので button_regular にした
UIQuietBtn:button_regular = button_regular{ DefaultText := TextForMyUI("Close") }
UIQuietBtn.OnClick().Subscribe(CloseUIinWeaponSelectMenu)
# ================= UIウィジェットを作成 =================
WeaponSelectMenuWidget := overlay:
Slots := array:
# ================= 背景色 =================
# 全体の背景
overlay_slot:
HorizontalAlignment := horizontal_alignment.Fill
VerticalAlignment := vertical_alignment.Fill
Widget := color_block:
DefaultColor := MakeColorFromHex("000000")
DefaultOpacity := 0.5
DefaultDesiredSize := vector2{ X := 0.0,Y := 0.0 }
# 背景の賑やかし画像(赤いドット画像)(左下)
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Bottom
Padding := margin{ Left := 0.0, Bottom := 0.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.bg_pattern1 # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# 背景の賑やかし画像(赤いドット画像)(右上)
overlay_slot:
HorizontalAlignment := horizontal_alignment.Right
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Right := 0.0, Top := 0.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.bg_pattern2 # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景1列目(紫背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 40.0, Top := 45.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 40.0, Top := 354.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 40.0, Top := 663.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景1列目(青背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 60.0, Top := 55.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 60.0, Top := 364.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 60.0, Top := 673.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景1列目(白背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 50.0, Top := 50.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 50.0, Top := 359.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 50.0, Top := 668.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景2列目(紫背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 352.0, Top := 45.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 352.0, Top := 354.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 352.0, Top := 663.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景2列目(青背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 372.0, Top := 55.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 372.0, Top := 364.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 372.0, Top := 673.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景2列目(白背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 362.0, Top := 50.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 362.0, Top := 359.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 362.0, Top := 668.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景3列目(紫背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 664.0, Top := 45.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 664.0, Top := 354.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 664.0, Top := 663.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景3列目(青背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 684.0, Top := 55.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 684.0, Top := 364.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 684.0, Top := 673.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景3列目(白背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 674.0, Top := 50.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 674.0, Top := 359.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 674.0, Top := 668.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景4列目(紫背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 976.0, Top := 45.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 976.0, Top := 354.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 976.0, Top := 663.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景4列目(青背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 996.0, Top := 55.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 996.0, Top := 364.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 996.0, Top := 673.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景4列目(白背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 986.0, Top := 50.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 986.0, Top := 359.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 986.0, Top := 668.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景5列目(紫背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1288.0, Top := 45.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1288.0, Top := 354.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1288.0, Top := 663.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景5列目(青背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1308.0, Top := 55.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1308.0, Top := 364.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1308.0, Top := 673.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景5列目(白背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1298.0, Top := 50.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1298.0, Top := 359.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1298.0, Top := 668.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景6列目(紫背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1600.0, Top := 45.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1600.0, Top := 354.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#ff00ff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# overlay_slot:
# HorizontalAlignment := horizontal_alignment.Left
# VerticalAlignment := vertical_alignment.Top
# Padding := margin{ Left := 1600.0, Top := 663.0 }
# Widget := color_block:
# DefaultColor := MakeColorFromHex("#ff00ff")
# DefaultOpacity := 1.0
# DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景6列目(青背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1620.0, Top := 55.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1620.0, Top := 364.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("#00ffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# overlay_slot:
# HorizontalAlignment := horizontal_alignment.Left
# VerticalAlignment := vertical_alignment.Top
# Padding := margin{ Left := 1620.0, Top := 673.0 }
# Widget := color_block:
# DefaultColor := MakeColorFromHex("#00ffff")
# DefaultOpacity := 1.0
# DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= 武器の背景6列目(白背景) =================
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1610.0, Top := 50.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1610.0, Top := 359.0 }
Widget := color_block:
DefaultColor := MakeColorFromHex("ffffff")
DefaultOpacity := 1.0
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# overlay_slot:
# HorizontalAlignment := horizontal_alignment.Left
# VerticalAlignment := vertical_alignment.Top
# Padding := margin{ Left := 1610.0, Top := 668.0 }
# Widget := color_block:
# DefaultColor := MakeColorFromHex("ffffff")
# DefaultOpacity := 1.0
# DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= アイコン画像1列目 =================
# フレンジーオートショットガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 50.0, Top := 50.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Shotgun_FrenzyAutoShotgun # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ハンマーポンプショットガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 50.0, Top := 359.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Shotgun_HammerPumpShotgun # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# サンダーバーストサブマシンガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 50.0, Top := 668.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_SMG_ThunderBurstSMG # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= アイコン画像2列目 =================
# ハイパーサブマシンガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 362.0, Top := 50.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_SMG_HyperSMG # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ドラムガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 362.0, Top := 359.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_SMG_DrumGun # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ネメシスアサルトライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 362.0, Top := 668.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_AR_Nemesis # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= アイコン画像3列目 =================
# エンフォーサーアサルトライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 674.0, Top := 50.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_AR_EnforcerAR # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ストライカーアサルトライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 674.0, Top := 359.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_AR_StrikerAR # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ハンドキャノン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 674.0, Top := 668.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Pistol_HandCannon # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= アイコン画像4列目 =================
# リーパースナイパーライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 986.0, Top := 50.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Sniper_ReaperSniperRifle # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# フラッシュバン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 986.0, Top := 359.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Item_Flashbang # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# スモークグレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 986.0, Top := 668.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Item_SmokeGrenade # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= アイコン画像5列目 =================
# インパルスグレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1298.0, Top := 50.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Item_ImpulseGrenade # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# バブルシールド
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1298.0, Top := 359.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Item_BubbleShield # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# フラググレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1298.0, Top := 668.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Item_FragGrenade # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= アイコン画像6列目 =================
# リーコングレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1610.0, Top := 50.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Item_ReconGrenade # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# 地雷
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1610.0, Top := 359.0 }
Widget := texture_block:
DefaultImage := OneShotBallistic.Icons.Icon_Item_ProximityMine # プロジェクト名.フォルダ名.画像ファイル名
DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# overlay_slot:
# HorizontalAlignment := horizontal_alignment.Left
# VerticalAlignment := vertical_alignment.Top
# Padding := margin{ Left := 1610.0, Top := 668.0 }
# Widget := texture_block:
# DefaultImage := OneShotBallistic.Icons. # プロジェクト名.フォルダ名.画像ファイル名
# DefaultDesiredSize := vector2{ X := 256.0,Y := 256.0 }
# ================= ボタン1列目 =================
# フレンジーオートショットガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 178.0, Top := 266.0 }
Widget := UIShotgunBtn2
# ハンマーポンプショットガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 178.0, Top := 575.0 }
Widget := UIShotgunBtn1
# サンダーバーストサブマシンガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 178.0, Top := 884.0 }
Widget := UISMGBtn1
# ================= ボタン2列目 =================
# ハイパーサブマシンガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 490.0, Top := 266.0 }
Widget := UISMGBtn3
# ドラムガン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 490.0, Top := 575.0 }
Widget := UISMGBtn2
# ネメシスアサルトライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 490.0, Top := 884.0 }
Widget := UIAssaultRifleBtn3
# ================= ボタン3列目 =================
# エンフォーサーアサルトライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 802.0, Top := 266.0 }
Widget := UIAssaultRifleBtn1
# ストライカーアサルトライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 802.0, Top := 575.0 }
Widget := UIAssaultRifleBtn2
# ハンドキャノン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 802.0, Top := 884.0 }
Widget := UIPistolBtn1
# ================= ボタン4列目 =================
# リーパースナイパーライフル
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1114.0, Top := 266.0 }
Widget := UISniperRifleBtn1
# フラッシュバン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1114.0, Top := 575.0 }
Widget := UIItemBtn5
# スモークグレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1114.0, Top := 884.0 }
Widget := UIItemBtn2
# ================= ボタン5列目 =================
# インパルスグレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1426.0, Top := 266.0 }
Widget := UIItemBtn1
# バブルシールド
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1426.0, Top := 575.0 }
Widget := UIItemBtn3
# フラググレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1426.0, Top := 884.0 }
Widget := UIItemBtn4
# ================= ボタン6列目 =================
# リーコングレネード
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1738.0, Top := 266.0 }
Widget := UIItemBtn6
# 地雷
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1738.0, Top := 575.0 }
Widget := UIItemBtn7
# ================= 閉じるボタン最下段 =================
# 閉じるボタン
overlay_slot:
HorizontalAlignment := horizontal_alignment.Left
VerticalAlignment := vertical_alignment.Top
Padding := margin{ Left := 1650.0, Top := 768.0 }
Widget := UIQuietBtn
return WeaponSelectMenuWidget