Existe-t-il une API autre que Blender pour produire des fichiers de fusion?

Jai une application python qui crée des modèles 3D. Il est déjà capable dexporter ces modèles au format FBX, DAE, OBJ etc. Dans la grande majorité des cas, la prochaine étape du pipeline consiste à retoucher le modèle à lintérieur de blender, ce qui signifie que je dois ensuite importer les modèles dans blender depuis le lesdits formats dexportation.

Cependant, certaines fonctionnalités spécifiques à Blender ne peuvent pas être exprimées dans ces formats de fichiers. Lidée évidente pour résoudre ce problème serait dexporter directement vers un fichier de fusion plutôt que vers un format de fichier tiers indépendant.

En recherchant des moyens de le faire, jai « trouvé http://wiki.blender.org/index.php/User%3aIdeasman42/BlenderAsPyModule qui semble être une approche . Cependant, cela semble nécessiter un mixeur personnalisé.

Jai également trouvé les spécifications binaires pour le format de fichier, notamment http://wiki.blender.org/index.php/Dev:Source/Data_Structures/DNAStructs et (quelques autres liens que je » ne suis pas autorisé à inclure dans le guichet postal).

… donc évidemment cela « serait possible (quoique fastidieux) pour écrire une fonction dexportation avec un peu dessai une erreur.

Cependant, avant de faire ceci: est-ce que cela a déjà été fait? Existe-t-il une bibliothèque / API existante pour produire des fichiers de mélange en dehors de Blender?

Commentaires

  • Question, à quel point les spécifications sont-elles fixes?
  • Si nous ' parlons des DNAStructs, etc., jai ' limpression que ce nest pas une spécification de format de fichier formelle , juste une indication de son apparence habituelle. Les fichiers de fusion sapparentent davantage à des vidages de mémoire quà lorganisation de données structurées. Mais je ' ne suis en aucun cas un expert en la matière.

Réponse

Je ne sais pas comment exporter directement vers Blender (cela semble trop compliqué), mais vous pouvez importer des fichiers PLY / STL / etc , et puis script toutes les fonctionnalités supplémentaires que vous souhaitez.

Dans mon cas, jétais libre de choisir le programme de CAO original, jai donc choisi de construire directement dans Blender via le PyModule. Je travaille avec Blender complètement séparé du GUI, et ne repose que sur un python3 externe et le module bpy. Le module bpy est facile à faire .. et vous pouvez le garder largement séparé de votre installation blender existante (je lance à partir du dossier source).

Exécutez simplement cette commande ( assurez-vous de ne pas avoir de $ HOME / src ):

git clone http://git.blender.org/blender.git && cd blender && git submodule update --init --recursive && git submodule foreach git checkout master && git submodule foreach git pull --rebase origin master && build_files/build_environment/install_deps.sh --with-all --skip-osl && sudo make bpy && cd .. && rm -rf blender && sudo rm -rf build_linux_bpy && rm -rf $HOME/src # this gets bpy python module 

Jai également trouvé ceci: https://code.google.com/p/pyblenderfile/ mais, honnêtement, je ne vois pas beaucoup de bénéfices. Ce nest pas assez développé gh pour permettre tout importer, jai donc trouvé une meilleure façon de faire la même chose en utilisant le module bpy.

Voici ce que je fais:

– construire des trucs dans blender (je le fais via python, sans jamais démarrer lapplication officielle)

import bpy #build stuff bpy.ops.wm.save_as_mainfile(filepath="./objects8.blend") 

– importer le modèle

import bpy bpy.ops.wm.open_mainfile(filepath="./objects8.blend") 

Fonctionne très bien pour moi. Jai quelques problèmes pour recréer des choses que vous pouvez faire dans linterface graphique, mais cest principalement parce que Blender a une documentation terrible pour le code (imo). Pourtant, vous pouvez faire des trucs sympas puisque vous appelez toutes les commandes équivalentes directement en python et quil sexécute en utilisant le module bpy.

Commentaires

  • Utilisation de blender api était une approche que nous utilisions auparavant, mais en grande partie abandonnée en raison des changements fréquents dAPI dans blender et de la charge de demandes dassistance des utilisateurs qui ne pouvaient pas ' trouver comment installer un plugin dans blender . Mais le fichier pyblender ressemble à un début lisible pour déterminer les structures de base du fichier blend. Merci!

Réponse

Il ny a pas dAPI officielle pour écrire des fichiers blender en dehors de blender. cependant, quelques personnes ont écrit des façons de lire les fichiers de Blender. le seul que jai vu en python qui soit ouvert est Blender Aid https://code.google.com/p/blender-aid/

it lit le fichier blender et entre des informations dans une base de données sur les liens dun fichier à un autre.

Cela pourrait être un bon point de départ pour vous décrire votre propre script pour créer des fichiers blend si vous choisissez de suivre cette voie .

Réponse

BAM (Bam Asset Manager) est capable de manipuler les fichiers .blend (il peut extraire / emballer tout ce dont un .blend donné (bibliothèques, images …) dans un seul fichier), vous voudrez peut-être jeter un œil à son code .

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *