Wiki
Plugin Unreal Engine
Plugin uVersion pour Unreal Engine : contrôle de version natif dans l'éditeur, diff Blueprint, audit Project Health, et les deux règles qui bloquent le plus souvent un envoi.
Prérequis
.uversion/ en remontant depuis le projet ; s'il n'en trouve pas, et si aucun jeton d'authentification
n'a été enregistré auparavant, il ne s'active pas du tout et Unreal reste sans contrôle de version.
Ce n'est pas une panne : c'est ce qui l'empêche de s'imposer dans vos projets qui ne sont pas versionnés avec
uVersion. Ouvrez le projet depuis le dossier cloné par le client desktop, pas depuis une copie posée
ailleurs.
Installation
Le plugin uVersion est distribué en binaire précompilé, géré par le client desktop. Pas de compilation à votre charge, pas de fichiers source à manipuler. Il n'est jamais versionné : il n'arrive pas avec le dépôt, et il ne doit pas être envoyé dedans. Chaque poste installe le binaire qui correspond à SA version d'Unreal et à SON système.
Versions Unreal supportées : 5.6 et supérieur.
1. Ouvrir le workspace dans le client desktop
Installez le client desktop uVersion, connectez-vous, puis ouvrez le workspace qui contient le projet Unreal. Tout se passe depuis le client : il n'y a aucune archive à télécharger, ni à décompresser dans le projet à la main.
2. Laisser le client détecter le projet
Le client cherche votre .uproject (le fichier qui décrit un projet Unreal) sous la racine du
workspace, à condition qu'il ne soit pas enfoui à plus de trois niveaux. Dès qu'il le trouve, une barre
Unreal apparaît en haut de l'onglet du workspace, et il pose le plugin correspondant à votre version
d'Unreal dans Plugins/uVersion/. La pastille de gauche porte l'état du plugin et son numéro
de version : c'est là que se lisent aussi les mises à jour.
3. Ouvrir le projet dans Unreal
Le plugin est actif immédiatement. Rien à cocher dans la fenêtre Plugins de l'éditeur, rien à redémarrer : s'il manquait, c'est que le client ne l'a pas encore posé, pas qu'il reste à activer.
Plus tard : les mises à jour
Le client desktop vérifie les nouvelles versions à l'ouverture du projet et périodiquement ensuite. Attention, la vérification automatique ne fait pas la même chose dans les deux cas :
- Plugin absent : il est installé sans rien vous demander. C'est ce qui rend le premier démarrage transparent.
-
Plugin déjà présent mais dépassé (nouvelle version, ou changement de version d'Unreal) : le client
se contente de vous prévenir. Il ne remplace jamais un plugin installé tout seul. La pastille
du panneau Unreal passe alors à
Update ready.
Pour appliquer la mise à jour : fermez l'éditeur Unreal, puis cliquez sur la pastille. Un plugin
chargé ne peut pas être remplacé sur le disque ; si l'éditeur est encore ouvert, la pastille affiche
Restart UE.
Première connexion
Dans le cas normal, il n'y a rien à connecter. Le plugin se sélectionne lui-même comme fournisseur de contrôle de version dès qu'il détecte un workspace uVersion autour du projet, ou un jeton déjà enregistré. Vos identifiants sont repris du client desktop, sans ressaisie. Ouvrir le projet suffit.
Les trois étapes ci-dessous ne servent que si cette sélection automatique ne s'est pas faite.
1. Ouvrir le menu Revision Control
Il se trouve en bas à droite de la barre d'état de l'éditeur, pas dans les menus du haut. Il
s'ouvre vers le haut et porte les actions d'Unreal, dont Submit Content, plus une section
uVersion avec notre entrée Audit Project (Project Health). Prenez
Connect to Revision Control.
2. Choisir uVersion dans la liste Provider
La fenêtre Revision Control Login s'ouvre. Déroulez Provider et prenez uVersion. Quand le workspace est reconnu, la fenêtre l'annonce elle-même en vert (Automatically configured from workspace) et les champs Workspace, Server URL et Username sont déjà remplis : il n'y a rien à saisir.
3. Valider avec Accept Settings
Le bouton Accept Settings, en bas de la fenêtre, applique le choix et ferme la fenêtre. La barre d'état affiche alors Connected to suivi du nom du dépôt et de votre identifiant. Le choix est mémorisé : les ouvertures suivantes du projet ne repasseront pas par là.
Réserver un asset, puis l'envoyer
Le parcours complet depuis l'éditeur, sur un fichier de contenu. Le code, lui, ne part jamais d'ici : voir Le code passe par le client desktop.
1. Regarder l'état de l'asset avant de commencer
Chaque vignette du Content Browser porte une pastille qui dit où en est l'asset : réservé par vous, réservé par quelqu'un d'autre, ou plus à jour par rapport au serveur. L'infobulle donne la phrase complète, par exemple File is out of date, sync to get the latest version. Dans ce cas, synchronisez d'abord (clic droit, Revision Control, Sync) : commencer à travailler sur une version dépassée, c'est préparer un conflit.
2. Réserver l'asset
Clic droit sur l'asset, sous-menu Revision Control, puis Check Out. Tout y est : Sync, Check Out, Check In, History, Diff Against Depot, Revert, comme avec n'importe quel autre fournisseur Unreal. Les artistes n'ont rien de nouveau à apprendre.
En pratique vous n'aurez souvent rien à faire : dès que vous modifiez un asset, le plugin pose le verrou côté serveur tout seul, sans checkout manuel.
3. Comparer avant d'envoyer
Diff Against Depot ouvre l'outil de comparaison visuel standard de l'éditeur, y compris sur un Blueprint : les deux révisions sont affichées côte à côte, et les nœuds ajoutés, retirés ou modifiés sont entourés. Fonctionne sur n'importe quel commit de l'historique, depuis History.
4. Envoyer
Clic droit, Revision Control, Check In sur la sélection, ou Submit Content dans le menu de la barre d'état pour tout envoyer d'un coup. La fenêtre liste les fichiers concernés, y compris les suppressions, et réclame une description. Au moment de l'envoi, le plugin nettoie les redirectors laissés par vos renommages et lance les règles de validation actives : une règle en error arrête l'envoi et nomme les fichiers en cause.
Ce que le plugin fait dans Unreal
Project Health : auditer le projet
Le menu Revision Control de la barre d'état contient une entrée
Audit Project (Project Health). Elle parcourt le registre d'assets du projet
sans charger un seul asset, et produit un rapport de santé : nommage, structure des dossiers,
dépendances, contenu orphelin, coûts. Elle fonctionne hors ligne (le rapport est écrit sous
Saved/uVersionAudit) et l'envoie au serveur quand vous êtes connecté, où il alimente l'onglet
Project Health du client desktop.
Nettoyage des redirectors
Quand vous renommez ou déplacez un asset, Unreal laisse derrière lui un redirector : un petit fichier de renvoi qui pointe l'ancien chemin vers le nouveau, pour que les assets qui référencaient l'ancien nom continuent de fonctionner. Ils s'accumulent vite et finissent par rendre l'arborescence illisible. Le plugin les détecte et les nettoie au moment du checkin, en mettant à jour les références dans tous les assets concernés.
Validation pré-checkin
Le plugin sait lancer une série de vérifications sur les fichiers envoyés : compilation des Blueprints, convention de nommage, taille des textures, réglages d'import, dépendances manquantes, dépendances circulaires, assets orphelins, doublons, complexité des matériaux. Neuf règles au total. Une règle en error bloque l'envoi, une règle en warning l'autorise après confirmation.
Réconciliation au démarrage
À l'ouverture du projet, le plugin compare l'état de vos assets avec le serveur. Il parcourt Content/
et les Content/ des plugins du projet, et réserve automatiquement tout asset trouvé
modifiable sur le disque et qui ne l'était pas déjà. L'intention est de vous protéger : un fichier que
vous aviez commencé à modifier ne peut pas être attrapé par un coéquipier entre deux sessions.
Le code passe par le client desktop, pas par Unreal
Le plugin refuse l'envoi des fichiers de code : .cpp, .h,
.hpp, .c et .cs. La tentative s'arrête sur une fenêtre bloquante qui
nomme les fichiers en cause. Ce n'est pas un défaut : le client desktop compile avant d'envoyer et publie les
binaires d'éditeur que vos coéquipiers récupèrent au sync. Un commit de code parti depuis l'éditeur passerait à
côté des deux, et suspendrait la distribution de binaires pour toute l'équipe.
Envoyez donc votre code depuis le client desktop. Les fichiers de contenu, eux, restent parfaitement libres de partir depuis Unreal.
.uasset pur. Le message vous dit d'envoyer votre code depuis le
client desktop d'abord.
C'est le blocage le plus courant, et il tombe volontiers sur quelqu'un qui n'écrit pas de code : il suffit qu'un fichier source ait été rendu modifiable sur le disque pour que la réconciliation au démarrage l'ait réservé toute seule. La raison est réelle : un asset enregistré contre du code non envoyé casse tous ceux qui le synchronisent, leurs binaires n'ayant pas le code dont il dépend.
Le déblocage : ouvrez l'onglet Pending du client desktop, liste My Pending Changes, repérez les fichiers de code, et faites un Checkin Selected si vous les avez modifiés, ou un Revert si vous n'y avez pas touché. Votre envoi de contenu repart ensuite normalement. Il peut falloir quelques secondes, le temps que l'éditeur rafraîchisse sa vue des verrous.
Problèmes courants
Aucun menu uVersion : l'éditeur ignore le contrôle de version
Le projet n'est probablement pas dans un workspace uVersion. Vérifiez qu'un dossier .uversion/ existe
à la racine du dossier cloné, et que vous ouvrez bien le projet depuis ce dossier et non depuis une copie posée
ailleurs.
« Failed to connect to source control »
Vérifiez que le client desktop est lancé et que vous y êtes connecté : c'est lui qui détient vos identifiants et qui sait dialoguer avec un serveur auto-signé. Si le compte propriétaire du workspace n'est pas connecté dans le client, le plugin refuse de travailler sous une autre identité, et c'est voulu.
Un envoi est refusé alors que je n'ai touché à aucun code
Vous détenez la réservation d'un fichier de code. Voir Le code passe par le client desktop.
Je veux un asset que quelqu'un d'autre a verrouillé
Cela ne se demande pas depuis Unreal : le plugin n'a pas de fonction de demande de libération. Passez par le client desktop, onglet Pending, section Other Users' Locks, bouton Request Release sur la ligne du fichier. Le détenteur reçoit une demande sous forme de carte dans le board Production.
Le plugin ne se met pas à jour
C'est le comportement attendu : la vérification automatique installe un plugin manquant, mais elle se contente de
signaler une mise à jour. Fermez l'éditeur Unreal (un plugin chargé ne peut pas être remplacé), puis cliquez sur la
pastille Update ready dans la barre Unreal du client desktop pour l'appliquer.
Une règle de validation ne se déclenche jamais
Les neuf règles sont livrées désactivées. Un administrateur doit les activer par projet depuis l'onglet Rules du panneau Admin.