Three.js: Le modèle exporté par Blender se déforme lorsque l'animation est appliquée

Créé le 7 sept. 2014  ·  3Commentaires  ·  Source: mrdoob/three.js

Je rencontre un problème étrange lors du chargement de modèles à partir de l'exportateur Blender. Lorsque je charge le modèle sans appliquer d'animation, cela ressemble à ceci--

screen shot 2014-09-07 at 1 26 00 am

mais une fois que j'ai appliqué l'animation, le modèle se déforme et ressemble à ceci--

screen shot 2014-09-07 at 1 24 25 am

avec les doigts horriblement étirés et le corps tordu. Le modèle effectue toujours l'animation, mais déformé.

Voici le code que j'utilise pour charger et animer le modèle

    var loader = new THREE.JSONLoader();
    loader.load( "js/models/Golfer_SWING.js", function(geometry, materials){

    for ( var i = 0; i < materials.length; i ++ ) {
        var m = materials[ i ];
        m.skinning = true;
    }

    playerObject = new THREE.SkinnedMesh( geometry, new THREE.MeshFaceMaterial( materials ) );
    playerObject.position.set( -50, -250, 0 );
    playerObject.scale.set( 100, 100, 100 );
    playerObject.rotation.y = -180 * Math.PI/180;

    scene.add( playerObject );

    playerObject.castShadow = true;
    playerObject.receiveShadow = true;

    helper = new THREE.SkeletonHelper( playerObject );
    helper.material.linewidth = 3;
    helper.visible = false;
    scene.add( helper );
    swingAnimation = new THREE.Animation( playerObject, geometry.animations[0] );
    swingAnimation.play();

    } );

J'ai essayé un tas de modifications de configuration couramment suggérées dans le fichier blend, mais aucune d'entre elles ne fonctionne. Voici un lien vers le fichier blend.

http://cl.ly/3H3M2T3i1o1p

J'utilise r68 et le dernier exportateur de mélangeur.

Help (please use the forum)

Commentaire le plus utile

J'ai apporté quelques correctifs à votre fichier blender pour le rendre adapté à l'exportation de three.js.

  • Réinitialiser l'échelle des objets maillés (ctrl-A, en mode objet)
  • Modification de l'animation pour qu'elle commence à partir de l'image 1, plutôt que de l'image 0. et décalage de toutes les autres images clés d'une image.
  • Ajout d'une image clé de pose de repos à l'image 0 (en dehors de la nouvelle plage d'animation)
  • Ajout de tous les sommets du maillage du club à un groupe de sommets nommé "hand.R" (identique au nom de l'os)

Vous pouvez maintenant exporter correctement le modèle et l'animation en sélectionnant l'image 0, puis en exportant.

https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend

Tous les 3 commentaires

Vous _devez_ exporter votre maillage et votre animation avec le squelette débarrassé de toutes les transformations.

J'ai essayé avec votre fichier et j'ai obtenu des résultats corrects en sélectionnant chaque os en mode pose, puis en sélectionnant Pose->Effacer la transformation->Tout, puis en effectuant une exportation en trois.js.

Cela n'affectera pas votre scène ou d'autres images clés, mais vous devez le faire à chaque exportation.

J'ai apporté quelques correctifs à votre fichier blender pour le rendre adapté à l'exportation de three.js.

  • Réinitialiser l'échelle des objets maillés (ctrl-A, en mode objet)
  • Modification de l'animation pour qu'elle commence à partir de l'image 1, plutôt que de l'image 0. et décalage de toutes les autres images clés d'une image.
  • Ajout d'une image clé de pose de repos à l'image 0 (en dehors de la nouvelle plage d'animation)
  • Ajout de tous les sommets du maillage du club à un groupe de sommets nommé "hand.R" (identique au nom de l'os)

Vous pouvez maintenant exporter correctement le modèle et l'animation en sélectionnant l'image 0, puis en exportant.

https://dl.dropboxusercontent.com/u/46299249/Golfer_FIXED.blend

satori99, merci beaucoup ! Je me bats avec ça depuis des jours. Et merci beaucoup d'avoir fourni un fichier corrigé. Cela fonctionne maintenant pour moi :)

Cette page vous a été utile?
0 / 5 - 0 notes