Aller au contenu principal

Introduction

v1.0.0

RadialMenuUI est une bibliothèque C# pour créer des menus radiaux et des roues d'actions dans Grand Theft Auto V avec ScriptHookVDotNet 3.

Roue d'actions RadialMenuUI en jeu

Elle vient de la roue d'actions d'InteractV. Elle sépare le dessin et la gestion des contrôles du gameplay : votre mod ne fournit que les actions.


Pourquoi RadialMenuUI ?​

Une roue d'actions dans GTA V se heurte à quelques problèmes :

  • Les interfaces natives Scaleform sont rigides et lourdes à étendre.
  • Le dessin 2D via ScriptHookV provoque facilement scintillements, étirements d'aspect ratio ou chutes de framerate.
  • Les zones mortes (deadzones) des sticks de manette et les curseurs de souris déclenchent souvent des survols involontaires s'ils ne sont pas calibrés avec précision.

RadialMenuUI fournit la gestion des contrôles, le rendu et le chargement progressif des textures pour ces usages :

  • Double Contrôle Hybride : Navigation au stick droit de la manette (avec zones mortes) et au curseur de souris sur un canevas virtuel 1280×720. Le dernier périphérique ayant bougé prend automatiquement la main.
  • Rendu par textures natives : Utilise les fonctions de texture de ScriptHookV (createTexture, drawTexture) et charge progressivement les textures, une par mise à jour, pour limiter le travail au premier affichage.
  • Sous-menus Hiérarchiques : Créez des menus à plusieurs niveaux avec fil d'Ariane et retour arrière.
  • Pagination de Variantes : Associez plusieurs options à un seul secteur (météo, emotes, tenues) et faites-les défiler horizontalement avec la croix directionnelle (Gauche/Droite) ou la molette.
  • Thèmes Personnalisables : Prise en charge de 3 à 10 secteurs (ou 12), couleurs, transparence, dimensions et icônes PNG sur mesure.
  • Intégration gameplay : Helper RadialMenuGameplayHost optionnel assurant le maintien de la touche pour ouvrir, le ralenti cinématique, le blocage des commandes perturbatrices et la sécurité en cas de pause ou de mort.

Architecture Générale​

RadialMenuUI est découpée en quatre couches :

Architecture modulaire de RadialMenuUI

  • Données (RadialMenuDef, RadialEntryDef, RadialVariantDef) : Objets purs de déclaration. Aucune dépendance sur le jeu.
  • Entrées (IRadialMenuInput, GtaRadialMenuInput) : Abstraction des périphériques de saisie.
  • Contrôleur (RadialMenuController) : Machine à états gérant les survols, les sous-menus, les variantes et le son.
  • Vue (RadialMenuView, RadialMenuAssets) : Dessine l'anneau, la tranche active, le centre, les flèches et les icônes.

Sommaire de la Documentation​

ThèmeDescription
InstallationComment ajouter RadialMenuUI.dll et les textures de base à votre projet.
Démarrage rapideCréez une roue interactive dans un script ScriptHookVDotNet.
MenusCréation de sous-menus, roue ouverte après confirmation et disposition des tranches.
VariantesFaire défiler plusieurs choix sur une seule tranche.
ThèmesPersonnalisation graphique des anneaux, couleurs et nombres de tranches.
AssetsIcônes par chemin ou clés de thème, et textures dynamiques.
Intégration GameplayRalenti cinématique, touche maintenue et remplacement de la roue d'armes native.
Référence de l'APIDocumentation complète des classes, méthodes et événements.