Utilisation détaillée

Le subsystem principal : ADS Menu Subsystem

ADS Menu Subsystem est créé automatiquement avec la Game Instance. Il instancie et conserve la logique de menu active.

FonctionDescription
GetMenuSystemRécupère le subsystem depuis un Blueprint.

Entrées

PinDescription
World Context ObjectObjet possédant un monde.

Sorties

PinDescription
Return ValueRéférence vers le subsystem, ou None si la Game Instance est indisponible.
Is InitializedVérifie que la logique a été créée.

Entrées

PinDescription
TargetRéférence vers le subsystem.

Sorties

PinDescription
Return Valuetrue après l'initialisation.
Get Menu LogicRenvoie la logique active.

Entrées

PinDescription
TargetRéférence vers le subsystem.

Sorties

PinDescription
Return ValueRéférence ADS Menu Logic Base, ou None.
Get Menu Logic From WorldRaccourci pour récupérer la logique active.

Entrées

PinDescription
World Context ObjectObjet possédant un monde.

Sorties

PinDescription
Return ValueLogique active, ou None.
Get Menu Logic (Typed)Renvoie la logique lorsqu'elle correspond à une classe demandée.

Entrées

PinDescription
TargetRéférence vers le subsystem.
Desired ClassClasse de logique attendue.

Sorties

PinDescription
Return ValueRéférence typée, ou None.
Create Widget BPCrée un widget sans l'ajouter au viewport.

Entrées

PinDescription
TargetRéférence vers le subsystem.
Widget ClassClasse du Widget Blueprint à créer.

Sorties

PinDescription
Return ValueWidget créé, ou None si un élément requis est invalide.

La logique Blueprint : BP_ADS_MenuSystem

L’asset fourni se nomme BP_ADS_MenuSystem. C’est la logique Blueprint principale, construite sur la classe C++ ADS_MenuLogicBase. Cette classe est instanciée et utilisée par le subsystem principal.

Si vous souhaitez étendre ou modifier ses fonctionnalités, cela est possible : cette logique a été créée en Blueprint justement pour vous le permettre. Dans ce cas, il est fortement recommandé de dupliquer cet asset avant toute modification, par mesure de sécurité.

Les fonctions

Les fonctions ci-dessous constituent l’API d’ouverture et de fermeture des UI et des menus. Les pins d’exécution ne sont volontairement pas listés.

FonctionDescription
ShowUI

Affiche l’UI fournie, avec l’ordre d’affichage demandé.

Entrées

PinDescription
UIUI à afficher.
ZOrderOrdre d’affichage de l’UI dans le viewport.
Hide Others UIIndique si les autres UI doivent être masquées lors de l’affichage.
HideUI

Masque l’UI fournie.

Entrées

PinDescription
UIUI à masquer.
Remove from ParentIndique si l’UI doit être retirée de son parent.
Reshow UIIndique si les UI précédemment masquées doivent être réaffichées.
ShowMenu

Affiche le menu fourni et prépare son interaction.

Entrées

PinDescription
MenuMenu à afficher.
Set FocusIndique si le focus doit être donné au menu.
Z OrderOrdre d’affichage du menu dans le viewport.
Hide UIIndique si les UI doivent être masquées pendant l’ouverture du menu.
Pause GameIndique si le jeu doit être mis en pause.
HideMenu

Masque le menu fourni et restaure les éléments demandés.

Entrées

PinDescription
MenuMenu à masquer.
Remove from ParentIndique si le menu doit être retiré de son parent.
Reshow UIsIndique si les UI précédemment masquées doivent être réaffichées.
Pause GameIndique si le jeu doit rester en pause ou reprendre.

Event Dispatchers

Event DispatcherDescription
On Game Paused

Se déclenche lors d’un changement d’état de pause.

PinDescription
bPausedtrue lorsque le jeu est en pause ; false lorsqu’il reprend.

Le player subsystem : ADS Player Subsystem

ADS Player Subsystem est associé au joueur local et détecte le dernier périphérique utilisé.

Fonction / Event DispatcherDescription
Is Last Input GamepadIndique si la dernière entrée vient d'une manette.

Entrées

PinDescription
TargetRéférence vers le Player Subsystem.

Sorties

PinDescription
Return Valuetrue pour une manette.
Get Last Input TypeRenvoie le dernier type d'entrée.

Entrées

PinDescription
TargetRéférence vers le Player Subsystem.

Sorties

