Exporter un modèle 3D de Blender vers Unity : réglages d’échelle, pivot et FBX

Vous venez de terminer un asset dans Blender, vous le glissez dans Unity… et il arrive 100 fois trop grand, couché sur le dos, avec un pivot au milieu de nulle part et des matériaux roses. C’est le rite de passage de tout artiste 3D qui débute sur moteur temps réel. La bonne nouvelle : il n’y a rien de mystérieux là-dedans. Exporter Blender vers Unity proprement tient à une poignée de cases à cocher, toujours les mêmes, des deux côtés du pipeline.

Dans ce tutoriel pas à pas, nous détaillons les réglages exacts de l’exportateur FBX de Blender (4.2 LTS, 4.5 LTS et 5.x), puis le paramétrage de l’Inspector d’import dans Unity 6, avec un tableau de dépannage pour chaque symptôme classique.

Pourquoi vos modèles arrivent géants ou couchés dans Unity

Avant de cocher quoi que ce soit, il faut comprendre les trois sources de problèmes. Elles expliquent 95 % des imports ratés.

1. Deux conventions d’axes différentes

  • Blender travaille en Z-up : l’axe Z pointe vers le haut, le -Y vers l’avant.
  • Unity travaille en Y-up : l’axe Y pointe vers le haut, le Z vers l’avant, et le repère est gaucher (left-handed) alors que Blender est droitier.

Résultat si la conversion est mal gérée : le mesh apparaît avec une rotation de -90° sur X dans le Transform, ou pire, il est couché alors que le Transform affiche 0,0,0.

2. L’échelle d’unité du FBX

Le format FBX travaille historiquement en centimètres, Blender et Unity en mètres. Si l’unité n’est pas convertie, vous obtenez un facteur 100 (modèle gigantesque) ou 0,01 (modèle microscopique). À cela s’ajoute l’échelle non appliquée de l’objet dans Blender : un cube mis à l’échelle 5 dans l’Object Mode mais jamais « applied » transporte cette déformation dans le FBX.

3. Le pivot (origine de l’objet)

Unity place le GameObject à partir de l’origine de l’objet Blender, pas du centre visuel du mesh. Si votre origine traîne à 12 mètres du maillage parce que vous avez déplacé la géométrie en Edit Mode, l’objet sera impossible à positionner correctement dans la scène et toutes les rotations seront excentrées.

blender unity 3d model export

Étape 1 : préparer la scène Blender avant export

C’est l’étape que tout le monde saute, et c’est celle qui règle le plus de bugs. Faites-la systématiquement avant d’ouvrir la fenêtre d’export.

Vérifier les unités de la scène

  1. Panneau Scene Properties (icône cône + sphère).
  2. Section Units : Unit System = Metric.
  3. Unit Scale = 1.0.
  4. Length = Meters.

Si vous avez bricolé l’Unit Scale à 0.01 pour modéliser « en centimètres », corrigez-le maintenant : c’est une cause fréquente d’échelles aberrantes dans Unity.

Appliquer les transformations

Sélectionnez votre objet, puis Ctrl + A :

  • Rotation & Scale : indispensable. Après l’opération, le panneau N doit afficher Scale 1,1,1 et Rotation 0,0,0.
  • Location : à n’appliquer que si vous voulez remettre l’origine à l’origine du monde (voir ci-dessous).

Attention : si votre objet possède un modificateur Mirror ou des échelles négatives, appliquez-les aussi, sinon les normales seront inversées côté Unity.

Placer le pivot au bon endroit

Trois méthodes selon le besoin :

Besoin Méthode dans Blender
Pivot au centre du maillage Object > Set Origin > Origin to Geometry
Pivot à la base (props, bâtiments, personnages) Placer le curseur 3D sur la face inférieure (Shift + S > Cursor to Selected en Edit Mode), puis Object > Set Origin > Origin to 3D Cursor
Pivot à l’origine du monde Shift + C (curseur au centre) puis Origin to 3D Cursor

Bonne pratique : pour un asset destiné à être posé au sol, placez le pivot à la base, au centre de l’empreinte au sol, puis déplacez l’objet en (0,0,0) avant export. Vous pourrez l’instancier dans Unity sans jamais corriger le Y.

Nettoyer avant d’exporter

  • Supprimer les objets inutiles (caméras, lumières, cubes de test) ou les exclure via Limit to Selected Objects.
  • Renommer proprement les objets : le nom Blender devient le nom du GameObject dans Unity.
  • Vérifier les normales : en Edit Mode, overlay Face Orientation, tout doit être bleu. Sinon Shift + N (Recalculate Outside).
  • Vérifier qu’il y a bien une UV map si vous utilisez des textures ou de la lightmap (Unity peut générer les UV de lightmap, mais une UV0 propre reste nécessaire).
  • Appliquer ou valider les modificateurs à exporter (Subdivision, Solidify, Bevel).
