web-dev-qa-db-fra.com

Comment importer une scène 3D (fichier .obj avec fichier .mtl)

J'ai acheté un modèle 3D d'une pièce. Le modèle est au format .obj. Maintenant, j'essaie d'importer ce modèle dans Unity3D.

Le modèle est venu avec:

  • 5 x .obj fichiers 
  • 5 x .mtl fichiers
  • n x .jpg fichiers
  • n x .tga fichiers

Les fichiers .mtl contenaient des chemins qui n'existent pas sur mon PC. Alors j'ai enlevé les chemins. Les fichiers images (.jpg & .mtl) se trouvent dans le même répertoire que les fichiers .obj. Lorsque j'ai essayé d'importer les fichiers .obj, la pièce ne contenait aucun matériau. J'ai ensuite essayé d'utiliser le convertisseur FBX (avec l'option "Embed media" cochée) pour convertir le .obj en .fbx et toujours lorsque je l'importe, il n'y a pas de matériau dans la pièce 3D (il est invisible). J'ai également essayé d'importer tous les fichiers .jpg et .tga dans un dossier situé sous le dossier racine Assets dans Unity, puis en important les fichiers .obj et .mtl.

Qu'est-ce que je fais mal? Unity3D utilise-t-il le .mtl pour déterminer où trouver les fichiers image requis? Existe-t-il un journal d'importation qui pourrait éventuellement nous éclairer?


MISE À JOUR [25/08/2015]

  1. J'ai édité tous mes fichiers .mtl et supprimé les chemins, de sorte qu'il ne contienne que le nom de fichier de l'image (c'est-à-dire map_Ka Arch 53-wood 14.jpg).

  2. J'ai copié tous mes fichiers .jpg et .tga dans un dossier "Textures" du même répertoire.

  3. J'ai utilisé le convertisseur FBX pour convertir les fichiers .obj en .fbx.

  4. Importé le .fbx dans Unity3D.

Il crée toujours un modèle sans matériau (invisible) dessus, mais le dossier de matériau qu'il crée automatiquement lors de l'importation contient beaucoup moins de fichiers et ces fichiers mappent vers les images que j'ai importées sous mon dossier Assets - peut-être que cela progresse? Pas certain...

MISE À JOUR [25/08/2015] # 2

Peut-être que mon modèle est importé correctement mais je ne suis pas en train de régler quelque chose? Mon modèle .fbx que j'ai importé possède un nombre de filtres de maillage en dessous. L'albédo de chaque filtre de maillage correspond à une image que j'ai importée sous mon dossier Assets (voir la capture d'écran), mais toujours quand je fais glisser le modèle racine dans ma scène, il est transparent - pourquoi?

MISE À JOUR [27/08/2015]

Je n'ai pas réussi à faire fonctionner le combo .obj/.mtl. J'ai réussi à convertir l'auteur en fbx, donc j'essaie de le faire fonctionner également (les mêmes problèmes que je rencontre avec mes fichiers fbx convertis). Je crée une nouvelle question SO à ce stade ( Le modèle .fbx importé est transparent )

 enter image description here

 enter image description here

6
Mike6679
  • utilisez fbx (convertissez obj en fbx, obj ne fonctionne pas) 
  • importer fbx en tant qu'actif 
  • importer des fichiers images textrure en tant qu'actif
    (Nom de l'image: nom_modèle_Texture_0.jpg nom_modèle_Texture_1.jpg etc., nom fbx: nom_modèle.fbx) 
  • sélectionnez le modèle parmi vos favoris -> tous les modèles
    dans l'onglet inspecteurs sous matériaux 
  • sélectionner les matériaux d'importation> nommer les matériaux 
  • sélectionnez le nom du modèle + le matériau du modèle
    recherche matérielle 
  • sélectionner le dossier du matériel local 
  • cliquez sur appliquer
    terminé 
3
user7029091

Le moyen le plus simple (et correct) de le faire sera de ne pas utiliser le fichier .mtl. Apportez plutôt les textures et les modèles, puis créez un matériau dans Unity. Comme point de départ, il serait probablement préférable d’utiliser le shader standard. Ensuite, faites simplement glisser les textures sur les propriétés appropriées du matériau.

Il y a une petite chance que ce qui précède ne fonctionne pas si les UV ne sont pas corrects dans le maillage, mais il y a de très bonnes chances que cela fonctionne.

Vous n'avez pas mentionné les noms des textures, mais ils correspondront probablement aux noms de propriétés ..__ Par exemple, _d_ peut être le Diffuse/Albedo.

ÉDITER: dans les cas où l'option ci-dessus n'est pas une option (comme votre objet complexe), vous pouvez réussir en utilisant les options Import Materials, Material Naming et Material Search dans les paramètres d'importation du modèle. Cependant, cela suppose qu'au moins les références de texture utilisent le .obj, ce qui peut ne pas être le cas. 

1
Matt