Jump to content

Physic and parent


Dad72
 Share

Recommended Posts

ok. Scene mise a jour:

 

http://www.babylonjs.com/playground/#2J98EA#4

 

Le perso représenter par un cube ce contrôle avec la touche Z et S du clavier. le collider autour du perso est attacher au cube avec parent. et quand ce collider touche le mur, le perso et son collider ne devrais pas le traverser.

 

Merci Deltakosh pour votre aide. cela serais un grand plus pour la physique si on pouvais faire cela.

Link to comment
Share on other sites

Dans mon éditeur on peut ajouter des colliders a des objets créer en vue de l’édition d'objets (maisons, perso....), donc j’attache un composant de type collider sur l'objets. je ne veux pas dans mon éditeur attacher un objet a un collider, ce qui reviendrais a créer avant le collider et ensuite l'objet, ce qui n’est pas cohérent a l'utilisation.

 

De plus dans le cas d'un personnage ou d'une monture (cheval), je ne contrôle pas un collider dans mon code, mais un objet de type jouable.

 

En faite, c’est n’est peut être pas parent que je doit faire, mais je cherche donc un moyen de joindre ce collider au personnage de façons a ne faire que un seule objets. mais pour la cohérence de mon éditeur cela doit être le collider que j'attache a un objet, une maisons, un personnage... je ne peut pas dire au utilisateur de créer pour les objet static l'objet et le collider ensuite, mais pour le cas des objet en mouvement, de créer le collider avant puis l'objets., je voudrais que mon éditeur garde la même ligne de création et ajout de composant.

 

Quelle est l'autre moyen de pouvoir lier un objet a un autre de façons a ne créer que un seule objets. je comprend que parent n'est pas approprier.

 

Merci DK

Link to comment
Share on other sites

L'approche inverse na marche pas correctement DK, car quand re scale le cube, mon personnage se scale aussi, vue que le perso est enfant du cube. ce qui fait que j'ai un personnage tout déformer.

 

Existe t'il le moyen de joindre un objet avec un autre objet de façons a ne faire que un seule objets ? cela pourrais fonctionner, car j'ai utiliser parent en me disant que cela allais faire cela, mais en faite non, parent ne fonctionne pas comme ça. et c'est ça qui fraudait faire, faire une fonction qui joint deux objets. Vous pensez que cela serais possible ça DK, la jonction de deux mesh pour en faire qu'un.

 

PS: si, si fluffrabbit, votre français est tres compréhensible, vous avez juste oublier de préciser l’exporter, vue qu'il y en a deux.

 

Merci

Link to comment
Share on other sites

Ah bon c’est possible? je croyais que seule les boites, sphère et plan étais pris en charge ?
Comment vous faites pour mettre un imposteur physique sur un perso ? ce serais effectivement plus direct.
 
[edite]

Je vient d’essayer et j'ai un bug la la ligne 14 de babylon sur les partie Cannon en utilisant PhysicsEngine.MeshImpostor :

Uncaught TypeError: Cannot read property 'length' of null
 

J'ai essayer avec d'autre imposteur, mon perso ce retrouve au point 0, 0, 0 et n’est plus contrôlable et ça rame, 20 FPS. et sur l’éditeur il ne sont plus manipulable aussi en rotation, scaling, et position. par exemple, je met mon mure avec une rotation et si je lui applique un imposteur box, il revient a la position 0 0 0 en rotation.

 

J’ai l'impression que la physique n’est pas utilisable en l’état, je tourne en rond et il semble n'exister aucune solution viable.

 

c'est pas possible non plus de fusionner deux maillage et de pouvoir les dé fusionner ? parent, j'ai compris que cela ne pourrais pas marcher.

Link to comment
Share on other sites

si un objet devient physique on ne peut le controller que par des impulsions (vu qu'il est physique). Apres on peut mettre un imposteur de type boite sur ce qu'on veut, pas de limitation.

 

"J’ai l'impression que la physique n’est pas utilisable en l’état." faut pas etre susceptible quand on lit ca Oo. Les demos du site marchent hein pour rappel....

 

Si tu veux controller ton perso tout en faisant des tests de collisions, pour quoi ne pas juste faire un peu de code genre: je bouge mon perso, je verifie qu'il n'est pas en collisions via la fonction mesh.intersectsMesh(other) et si c'est le cas je le remets a sa position precedente.

Link to comment
Share on other sites

@dad72: Another idea, with the latest checkin, I added the following feature:

New ```mesh.moveWithCollisions``` function. Used with ```mesh.ellipsoid``` this function can be used to move a mesh and use an ellipsoid around it to check collisions

 

So instead of moving a mesh by playing with mesh.position, you can call mesh.moveWithCollisions(). This function takes a vector3 as parameter which defines the direction (or velocity). The mesh will use mesh.ellipsoid as impostor (exactly like the FreeCamera)

Link to comment
Share on other sites

Quand je dit que la physic n’est pas utilisable en l’état, c'est au faite que l'on est tres limiter par rapport au reste du moteur.

 

J'ai déjà fait avec intersectMesh, cela marchait, mais le résultat n’est pas réaliste par rapport a une une collision physique. en gros le perso rebondit entre la position précédente et la position ou il détecte la collision et le personnage sautille d'avant en arrière. c’est pour ça que j'ai essayer avec la physique en me disant que cela serais plus réaliste.

 

Bref, je pense que je vais refaire comme ça.

Link to comment
Share on other sites

There is a small error in the function that you add (moveWithCollisions(velocity)). at the level of length

 

in the console:

 

Uncaught TypeError: Cannot read property 'length' of undefined

if (this._diffPositionForCollisions.length() > BABYLON.Engine.CollisionsEpsilon) {     this.position.addInPlace(this._diffPositionForCollisions);}

Thanks again for this function.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...