2013-10-11 2 views
0

J'ai chargé un maillage de caractères bipède à l'aide du collaldoader.Comment positionner les os dans un objet collabooader de trois.js (animation squelettique)

Je peux déplacer le maillage en changeant la position et la rotation sur l'objet dae.

dae.rotation.y+=0.01; 
dae.updateMatrix(); 

fonctionne très bien

Mais je ne peux pas sembler bouger les os individuels .... une idée ne vont à ce sujet?

dae.children[0].rotation.z += 0.1; 
dae.children[0].quaternion._x += 0.1; 
dae.children[0].position.x += 0.1; 
dae.children[0].matrixAutoUpdate = true; 
dae.children[0].matrixWorldNeedsUpdate = true; 
dae.children[0].updateMatrix(); 

ne fonctionne pas

Projet entier:

https://codenvy.com/ide/tmp-9q4s6enl9imzzs

lien Exécuter: (peut changer les personnes mise à jour/relancer le projet)

http://app-slm37q4a3tzdf3c7.apprun4.codenvycorp.com/

(change chaque fois que quelqu'un fait un Exécuter> Exécuter l'application donc pas besoin d'avoir l'URL d'exécution répertorié ici ..)

Répondre

0

Ce n'est pas aussi simple que je l'espérais. Il y a une hiérarchie d'objets créés par le chargeur mais les déplacer n'affecte pas les sommets de la géométrie.

Les processus qui doivent être implémentés sont connus sous le nom d '«équations de dépouillement» pour tranformer la géométrie des sommets en utilisant une orientation de l'os pondéré ainsi que d'autres matrices.

se réfèrent également à: COLLADA: Inverse bind pose in the wrong space?

0

Dans votre Animer la fonction que vous devez ajouter ce avant d'appeler render(): requestAnimationFrame (Animate) ; Au moment où vous réexécutez la fonction animer avant même que vous n'apportiez les modifications aux os. Donc, évidemment, rien ne bouge. Tout dépend de l'ordre du code.

Si cela ne fonctionne pas pourriez-vous me dire si vous avez une erreur dans votre console?

+0

Ce n'est pas ça et malheureusement pas d'erreurs de console. – PeanutPower

+0

A fait de la lecture, il ne doit pas toujours être enfants [0]. Peut-être que vous pouvez savoir ce qu'il faut répondre si vous imprimez votre modèle (le dae) dans console.log. Vous obtiendrez beaucoup d'informations à partir de là – MariusJP

0

Je voulais faire cette réponse un commentaire sur la question d'origine, comme il est suggéré d'éliminer le problème avec la piste de l'application Codenvy la modification des URL pour chaque clic. L'URL collée dans la réponse est une URL d'espace de travail temporaire. Donc, une fois que le projet est inactif pendant 10 minutes, cet espace de travail sera détruit. Si l'utilisateur qui a posté ce projet peut copier son projet dans l'espace de travail de son compte, il y a une option appelée "Share-> Factory" qui générera une URL a) permanente, et b) créera un espace de travail entièrement cloné pour chaque personne qui clique dessus. Si vous nous envoyez les fichiers ou partagez votre compte, nous pouvons créer l'usine qui peut être ajoutée à la question originale afin que tous les spectateurs voient un clone entièrement fonctionnel.

Questions connexes