PinDescription
Return ValueUnknown, KeyboardMouse ou Gamepad.
On Last Input Type ChangedDispatcher à lier pour actualiser les indications.
PinDescription
bIsGamepadtrue pour une manette, false pour clavier/souris.

L'Actor Component : AC_MenuSystemConfig

Ajoutez AC_MenuSystemConfig au Blueprint du personnage ou du Player Controller du joueur local. Il relie ce joueur aux contextes d'entrées du système.

Paramètres

ParamètreUtilisation
MenuContextMappingStructure S_Context utilisée lorsque le joueur interagit avec un menu.
TravelContextMappingStructure S_Context utilisée pendant le gameplay.
UI_NotificationsRéférence vers le widget de notifications.
NotificationLinesMax / NotificationDurationNombre maximal de lignes et durée d'affichage.
DT_DynamicIconsData Table utilisée pour les icônes dynamiques.

Utilisez GetMenuSystem pour obtenir la logique, ShowUI pour afficher une UI, et SetMenuMappingContext ou SetTravelMappingContext pour changer le contexte.

Les UI

Une UI est un Widget Blueprint destiné à afficher une information ou une interface non interactive. Le plugin fournit UI_Parent comme base : conservez cet asset intact et créez toujours un enfant dans le contenu de votre projet.

Créer une UI

Créez un Widget Blueprint enfant de UI_Parent dans le contenu de votre projet.

Les fonctions

Votre UI enfant hérite des fonctions de UI_Parent. Surchargez (Override) les fonctions suivantes lorsque vous devez ajouter une logique propre à l’apparition ou à la disparition de l’UI. Dans le graphe de la fonction surchargée, faites un clic droit sur le nœud d’entrée, puis choisissez Add Call to Parent Function. Il est fortement conseillé d’appeler cette fonction parent afin de conserver le comportement fourni par le plugin.

FonctionDescription
Show (à override)

Affiche l’UI. Cette fonction est appelée par la logique du système.

Entrées

PinDescription
ZOrderOrdre d’affichage de l’UI dans le viewport.
Hide (à override)

Masque l’UI. Cette fonction est appelée par la logique du système.

Les Menus

Un menu est un Widget Blueprint interactif basé sur UI_Menu_Parent. Cette classe fournit la base du menu, la gestion des groupes de boutons et du survol. Créez vos menus dans le contenu de votre projet ; ne modifiez pas l’asset fourni.

Créer un menu

Créez un Widget Blueprint enfant de UI_Menu_Parent dans le contenu de votre projet.

Les fonctions

Votre menu enfant hérite des fonctions de UI_Menu_Parent. Les fonctions Show et Hide sont à surcharger (Override) lorsque le menu doit exécuter une logique supplémentaire à son ouverture ou à sa fermeture. Dans le graphe de la fonction surchargée, faites un clic droit sur le nœud d’entrée, puis choisissez Add Call to Parent Function. Il est fortement conseillé d’appeler cette fonction parent afin de préserver le comportement de base du menu.

FonctionDescription
Show (à override)

Affiche le menu.

Entrées

PinDescription
ZOrderOrdre d’affichage du menu dans le viewport.
Hide (à override)

Masque le menu.

FindButtonsRecherche les boutons présents dans le menu afin de préparer leur gestion.
AddButton

Ajoute un bouton à un groupe.

Entrées

PinDescription
ButtonBouton à ajouter.
GroupOfButtonNom du groupe auquel rattacher le bouton.
RemoveButtonsOfGroup

Retire les boutons d’un groupe.

Entrées

PinDescription
GroupNameNom du groupe à vider.
RemoveButton

Retire un bouton de la gestion du menu.

Entrées

PinDescription
ButtonBouton à retirer.
GetCurrentGroup

Récupère le groupe actuellement utilisé.

Sorties

PinDescription
Current GroupNom du groupe courant.
SetCurrentGroup

Définit le groupe utilisé par le menu.

Entrées

PinDescription
NewGroupNom du nouveau groupe courant.
IsGroupValid

Vérifie qu’un groupe peut être utilisé.

Entrées

PinDescription
GroupNameNom du groupe à vérifier.

Sorties

PinDescription
Return Valuetrue si le groupe est valide.
GetAllButtons

Récupère tous les boutons gérés par le menu.

Sorties

PinDescription
ButtonsListe de tous les boutons.
GetButtonsOfGroup

Récupère les boutons d’un groupe.

Entrées

