Skip to main content

Unity dispose de 2 outils utilisant l'IA générative et servant aux développeurs à mettre en place leur solution.

Ces outils sont les suivants :

  • L'Assistant, qui est un modèle LLM spécialisé dans Unity, et qui répond à toute question relative au projet.
  • Le Générateur, qui de son côté est appelé pour générer différents assets : Objets 3D, sprites, textures, matériaux, animations, sons et cubemaps.

 

Utilisation de l'IA générative dans Unity

La fonctionnalité étant toujours en beta à l’heure actuelle, il faut tout d’abord s’y inscrire car ce n’est pas automatiquement fait. Cela se fait depuis cette page web.

Tout le reste se passe dans l’éditeur Unity. Unity utilise un système de points dans le but éviter les abus.

Les points attribués à un compte sont réinitialisés chaque semaine. S’il y a un besoin de points immédiat, il est possible de compléter un formulaire en ligne pour obtenir une réserve de points sans devoir attendre le rechargement automatique hebdomadaire.

Le coût en points de l'utilisation de l'IA varie selon la demande. Ce système devrait changer lors de la sortie de la beta.

Note : ces fonctionnalités ne sont disponibles qu'à partir de la version 6.3 de Unity.

Il est également bon de noter qu'un projet Unity souhaitant faire usage de ces fonctionnalités doit être créé sur le cloud Unity, et non pas sur une machine locale.

Assistant

L’assistant se présente sous la forme d’une fenêtre de discussion dans laquelle l’utilisateur entre du texte en langage naturel (prompt). Il permet de faire office de guide et de répondre aux questions du développeur.

Deux modes sont disponibles pour cet assistant : le mode Ask et le mode Agent.

Mode Ask

Le mode Ask vise en premier lieu à répondre aux questions et à guider l’utilisateur. Il est basé sur les modèles GPT et Llama.

Il fournit une aide sans effectuer de modification dans le projet. Il a accès à des outils Unity, mais uniquement en mode read-only.

Ce mode est plutôt adapté à l’apprentissage, le planning ou le reviewing. Exemple : "Quelle serait une bonne valeur d’intensité pour l’éclairage de cette scène ?". L'assistant va alors lire le contenu de la scène actuellement ouverte et faire des suggestion sans apporter de modification lui-même.

Mode Agent

Le mode Agent, quant à lui, effectue des actions. Il peut créer, modifier ou supprimer des objets ou assets en utilisant des outils de Unity. Il demande l’accord de l’utilisateur avant de faire une modification. Ce mode est plutôt adapté à de l’automatisation ou de la mise en place. Exemple : "Corrige l’intensité lumineuse de la scène". L'agent va lire les données de la scène actuellement ouverte, puis corriger l'éclairage via des outils et avec la permissions du développeur.

Malgré son accès à des outils, les réponses de l'agent seront textuelles, tout comme le mode Ask.

Lors d’une discussion avec l’assistant, il est également possible de mettre en "pièce-jointe" des éléments du projet utiles pour lui donner du contexte de façon simple, efficace et rapide. Il est également possible de joindre des images, voire des logs d'erreur venant de la console Unity.

Exemples de prompts

  • Joindre un asset de type animation et prompter "Comment puis-je ralentir la vitesse de cette animation ?".
  • "Définis l’intensité de toutes les lampes ayant le tag "Fog Light" à 100% et change la température de couleur à 3500K".
  • "Explique-moi cette erreur dans la console".
  • "J’aimerais créer un effet d’étincelles via le VFX Graph, peux-tu me guider sur les étapes à suivre ?".
  • Joindre un groupe d’objets 3D et prompter "Peux-tu me créer une scène avec un éclairage extérieur naturel et répartir équitablement les objets joints pour créer une forêt ? Il faut également créer un sol plat qui couvre toute la zone".
  • "Crée-moi un script C# qui fait scintiller toutes les 2 secondes la lumière à laquelle le script sera attaché".

 

Générateur

Comme son nom l’indique, le générateur utilise une série d’outils pour créer des assets sur base d’un prompt. Ils peuvent créer, modifier ou optimiser différents assets du projet.

Il est possible de générer des :

  • Sprites
  • Textures
  • Cubemaps
  • Sons
  • Animations
  • Matériaux
  • Terrains
  • Objets 3D

Chaque type d'asset à générer dispose d'une fenêtre dédiée, permettant de donner un maximum d'information et de contexte pour obtenir le résultat souhaité.

 

Sprites

AI sprite generator window
Fenêtre de génération de sprite

Le bouton "Change" permet de choisir le modèle de génération souhaité. Certains modèles sont plus adaptés au style ou au type de résultat souhaité.

Le bouton "Add More Controls To Prompt” permet d’ajouter des images de différentes références, par exemple une référence de style ou de composition. Plus d’infos ici.

