Voir la version complète : Cinema4D animation et three.js
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 :icon_prie:
César Vonc
27/07/2019, 08h40
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 ?
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
https://zupimages.net/up/19/30/2tmd.gif
l'export fbx (c4d r20)
https://zupimages.net/up/19/30/x42b.png
le rendu
https://zupimages.net/up/19/30/99i2.gif
le FBX loader comme dans la doc
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);
});
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.
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 :(.
César Vonc
28/07/2019, 19h37
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/blob/dev/examples/js/loaders/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.
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
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
Résultat :
https://zupimages.net/up/19/30/xyjk.gif
Alors que j'en ai qu'une sous c4d
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)
Résultat :
https://zupimages.net/up/19/30/zv3l.gif
César Vonc
22/10/2019, 00h25
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.
Powered by vBulletin® Version 4.2.1 Copyright © 2024 vBulletin Solutions, Inc. Tous droits réservés