PinDescription
GroupNameNom du groupe demandé.

Sorties

PinDescription
ButtonsListe des boutons du groupe.
GetButtonAtIndex

Récupère un bouton à un index donné.

Entrées

PinDescription
IndexOfButtonIndex du bouton à récupérer.

Sorties

PinDescription
ButtonBouton correspondant à l’index.
HoverByIndex

Place le survol sur un bouton selon son index.

Entrées

PinDescription
IndexOfButtonIndex du bouton à survoler.
HoverByIncrement

Déplace le survol selon un incrément.

Entrées

PinDescription
IncrementValueValeur de déplacement dans le groupe courant.
GetHoveredButton

Récupère le bouton actuellement survolé.

Sorties

PinDescription
ButtonBouton actuellement survolé.
bErrorIndique qu’aucun bouton valide n’a été trouvé.
ClampIndex

Contraint un index à une valeur utilisable par le groupe courant.

Entrées

PinDescription
IndexIndex à contraindre.

Sorties

PinDescription
Return ValueIndex utilisable.

Les boutons

Les boutons d’un menu reposent sur BTN_Parent. Cette classe fournit une base commune aux boutons du système. Créez des enfants dans le contenu de votre projet pour étendre leur apparence et leurs fonctionnalités.

Classes et structures fournies

ÉlémentRôle
BTN_ParentClasse de base fournie pour les boutons gérés par un menu. Les enfants du projet peuvent étendre son apparence et ses fonctionnalités.
BPI_MenuButtonInterface Blueprint utilisée pour l’échange entre le menu et ses boutons.
BTN_Text_DemoExemple de bouton textuel fourni dans le contenu de démonstration.
BTN_Section_DemoExemple de bouton de section : il lie le bouton à une page d’un Widget Switcher et active automatiquement cette page.
S_ButtonInfosStructure associant un Button à son Index.
S_ButtonGroupStructure de navigation contenant Buttons et CurrentIndex.

Les assets suffixés _Demo sont des exemples. Ils servent de référence et ne sont pas des classes à modifier dans le plugin.

Créer un bouton

  1. Créez un Widget Blueprint enfant de BTN_Parent dans le contenu de votre projet.
  2. Construisez son apparence dans le Designer : texte, image, bordure, animation ou tout autre widget nécessaire.
  3. Placez le bouton dans le Designer d’un menu enfant de UI_Menu_Parent.

Paramètres exposés par le bouton

Ces paramètres sont exposés au Widget Blueprint qui contient le bouton. Ils sont renseignés depuis ce widget conteneur, et non lors de la création de la classe enfant du bouton.

ParamètreUtilisation
GroupOfButtonNom du groupe auquel appartient le bouton.
IndexOfButtonIndex du bouton dans ce groupe.
ActionNameNom de l’action associée au bouton.

Les fonctions

Votre bouton enfant hérite du comportement de BTN_Parent. Lorsque vous surchargez une fonction fournie par ce parent, faites un clic droit sur le nœud d’entrée de la fonction, puis choisissez Add Call to Parent Function. Il est fortement conseillé de conserver cet appel afin de préserver la logique du parent.

Fonction / interfaceDescription
Hover (à override)Applique l’état de survol au bouton.
UnHover (à override)Retire l’état de survol du bouton.
Action (à override)Point d’extension pour le comportement déclenché par le bouton.
AddMenuButton (interface BPI_MenuButton)

Reçoit le menu propriétaire lorsque le bouton est enregistré.

Entrées

PinDescription
MenuOwnerRéférence vers le menu propriétaire.
ExecuteButtonAction (interface BPI_MenuButton)

Déclenche l’action associée au bouton.

Entrées

PinDescription
ActionNameNom de l’action à exécuter.

Dynamic Icons

Les Dynamic Icons permettent d’afficher, pour une même action, le visuel correspondant au dernier type de périphérique utilisé. Par exemple, une même indication peut afficher une touche de clavier, un bouton Xbox, PlayStation ou Switch.

Éléments fournis

ÉlémentRôle
UI_DynamicIconWidget à placer dans une UI ou un menu. Il choisit et affiche la variante adaptée au périphérique courant.
DT_ControllersIconsData Table qui associe chaque clé d’icône à ses variantes par périphérique.
S_ControllersIconsStructure d’une ligne de la Data Table. Elle contient les variantes KeyboardMouse, XBox, PlayStation et Switch.
S_ControllerIconStructure d’une variante. Elle permet d’utiliser soit une Texture, soit un Widget lorsque bUseWidget est activé.
E_ControllerTypesÉnumération des types de périphériques pris en charge.
BPI_DynamicIconInterface utilisée entre un menu et ses Dynamic Icons.
UI_Icon_DefaultWidget d’icône fourni comme base visuelle.