Le champ "Prompt" permet de décrire le sprite souhaité, tandis que le champ "Negative Prompt" permet de décrire ce qu’on veut exclure du résultat (exemple : watermark ou background). Plus d’infos sur le negative prompt ici.

On peut également définir le nombre de sprites à générer, ainsi que la dimension de ceux-ci.

Le champ "Custom Seed" est non-obligatoire et permet de garder des résultats constants. Plus d’infos ici.

Le chiffre sur la droite du bouton "Generate" indique le nombre de crédits qui seront consommés lors de la génération.

Il est également possible de générer une spritesheet depuis un sprite.

Note : la génération de texture et de cubemap fonctionne de façon similaire.

 

Sons

AI sound generator window
Fenêtre de génération de son

Il est possible de générer des sons (au format .wav) de 3 façons différentes :

  • Via un prompt : Au-delà des champs qu’on retrouve pour les autres générations, il est également possible de choisir la durée du son généré.
    • Via un son de référence : un champ "Select Audio Clip" est ajouté, permettant de choisir le son de référence utilisé pour la génération. Un champ "Strength" est également présent et permet de définir si le son généré doit être plus ou moins proche du son de référence. Il est également possible de faire en sorte que le son généré écrase le son de référence.
      • Via son enregistré en direct : Un bouton "Start Recording" permet d’enregistrer directement le son venant du micro, et qui sera utilisé comme référence. Note : Unity aura besoin de la permission d'accéder au son venant du micro.

 

 

 

 

Animations

Formulaire de génération d'animation
Fenêtre de génération d'animation

Il existe 2 méthodes de génération d’animation :

  • Text to Motion : Crée une animation à partir d’un prompt. Il est alors possible de choisir la durée de l’animation.
  • Video to Motion : Crée une animation à partir d’une animation de référence qu’il faut uploader.

L’onglet "Trim" permet d’affiner l’animation générée, notamment pour faire en sorte qu’elle boucle sans problème apparent.

 

 

 

 

 

 

 

 

Matériaux

Formulaire de génération de matériel
Fenêtre de génération de matériel

La génération de matériaux se fait via prompt, d’une manière sensiblement similaire à une image.

Le champ « Pattern Reference » permet de forcer le visuel généré de suivre un visuel répétitif, par exemple des briques, du carrelage, des vagues, etc. via une image de référence de pattern. Il est possible d’importer soi-même une image voulue ou de piocher parmi un stock d’images.

Le champ « Material Map Assignments » sert à définir le rôle de l’image générée : Albedo, metallique, normal map, etc.

L’onglet « Upscale » permet d’affiner et d’augmenter la résolution de l’image générée si besoin.

L’onglet « PBR » (physically based rendering) simule la façon dont la lumière interagit avec le matériau. Il permet d’obtenir des effets réalistes tels que des reflets d’eau, de la brillance, des reflets métalliques, etc.

La section « Material Map Assignments » permet de spécifier les différents éléments du matériau. Plus d’infos ici.

Il est possible de créer un terrain de la même façon.

 

 

 

 

Objets 3D

Fenêtre de génération d'objet 3D
Fenêtre de génération d'objet 3D

Unity génère un objet 3D à partir d’une image de référence.

Il est plutôt adapté aux objets simples, comme des petits objets décoratifs ou des détails d’environnement.

Les objets générés par Unity peuvent être regardés sous tous les angles de vue, ne contiennent pas de sous-objets ou d’éléments amovibles, et ne sont ni riggés ou animés.

Il est également possible de générer un objet 3D via prompt en passant par l’assistant.

Plus d’informations ici.

 

 

 

 

 

 

IA générative embarquée dans Unity grâce à Sentis

Sentis, précédemment appelée Barracuda, est la librairie d’inférence (exécution) de réseaux neuronaux de Unity.

Elle sert à importer un modèle déjà entraîné hors de Unity (au format .onnx) dans Unity, et à l’exécuter en temps réel directement sur l’appareil de l’utilisateur, en utilisant au choix le CPU ou le GPU.

Le fonctionnement classique est le suivant :

  • Entraînement hors de Unity (dans PyTorch ou TensorFlow).
  • Export en ONNX (Open Neural Network Exchange).
  • Import dans Unity. Unity applique des réglages d’import, y compris la gestion de certaines dimensions d’entrée dynamiques.
  • À l’exécution, création un “engine/worker” Sentis en choisissant un backend (CPU, GPUCompute ou GPUPixel) et brancher les tenseurs d’entrée/sortie au code.

Cela permet la mise en place de fonctionnalités comme par exemple :

  • Reconnaissance/détection d’objets.
  • Classification.
  • NLP : traitement et analyse du langage humain. Exemples : classification de texte).
  • Comportement d’adversaires.
  • Analyse de données capteurs.

Le tout sans dépendre d’un serveur.

Plus d’informations ici.

Discutons de votre projet

Contactez-nous

  •  + 32 (0) 10 49 51 00
  •  info@expert-it.com