Dans Three.js, l'appel action.play()
fait disparaître les objets, sans aucune erreur ni avertissement sur la console.L'appel de three.js clipAction.play() fait disparaître les objets animés
J'utilise THREE.ObjectLoader
pour charger un fichier JSON créé dans blender. L'animation srt (position/scale/quaternion) se trouve dans le fichier généré. Comme le sont les morphtargets. Pour optimiser la taille de fichier, j'ai animé le srt comme une série d'objets nuls. Les pistes morphtargets sont dans l'objet principal, que je clone 5 fois pour construire les personnages (des ballons pour être précis). J'ai déjà fait des tests approfondis pour introduire l'animation forme/morph. Après avoir été un succès, j'ai finalisé toutes les animations. Seulement pour être éclipsé par les modèles qui disparaissent. L'animation srt (position/échelle/quaternion) fonctionnait bien avant. Mais après avoir refacturé le code, pour être moins spagettied, sur l'appel action.play()
. Les objets disparaissent juste, exactement alors. Echoing les mélangeurs et le tableau contenant les clips, tout semble correct (c'est à dire que je vois les pistes, les noms sont bons etc). Examinant aussi le JSON nouvellement généré, il semble le même et correct (aussi je n'ai pas changé les animations SRT, seulement introduit shapeanimation)
Donc je suis perdu, et pense que cela ressemble de plus en plus à un bug. D'expérience antérieure je sais que cela fonctionne (ou a fonctionné).
J'ai créé un jsFiddle: https://jsfiddle.net/oompol/3ya6sqed/
[modifier] Je me suis tourné sur le action.play et appeler la fonction à partir du lien dans la div [/ edit] S'il vous plaît noter que j'ai commenté appeler action.play()
. Donc, vous voyez le chargement et init travailler. Voir la fonction ci-dessous
function playScene(scene) {
for (parentName in srtMixers) {
var clpName = "balloon1_fly";
var clp = THREE.AnimationClip.findByName(animLib, clpName);
var action = srtMixers[parentName].clipAction(clp);
action.clampWhenFinished = true;
console.log("playScene:", clpName, clp, parentName, srtMixers);
//this is when the problem happens
action.play();
}
}
C'est le JSON Je chargement: https://rawgit.com/bakajin/2e3d2f6a722103ed4aefd76f6250ec08/raw/28cad35c20060d478499c0cd40a2753611993720/oomp-scene_balloons-oomp-6.9.4.json
Si vous exportez la scène comme 'window.fgScene = fgScene', puis inspectez dans Dev Tools, vous pouvez voir la position/rotation/échelle et il y a des échelles vers le haut de' 1000872413286' ... qui semble suspect? –
Sont-ils ?! Vous ne savez pas ce que vous voulez dire par window.fgScene = fGscene et quand vous définissez cela. Mais je sais que les échelles ne sont pas animées. Et si quelque chose leur arrive, cela les réduirait de moins de 1. – bakajin
Voir [Inspection de javascript sur jsfiddle.net dans Google Chrome] (https: // stackoverflow.com/questions/5655058/inspection-javascript-sur-jsfiddle-net-dans-google-chrome). Vous pouvez utiliser un débogueur pour inspecter 'scene.children' et voir les positions et les échelles de tout dans la scène. –