2015-11-30 3 views
0

Je fais mes premiers pas en utilisant JavaScript et en jouant avec Three.js aussi.Charger une animation Blender dans Three.js en utilisant l'exporteur Three.js (JSON)

J'apprends comment exporter et charger une animation de Blender Three.js et pour le faire, je suis en utilisant cet exemple à partir du site Three.js: http://threejs.org/examples/#webgl_morphtargets_horse

J'ai fait une animation de Blender (http://s000.tinyupload.com/?file_id=07429365581548704592) et quand Je l'exporte et je le charge sur Three.js en utilisant le même code qu'il ne fonctionne pas. Savez-vous pourquoi je ne peux pas voir l'animation?

Je ne sais pas si c'est une limitation de l'exportateur ou si c'est un problème de mon animation.

Merci

Répondre

1

Après avoir passé de nombreuses heures à essayer d'obtenir des animations Blender travaille avec la version actuelle de Three.js est ma conclusion qu'il est fonctionnellement sinon complètement impossible.

I posted a question ici à propos de ce retour. J'ai fini par devoir répondre à ma propre question. Je couvre les convolutions que vous devez parcourir pour obtenir un des exemples (les plus simples) à partir du fichier .blend fourni avec three.js lui-même. Les exemples et la documentation officiels recommandent d'utiliser ObjectLoader pour charger les exportations de Blender, mais cela ne fonctionne pas du tout avec le système d'animation three.js actuel. La nouvelle animation utilise des maillages skinnés, et si vous regardez la source ObjectLoader (src/loaders/ObjectLoader.js), vous verrez qu'il n'y a aucune logique qui utilise THREE.SkinnedMesh. Le nouveau mélangeur d'animation, THREE.AnimationMixer, n'est pas couvert dans la documentation officielle de three.js. En outre, l'exportateur de Blender est, selon la façon dont vous le regardez, très floconneux ou tout simplement cassé. Je vais plus en détail à ce sujet dans la question que j'ai liée ci-dessus, mais par exemple l'exportateur change l'état du modèle: vous devez passer en mode pose, sélectionnez tous vos os, Alt-G et Alt-R pour les réinitialiser mode repos, puis sélectionnez le maillage et passez en mode objet avant de faire une exportation, et l'exportation transformera tous les os, donc si vous exportez juste et exportez immédiatement à nouveau, par exemple, vous obtiendrez des résultats incohérents. De tout cela, je conclus que l'importation d'animations Blender dans three.js est effectivement, voire complètement, cassée, donc si vous travaillez sur un projet pour une implémentation immédiate, vous devez soit changer votre pipeline pour ne pas utiliser Blender ou changer la fin du rendu pour ne pas utiliser three.js.

+0

Malheureusement, je dois dire que vous avez raison. Le code d'animation est un peu hors de contrôle. À présent, je me concentre sur le nouveau ColladaLoader, donc même si ce n'est pas très efficace, nous aurons au moins un workflow fonctionnel. – mrdoob

+0

Donc, cela signifie pratiquement qu'il n'y a aucun moyen de charger mon animation avec Three.js? – gnazoa