Bonjour à tous ,
J’essaie à titre expérimentale d'exporté des modèles de cinema4D vers three.js.
Alors pour les objets immobiles pas de problème, pour les animations simples (position, scale, rotation) impec.
Mais alors faire des animations avec des joints, soit ça part en sucette, soit ça charge pas. J'ai testé les exports collada, glTf, fbx, rien ne fonctionne correctement. J'ai testé de baker les animations pour éviter des bugs mais rien n'y fait.
Il y a bcp de ressource avec blender mais avec c4d j'ai pas trouvé gd chose.
Merci pour votre aide
Salut,
De mon expérience, le format FBX marche le mieux. Quel genre de soucis as-tu ? As-tu également bien téléchargé la dernière version de three.js et du fbxloader ?
Dernière modification par César Vonc ; 27/07/2019 à 09h00.
Oui j'ai bien les dernières versions des loaders du pack officiel.
Voici mon process
Je crée un mesh avec joint dont j'anime le goal
l'export fbx (c4d r20)
le rendu
le FBX loader comme dans la doc
J'ai testé d'autre export collada, GLTF. J'ai testé un bake alembic + export fbx. Le bake en PLA. J'ai tjr des rendus comme ça ou alors ça charge pas.Code:var loader = new THREE.FBXLoader(); loader.load('./cube.fbx', function (object, onLoad, onProgress, onError) { mixer = new THREE.AnimationMixer(object); var action = mixer.clipAction(object.animations[0]); action.play(); object.traverse(function (child) { if (child.isMesh) { child.castShadow = true; child.receiveShadow = true; } }); if (onError) { console.log(onError) } scene.add(object); });
Je pense que je dois mal faire les choses concernant l'animation de joints mais je trouve pas d'infos à ce sujet
Bon après multiple essais, j'ai pas trouvé mieux que de passer par blender pour réexporter en fbx, ce qui règle le problème .
As-tu essayé d'exporter ton fbx dans d'autres versions que la 7.5 ?
Normalement elle devrait marcher mais il doit y avoir un bug dans le fbxloader, la doc stipule que les fichiers sont pris en charge à partir de la 6.4 en version binaire :
https://github.com/mrdoob/three.js/b...s/FBXLoader.js
Peux-tu poster ton fichier d'exemple ainsi que le fbx de blender ? J'y jetterai un œil dès mon retour de vacances.
Dernière modification par César Vonc ; 28/07/2019 à 19h53.
J'ai ajouté les fichiers en PJ.
Oui j'ai testé toutes les versions fbx, même résultat.
Les différences que j'ai remarqué entre les deux versions c'est le poid le fichier c4d est ~ trois fois moins lourd.
Et les animations sont exportés de manières différentes.
Blender me retourne un tableau avec 3 animations
Résultat :Code:
- Array(3)
- 0: AnimationClip
- duration: 3
- name: "Root|Joint_3_Goal|CINEMA_4D_Main|Layer0"
- tracks: (15) [VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack]
- uuid: "2B3F7C81-B4C7-49D1-86B0-2D33DB22FE8F"
- __proto__: Object
- 1: AnimationClip
- duration: 3
- name: "Root|Root|CINEMA_4D_Main|Layer0"
- tracks: (15) [VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack]
- uuid: "2BD9D82A-16D8-48AE-85EA-9087F0D4B351"
- __proto__: Object
- 2: AnimationClip
- duration: 3
- name: "Root|Root|CINEMA_4D_Main|Layer0.001"
- tracks: (15) [VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack, VectorKeyframeTrack, QuaternionKeyframeTrack, VectorKeyframeTrack]
- uuid: "DA88F3BB-5BFE-46C4-B145-5B87E96B02B6"
- __proto__: Object
- length: 3
Alors que j'en ai qu'une sous c4d
Résultat :Code:
- 0: AnimationClip
- duration: 3
- name: "CINEMA_4D_Main"
- tracks: (3) [QuaternionKeyframeTrack, QuaternionKeyframeTrack, QuaternionKeyframeTrack]
- uuid: "7D629C2E-8C07-4302-A217-E29DD4755675"
- __proto__: Object
- length: 1
- __proto__: Array(0)
Je confirme que l'export FBX de C4D n'est pas très compatible avec ThreeJS, toujours à l'heure actuelle, je cherche également une solution autre que Blender. : /
Édit : J'arrive à un résultat bien meilleur si tous les axes des objets animés sont centrés et sans rotation.
Dernière modification par César Vonc ; 23/10/2019 à 00h22.