Convertir un modele 3D .obj vers usdz

15/12/2018

Convertir un modèle 3D .obj vers .usdz

USDZ ?

Avec ARKit 2 et iOS 12, nous avons maintenant la possibilité d’utiliser le format USDZ mis au point par Apple et Pixar, qui en substance est un fichier 3D zippé (USD Zip). Documentation USDZ

L’intérêt majeur de ce format est qu’il permet d’obtenir un rendu 3D et /ou en réalité augmentée sans aucune application spécifique. Grâce à iOS 12, il est possible de voir et de manipuler le fichier en 3D sur son iPhone, mais aussi de le voir et de le manipuler dans l’espace en réalité augmentée depuis une page web !

Vous pouvez tester ceci à condition d’avoir un iDevice compatible sous iOS 12.

Je ne vais pas rentrer dans le détail de l’utilisation de ce fichier, mais plutôt comment le créer à partir d’autres formats tel que le .obj.

Conversion
Pré-requis
  • Éviter les espaces et les caractères spéciaux dans les noms des fichiers,
  • Il vous faut tout d’abord Xcode 10 et sa ligne de commande installée sur votre Mac (lien),
  • Il vous faut ensuite un fichier 3D à convertir. Pour le moment, il est spécifié que seuls les formats Object (.obj), Alembic (.abc) et USD (.usda / usdc) sont pris en charge,
  • La texture du fichier 3D (diffuse map / Albedo map),
  • Éventuellement une AOMap (Ambient Occlusion : ombres internes) / Normal Map (details de la texture) / Roughness Map(aspect de la texture) / Metallic Map (reflexion)/ Emissive Map (lumières émises).
  • L’Albedo, la Normal Map et l’Emissive Map doivent être en RGB
  • La Metallic Map, roughness Map, et l’AO Map en valeurs de gris.
Mise en place

Une fois que tout est prêt, il vous faudra ouvrir le terminal de commande (cmd + espace / terminal) et utiliser la ligne de commande. Entre chaque commande, il suffit de mettre un espace et ne pas oublier de spécifier explicitement l’extension du fichier (.obj pour la source et .usdz pour la destination).

✋🏼‼️ Pro tips : les chemins de dossier/fichier sont souvent longs.. Pour vous simplifier la vie, commencer par écrire la commande xcrun usdz_converter, puis prenez votre fichier source et faites le glisser dans le terminal. Cela a pour effet de mettre son chemin d’accès automatiquement.

xcrun usez_converter chemin_du_fichier_source.obj
chemin_du_fichier_convertis.usdz

Ceci avec tous les paramètres possibles (exemple Apple) :

xcrun usdz_converter RetroTV.obj RetroTV.usdz

  -g RetroTVMesh // appliquer les textures à un mesh ou un submesh

  -color_map RetroTV_Albedo.png

  -metallic_map RetroTV_Metallic.png

  -roughness_map RtroTV_Roughness.png

  -normal_map RetroTV_Normal.png

  -ao_map RetroTV_AmbientOcclusion.png

  -emissive_map RetroTV_Emissive.png

Et sur un cas plus concret :

xcrun usdz_converter /User/MonNom/Dossier/RetroTV.obj
/User/MonNom/Dossier/RetroTV.usdz

  -color_map /User/MonNom/Dossier/Tex/RetroTV_Albedo.png

  -metallic_map /User/MonNom/Dossier/Tex/RetroTV_Metallic.png

-roughness_map /User/MonNom/Dossier/Tex/RetroTV_Roughness.png

-normal_map /User/MonNom/Dossier/Tex/RetroTV_Normal.png

-ao_map /User/MonNom/Dossier/Tex/RetroTV_AmbientOcclusion.png

-emissive_map /User/MonNom/Dossier/Tex/RetroTV_Emissive.png

Pour plus de clarté, les paramètres sont à la ligne, mais dans le terminal, il suffit de les séparer par un espace.

✋🏼‼️ Pro tips : si vos textures et votre modèle sont dans le même dossier, alors il n’y a plus besoin de spécifier le chemin d’accès pour chacuns des types de map. Une fois que le chemin a été spécifié pour le modèle, mettez juste le nom du PNG contenant la texture avec son extension.

Dernier exemple avec des textures différences sur des submesh :

xcrun usdz_converter 
/User/MonNom/Downloads/airplane_engine/airplane_engine.obj
/User/MonNom/Downloads/airplane_engine/airplane_engine.usdz

-g defaultGroup2

-color_map aubes_BaseColor.png

-g defaultGroup0

-color_map boddy_BaseColor.png

Et voilà ! On a un super fichier converti au format USDZ et prêt à être utilisé dans votre application de réalité augmentée !

Conclusion

Évidemment, il existe des outils en ligne gratuits pour faire le même job, mais je voulais vous présenter la manière qui est, à mon sens, la plus simple si votre fichier 3D de départ est de qualité.

Nicolas • Développeur iOS Swift  Nantes

MENTIONS LÉGALES

© 2019 Nicolas Bachur. Tous droits réservés.