Configurer les données d’icônes

  1. Dupliquez DT_ControllersIcons dans le contenu de votre projet si vous souhaitez modifier ou compléter les icônes fournies.
  2. Dans chaque ligne, renseignez les variantes nécessaires : KeyboardMouse, XBox, PlayStation et Switch.
  3. Pour chaque variante, utilisez une Texture ou activez bUseWidget et fournissez un Widget.
  4. Dans BP_ADS_MenuSystem, affectez cette Data Table à DT_DynamicIcons.

Le nom de chaque ligne est sa clé d’icône. Il doit être stable : les widgets l’utilisent pour retrouver leurs variantes.

Utiliser une Dynamic Icon dans une UI ou un menu

  1. Ajoutez UI_DynamicIcon dans le Designer de l’UI ou du menu concerné.
  2. Dans ses détails, renseignez RowName avec le nom exact d’une ligne de DT_DynamicIcons.
  3. Ajustez sa mise en page comme n’importe quel widget UMG.

Une fois configuré, le widget affiche la variante correspondant au périphérique courant et se met à jour lorsque le dernier type de périphérique utilisé change.

Les fonctions

Les fonctions suivantes appartiennent à la logique fournie par UI_DynamicIcon. Dans l’utilisation normale du widget, la configuration de DT_DynamicIcons et de RowName est suffisante ; elles servent surtout si vous créez un comportement personnalisé.

Fonction / interfaceDescription
InitializeIconLit la ligne identifiée par RowName et prépare l’affichage de l’icône.
UpdateIconActualise l’icône affichée selon le périphérique courant.
BindUpdateIconGère l’abonnement ou le désabonnement à la mise à jour liée au changement de périphérique.
AddIcon (interface BPI_DynamicIcon)Permet au menu de référencer une Dynamic Icon.

Notifications

Le système de notifications affiche des messages temporaires à l’écran. La logique est fournie par BP_ADS_MenuSystem et le rendu par les widgets du dossier Notification.

Éléments fournis

ÉlémentRôle
UI_NotificationsWidget qui reçoit et organise les lignes de notification affichées.
UI_NotificationLineParentClasse parent commune aux lignes de notification.
UI_NotificationLineTextLigne destinée à une notification composée d’un texte.
UI_NotificationLineTextIconLigne destinée à une notification composée d’un texte et d’une icône.
UI_NotificationLineTextTitleLigne destinée à une notification composée d’un titre et d’un texte.
BPI_NotificationsInterface utilisée entre le gestionnaire de notifications et les lignes affichées.
S_UserWidgetArrayStructure utilisée par la logique de notifications pour regrouper des références de widgets.

Configurer les notifications

  1. Dans BP_ADS_MenuSystem, vérifiez que UI_Notifications référence le widget de notifications à utiliser.
  2. Utilisez les widgets de ligne fournis tels quels, ou créez des enfants dans le contenu de votre projet pour adapter leur apparence.
  3. Réglez NotificationLinesMax pour définir le nombre maximal de lignes affichées simultanément.
  4. Réglez NotificationDuration pour définir la durée d’affichage par défaut.

Les fonctions

Appelez ces fonctions sur l’instance de BP_ADS_MenuSystem pour afficher une notification. Les pins d’exécution ne sont pas listés.

FonctionDescription
ShowNotificationText

Affiche une notification composée d’un texte.

Entrées

PinDescription
TextTexte à afficher.
DurationDurée d’affichage de cette notification.
PriorityPriorité utilisée pour l’affichage de la notification.
ShowNotificationTextIcon

Affiche une notification composée d’un texte et d’une icône.

Entrées

PinDescription
TextTexte à afficher.
IconTextureTexture de l’icône à afficher.
DurationDurée d’affichage de cette notification.
PriorityPriorité utilisée pour l’affichage de la notification.
ShowNotificationTextTitle

Affiche une notification composée d’un titre et d’un texte.

Entrées

PinDescription
TitleTitre à afficher.
TextTexte à afficher.
DurationDurée d’affichage de cette notification.
PriorityPriorité utilisée pour l’affichage de la notification.