blender unity 3d model export

Étape 2 : les réglages FBX exacts dans Blender

Menu File > Export > FBX (.fbx). Voici, section par section, ce qu’il faut cocher pour un export vers Unity.

Include

Paramètre Valeur Pourquoi
Limit to Selected Objects Coché Évite d’embarquer caméras, lumières et objets de travail
Object Types Mesh (+ Armature si rig, + Empty si colliders) Un FBX minimal s’importe plus vite et sans hiérarchie parasite
Custom Properties Décoché (sauf pipeline spécifique) Inutile dans la majorité des cas

Transform : le coeur du problème

Paramètre Valeur recommandée
Scale 1.00
Apply Scalings FBX All
Forward -Z Forward
Up Y Up
Apply Unit Coché
Use Space Transform Coché
Apply Transform (experimental) Décoché par défaut (voir encadré)

Le cas « Apply Transform » et « Bake Axis Conversion »

Avec les réglages ci-dessus, Unity importe le modèle droit, mais la rotation -90° sur X est parfois « cuite » dans le mesh racine, visible quand vous ouvrez le prefab. Deux solutions, à ne surtout pas combiner :

  • Solution recommandée : laisser Apply Transform décoché dans Blender et activer Bake Axis Conversion dans l’Inspector Unity (onglet Model). C’est la méthode la plus fiable et la plus maintenable, notamment avec des animations.
  • Solution alternative : cocher Apply Transform dans Blender et laisser Bake Axis Conversion désactivé dans Unity. Fonctionne bien pour des meshes statiques, mais reste marqué « experimental » et peut poser souci avec les armatures et les objets parentés.

Cocher les deux donne un modèle… couché. C’est la cause numéro un des « j’ai suivi le tuto et ça ne marche toujours pas ».

Geometry

  • Smoothing : Face (ou Normals Only si vous utilisez du custom split normals). Le réglage par défaut Normals Only fait parfois perdre les groupes de lissage, Face est le plus sûr pour Unity.
  • Export Subdivision Surface : décoché, sauf si vous exploitez la tessellation côté moteur.
  • Apply Modifiers : coché.
  • Loose Edges : décoché.
  • Triangulate Faces : au choix. Le laisser décoché conserve les quads dans le FBX (plus lisible), Unity triangulera de toute façon. Le cocher vous garantit un résultat identique à votre viewport Blender, ce qui évite les surprises de shading sur les n-gons.
  • Tangent Space : coché si vous utilisez des normal maps et que vous voulez des tangentes importées. Attention, cela exige un mesh entièrement triangulé et sans faces dégénérées. Sinon, laissez Unity calculer les tangentes en Mikktspace.

Armature et animation (modèles riggés)

  • Add Leaf Bones : décoché. Évite les os « _end » parasites dans la hiérarchie Unity.
  • Primary Bone Axis : Y Axis, Secondary Bone Axis : X Axis (valeurs par défaut, conservez-les).
  • Armature FBXNode Type : Null.
  • Only Deform Bones : coché si votre rig comporte des os de contrôle (IK, pôles) inutiles au moteur.
  • Bake Animation : coché, avec NLA Strips ou All Actions selon votre organisation. Force Start/End Keying coché.

Path Mode et textures

Dans le panneau latéral de la fenêtre d’export :

  • Path Mode : Copy
  • Activer l’icône Embed Textures (le petit bouton à droite) si vous voulez que les images voyagent dans le FBX.

Pour un pipeline de production, nous recommandons plutôt l’inverse : Path Mode = Copy sans embed, et copier manuellement vos textures dans Assets/Textures/ côté Unity. Les textures embarquées gonflent le FBX et obligent à les extraire à chaque réimport.

Astuce : enregistrez votre preset

En haut de la fenêtre d’export FBX, cliquez sur le + à côté de « Operator Presets » et nommez-le Unity. Vous retrouverez tous ces réglages en un clic sur chaque projet.

Étape 3 : l’import côté Unity, onglet par onglet

Glissez le FBX dans un dossier Assets/Models/. Sélectionnez-le, l’Inspector affiche quatre onglets : Model, Rig, Animation, Materials.

Onglet Model

