Je crée un jeu par navigateur avec three.js
et je veux charger un modèle de Maya 2013 dans ma scène. J'ai exporté le modèle sous forme de fichier obj.
Maintenant, je dois savoir comment le convertir en un fichier JS pour le three.js
-chargeur.
Voici mon chargeur jusqu'à présent:
var jsonLoader = new THREE.JSONLoader();
jsonLoader.load( "models/model.js", addModelToScene );
Merci d'avance
Si vous ne voulez pas utiliser Blender, mrdoob (made threejs) a un simple script python pour convertir obj en json. Exécutez simplement - ce script - dans le terminal comme ceci:
python convert_obj_three.py -i infile.obj -o outfile.js
C'est une réponse assez tardive. J'ai écrit un convertisseur pour lire les fichiers obj et les convertir au format JSON pris en charge par ThreeJS: https://github.com/theMaxscriptGuy/Windows_Programs/tree/master/Obj_To_ThreeJS
Téléchargez tous les fichiers au format Zip et exécutez converter.exe ...
Remarque: le script de convertisseur python a été mis à jour vers un outil basé sur js https://github.com/mrdoob/three.js/tree/dev/utils/converters =
Usage:
node obj2three.js model.obj
Lors de l'exportation de modèles 3ds max vers three.js à l'aide du [convert_obj_three.py][1]
script, un petit degré d'automatisation peut être atteint avec la commande suivante dans cmd promt:
cd C:\Python27 &
python convert_obj_three.py -i _obj\chromeBand.obj -o _json\chromeBand.js &
python convert_obj_three.py -i _obj\controlPanelCover.obj -o _json\controlPanelCover.js
J'ai écrit un script 3ds max qui imprimera la commande de script phyton pour plusieurs modèles et également un json avec les URL et coordonnées relatives des modèles. Le json est utile pour placer plusieurs modèles à la bonne position dans la scène.
(
local inputPath = "D:\Archive\Work\_Dev\_Convert\Obj\\"
local outputPath = "C:\Server\htdocs\viewer\assets\models\my-project\\"
local jsonPath = "assets/models/my-project/"
local myListEntry = "\n"
for o in selection do
(
myListEntry +=
"\"" + o.name + "\": {\n" +
"\t\"url\": \"" + jsonPath + o.name + ".js\",\n" +
"\t\"position\": {\n" +
"\t\t\"x\": \"" + o.position.x as string + "\",\n" +
"\t\t\"y\": \"" + o.position.z as string + "\",\n" +
"\t\t\"z\": \"" + (o.position.y * -1) as string + "\"\n" +
"\t}\n" +
"},\n"
)
myListEntry += "\n\n\n=== Run this using cmd promt: ===\n"
myListEntry += "cd C:\Python27 &\n"
for o in selection do
(
myListEntry += "python D:\Archive\Work\_Dev\_Convert\convert_obj_three.py -i " +
inputPath + o.name + ".obj -o " +
outputPath + o.name + ".js & \n"
)
myListEntry += "exit \n"
print myListEntry
actionMan.executeAction 0 "40472"
)
coordinates.mcr
et faites glisser et déposez le fichier dans la fenêtre 3ds max. Il ouvrira automatiquement la fenêtre du MaxScript Listener et imprimera les résultats. Copiez collez la commande python en cmd. Utilisez le json imprimé pour charger par lots vos modèles dans votre projet.Modifier:
Après avoir expérimenté un peu avec le script, j'ai fait une configuration qui me permet d'exporter mes modèles (en comptant plus de 20) en moins d'une minute de 3ds max pour ouvrir l'onglet du navigateur. Bien sûr, vous devrez peut-être ajuster la sortie json à votre convenance. J'espère que cela vous sera utile.
Créez un fichier Python nommé conversion.py
avec le contenu suivant: cliquez ici pour le voir .
Et puis exécutez cette commande dans votre terminal:
python conversion.py -i file.obj -o file.js