Suppression du depot git imbrique du plugin : les fichiers du plugin sont suivis normalement ici. L'integration dans les autres projets se fait via un lien symbolique Windows vers Plugins/PS_StrategicVision. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
PS Strategic Vision
Plugin Unreal Engine 5.7 d'affichage stratégique pour vues spectateur et replays : cônes de vision des personnages, et d'autres visualisations à venir.
Installation dans un projet
Copier (ou cloner) ce dossier dans Plugins/PS_StrategicVision/ du projet, puis
activer le plugin dans le .uproject ou via Edit > Plugins.
En submodule git :
git submodule add <url-du-repo> Plugins/PS_StrategicVision
Le plugin est en C++ : le projet hôte doit être un projet C++ (il sera compilé avec le projet).
Contenu
| Élément | Rôle |
|---|---|
UPS_VisionConeComponent |
Component à poser sur un personnage : affiche son cône de vision (mesh procédural, bloqué par les murs, plan toujours horizontal). |
UPS_StrategicDisplayComponent |
Classe de base commune à tous les affichages stratégiques (camp, activation, couleur). Les futurs components en hériteront. |
IPS_VisionSource (interface) |
À implémenter sur l'acteur pour injecter l'origine/direction de vision réelles (ex : caméra VR). |
UPS_StrategicVisionSubsystem |
Subsystem monde : interrupteurs globaux (tout, par catégorie, par camp). |
UPS_StrategicVisionSettings |
Réglages projet : activation au démarrage, style par camp (couleur, hachures), matériau. |
M_VisionCone (Content) |
Matériau translucide unlit avec hachures procédurales, utilisé par défaut. |
Utilisation
1. Poser le cône de vision
Dans le Blueprint du personnage (ou en C++), ajouter le component PS Vision Cone (idéalement attaché au root / à la capsule). Régler :
- Team :
Player,Ally,EnemyouNeutral— détermine la couleur et l'angle des hachures (configurables dans Project Settings > Plugins > PS Strategic Vision). - View Distance / View Angle Degrees : portée et ouverture du cône.
- Trace Channel : canal de collision utilisé pour bloquer le cône sur les murs
(
Visibilitypar défaut).
Le plan du cône est toujours horizontal, même si l'acteur est incliné, et il
est projeté à la hauteur du sol détecté (Project To Ground).
2. Cas VR : injecter la position/direction de la caméra
Si l'acteur reste à l'origine pendant que la caméra bouge (pawn VR), implémenter l'interface PS Vision Source sur l'acteur (Class Settings > Interfaces en Blueprint) et surcharger Get Vision View Point :
Out Location= position monde de la caméra ;Out Forward Direction= direction du regard (seul le cap horizontal est utilisé) ;- retourner
true.
Le component l'utilise automatiquement (Use Owner Vision Source, activé par
défaut). Retourner false pour repasser sur le transform du component. Penser à
mettre Trace Height à 0 si la position fournie est déjà à hauteur des yeux.
3. Activer / désactiver selon l'état de jeu
Tout est masqué par défaut : au démarrage d'une partie, aucun affichage
stratégique n'est visible (modifiable via bEnabledAtStartup dans les settings).
L'activation se fait via le subsystem (Blueprint : nœud
Get PS_StrategicVisionSubsystem, ou UPS_StrategicVisionSubsystem::Get() en C++) :
SetGlobalDisplayEnabled(true)— active l'affichage stratégique (ex : entrée en mode spectateur ou replay) ;SetVisionConesEnabled(bool)— uniquement les cônes de vision ;SetCategoryEnabled(FName, bool)— par catégorie (pour les futurs components) ;SetTeamEnabled(EPS_StrategicTeam, bool)— par camp (ex : ne montrer que les ennemis).
Chaque component a aussi son interrupteur local SetDisplayEnabled(bool) (actif
par défaut — c'est l'état global qui masque tout au départ). Un component n'est
visible que si son interrupteur local ET les interrupteurs globaux le permettent.
Quand un cône est masqué, il ne fait plus aucune trace (coût nul).
4. Lisibilité des cônes superposés
Deux mécanismes, configurables par component (catégorie Vision Cone > Rendering) :
- Contour (
Show Outline,Outline Width,Outline Opacity) : bande plus opaque sur le pourtour du cône — chaque cône reste délimité même superposé. - Hachures procédurales (
Hatching Enabled,Hatching Scale,Hatching Intensity) : rayures en espace monde dont l'angle dépend du camp (45° joueur, 90° allié, 135° ennemi par défaut — réglable dans les settings). Deux cônes superposés restent identifiables par l'orientation de leurs rayures.
Le matériau M_VisionCone fourni par le plugin gère ces options. Il est
régénérable via Tools/generate_vision_cone_material.py (commandlet Python).
5. Matériau personnalisé (optionnel)
Assigner un matériau via Material Override (component) ou Default Cone Material (settings). Le component fournit au matériau :
- paramètre vecteur
Color: couleur du camp (alpha = opacité) ; - paramètres scalaires
Opacity,HatchAngle,HatchScale,HatchIntensity; - vertex colors : couleur du camp (alpha = opacité) ;
- UV : U = position angulaire (0..1), V = distance normalisée (0..1) — pratique pour un fondu vers le bord du cône.
Recette minimale : matériau Translucent / Unlit, VertexColor → Emissive Color, VertexColor.A → Opacity. Laisser Two Sided décoché (la géométrie est déjà double face).
Note packaging : le matériau par défaut n'est référencé que par soft reference ; pour un build packagé, vérifier qu'il est bien cooké (Additional Assets to Cook, ou référence en dur via Material Override).
Performance
ArcSegments(48 par défaut) = nombre de line traces par mise à jour.UpdateInterval: 0 = chaque frame ; augmenter (ex : 0.05) si beaucoup de personnages affichent leur cône simultanément.
Roadmap
- Cône de vision bloqué par les obstacles
- Source de vision injectable (VR) via interface
- Contour + hachures procédurales pour les superpositions
- Autres affichages stratégiques (trajectoires, zones d'alerte, ...) sous forme
de components héritant de
UPS_StrategicDisplayComponent