Paramètre Valeur Commentaire
Scale Factor 1 Si vous devez mettre 0.01 ou 100, c’est que l’export Blender est mauvais. Corrigez à la source.
Convert Units Coché Convertit les unités FBX (cm) en mètres Unity
Bake Axis Conversion Coché Supprime la rotation -90° X parasite sur la racine
Import BlendShapes Décoché si inutile Gain de mémoire sur les props
Mesh Compression Off À n’activer que sur cible mobile contrainte
Read/Write Enabled Décoché Divise par deux la mémoire du mesh, sauf si vous modifiez le mesh par script
Generate Lightmap UVs Coché pour les éléments statiques Inutile en éclairage 100 % temps réel
Normals Import Respecte vos groupes de lissage Blender. Passez en Calculate + Smoothing Angle si le shading est cassé.
Tangents Calculate Mikktspace Cohérent avec le baking Substance / Marmoset / Blender

Onglet Materials

C’est ici que se joue la question « comment exporter Blender vers Unity avec les textures ».

  1. Material Creation Mode : Standard.
  2. sRGB Albedo Colors : coché (espace colorimétrique linéaire).
  3. Location : Use External Materials (Legacy) pour générer des fichiers .mat modifiables, ou Use Embedded Materials puis bouton Extract Materials… vers un dossier Assets/Materials/.
  4. Si les textures sont embarquées dans le FBX, cliquez sur Extract Textures… et rangez-les dans Assets/Textures/.
  5. Cliquez sur Apply.

Point crucial : Unity ne sait importer qu’une correspondance basique de BSDF Principled vers son shader. Les matériaux procéduraux de Blender (bruits, Musgrave, Voronoi, Geometry Nodes de shading) ne traversent jamais le FBX. Si votre look repose sur du procédural, il faut le baker en textures dans Blender (Bake > Diffuse / Normal / Roughness) et brancher ces images dans un matériau URP/HDRP côté Unity.

Correspondance des canaux Blender vers Unity (URP Lit)

Blender (Principled BSDF) Unity URP Lit À surveiller
Base Color Base Map Texture en sRGB
Metallic + Roughness Metallic Map (canal A = Smoothness) Unity utilise la smoothness = 1 – roughness
Normal Map Normal Map Format OpenGL (Y+), comme Blender. Cocher Texture Type: Normal map dans Unity.
Emission Emission Map Activer la case Emission dans le matériau
Ambient Occlusion (node mix) Occlusion Map Non transmis par FBX, à brancher à la main

Onglets Rig et Animation

  • Animation Type : None pour un prop, Generic pour une créature ou une machine, Humanoid pour un bipède destiné au retargeting.
  • En Humanoid, cliquez sur Configure… et vérifiez le mapping des os : un rig Rigify non nettoyé génère souvent des erreurs sur les épaules et les orteils.
  • Onglet Animation : décochez Import Animation sur les modèles statiques, cela évite des Animator inutiles sur chaque prefab.
blender unity 3d model export

Tableau de dépannage : symptôme, cause, correctif

Symptôme dans Unity Cause probable Correctif
Modèle 100x trop grand Apply Unit décoché ou Convert Units décoché Cocher Apply Unit (Blender) et Convert Units (Unity), Scale Factor à 1
Modèle 100x trop petit Unit Scale de la scène Blender à 0.01 Remettre Unit Scale à 1.0 et remodeler à l’échelle réelle
Modèle couché, rotation X = -90 Conversion d’axes non cuite -Z Forward / Y Up côté Blender + Bake Axis Conversion côté Unity
Modèle couché alors que Transform = 0 Double conversion (Apply Transform ET Bake Axis Conversion) N’en garder qu’une seule des deux
Objet déformé / aplati Scale non appliquée dans Blender Ctrl + A > Rotation & Scale
Le prefab tourne autour d’un point décalé Origine de l’objet éloignée du mesh Set Origin to Geometry ou 3D Cursor, puis réexporter
Faces invisibles ou noires Normales inversées, scale négative Shift + N en Edit Mode, appliquer les miroirs
Shading facetté ou arêtes dures partout Smoothing mal exporté Smoothing = Face dans Blender, Normals = Import dans Unity
Matériau rose / magenta Shader incompatible avec le render pipeline Edit > Rendering > Materials > Convert… ou réassigner URP/HDRP Lit
Pas de texture, juste du gris Path Mode en Auto, textures non copiées Path Mode = Copy, puis Extract Textures dans Unity
Normal map « en creux » Texture non marquée comme Normal map Texture Type = Normal map dans l’importeur de texture
Os supplémentaires dans la hiérarchie Add Leaf Bones activé Décocher Add Leaf Bones et réexporter

FBX, .blend ou glTF : quel format choisir ?

Format Avantages Inconvénients
FBX Contrôle total des réglages, standard de l’industrie, animations et skinning fiables Étape d’export manuelle à chaque itération
.blend direct Réimport automatique à chaque sauvegarde, idéal en prototypage Nécessite Blender installé sur chaque poste et sur la machine de build, aucun contrôle des options d’export, embarque toute la scène
glTF 2.0 Export PBR très propre, léger, Y-up natif Pas supporté nativement par Unity, nécessite un package tiers

En production, notre recommandation reste le FBX avec preset enregistré. Le .blend direct est pratique pour itérer vite sur un prototype, mais il est connu pour générer l’erreur « Blender could not be found » sur les machines de build ou chez un collègue qui n’a pas la même version installée.

blender unity 3d model export

Checklist express avant chaque export

  1. Unit Scale = 1.0, Metric, Meters
  2. Ctrl + A > Rotation & Scale appliquées
  3. Origine de l’objet au bon endroit, objet placé en (0,0,0)
  4. Normales recalculées, pas de face inversée
  5. UV map présente, objets et matériaux nommés proprement
  6. Export FBX : Selected Objects, Mesh (+ Armature), Apply Scalings = FBX All, -Z Forward, Y Up, Apply Unit, Smoothing = Face, Apply Modifiers
  7. Unity : Scale Factor 1, Convert Units, Bake Axis Conversion, Normals = Import, Tangents = Mikktspace
  8. Extraire matériaux et textures, vérifier le shader du pipeline

FAQ : exporter Blender vers Unity

Pourquoi mon modèle Blender est-il énorme dans Unity ?

Parce que le FBX s’exprime en centimètres. Si Apply Unit n’est pas coché côté Blender ou si Convert Units est désactivé dans l’Inspector Unity, le facteur 100 n’est pas compensé. Vérifiez aussi que l’échelle de l’objet a bien été appliquée avec Ctrl + A.

Comment éviter la rotation -90° sur X à l’import ?

Exportez en -Z Forward / Y Up depuis Blender, puis cochez Bake Axis Conversion dans l’onglet Model de Unity. N’activez pas en plus l’option expérimentale Apply Transform de Blender, sinon les deux corrections s’annulent et le modèle se retrouve couché.

Les textures sont-elles exportées avec le FBX ?

Uniquement si vous réglez Path Mode sur Copy et activez Embed Textures. Il faut ensuite cliquer sur Extract Textures dans l’onglet Materials de Unity. Les matériaux procéduraux (nodes de bruit, Geometry Nodes de shading) ne sont jamais transférés : il faut les baker en images.

Faut-il trianguler le mesh avant d’exporter ?

Ce n’est pas obligatoire, Unity triangule à l’import. Mais trianguler soi-même dans Blender (ou via l’option Triangulate Faces) garantit que le résultat visuel correspond exactement au viewport, ce qui est appréciable sur les surfaces courbes et les n-gons.

Peut-on importer un fichier .blend directement dans Unity ?

Oui, Unity lit les .blend en lançant l’exportateur FBX de Blender en arrière-plan. Cela suppose que Blender soit installé sur la machine. C’est pratique en prototypage, mais déconseillé en équipe ou pour une pipeline de build automatisée.

Où placer le pivot d’un asset destiné à Unity ?

À la base de l’objet, au centre de son empreinte au sol, pour les props, bâtiments et personnages. Pour une porte ou un levier, placez-le sur l’axe de rotation. L’origine Blender devient le pivot du GameObject.

Comment exporter plusieurs animations dans un seul FBX ?

Créez vos actions dans le Dope Sheet / Action Editor, assurez-vous qu’elles ont un Fake User actif, puis exportez avec Bake Animation et All Actions coché. Unity créera un clip par action dans l’onglet Animation. Pour un contrôle plus fin, préférez des NLA Strips nommées ou un FBX par animation (convention [email protected], [email protected]).

En résumé

Exporter Blender vers Unity sans mauvaise surprise repose sur trois piliers : une scène Blender propre (unités, transformations appliquées, pivot placé), un preset FBX correct (-Z Forward, Y Up, Apply Unit, FBX All) et un Inspector Unity cohérent (Scale Factor 1, Convert Units, Bake Axis Conversion). Une fois votre preset enregistré, l’opération prend dix secondes et devient totalement reproductible sur l’ensemble de vos assets.

Besoin d’un accompagnement sur votre pipeline 3D ou d’un audit de vos assets avant intégration moteur ? L’équipe Mr Bark est à votre disposition.

Leave a Comment