Paramètres Collision ThirdPerson.pb
Publié : mar. 03/janv./2012 9:58
Hello,
En travaillant sur les collisions 3d d'après divers exemples, il me semble que la source ThirdPerson.pb du repertoire de Demo3d soit la plus précieuse.
Cependant, quelques paramètres sont encore obscurs pour moi.
Il me semble avoir compris que l'enveloppe de l'entity servant aux collisions (ici capsulebody) soit plus grande que le bound de l'entity lui-même (26 unités dans cet exemple avec le robot).
Ainsi, une entity invisible est positionnée plus haute que l'entity visible et les collisions se font sur l'entity invisible.
Dans la source, on trouve un "BodyOffsetY" paramétré ici à 43 et il sert à positionner l'entity visible à 43 unités sous l'entity invisible servant aux collisions
Cette valeur 43 est propre à chaque entity.
Si je remplace le mesh du robot par un autre mesh, les collisions ne fonctionnent plus
idem si, en gardant le mesh du robot, on change la valeur de 43 ou si on remplace le capsulebody par un boxbody
Pour conclure, est-ce que quelqu'un sait comment sont calculés les valeurs 26 et 43 par rapport au mesh, à l'entity, au type de Body pour l'EntityPhysicBody ?
Merci d'avance
En travaillant sur les collisions 3d d'après divers exemples, il me semble que la source ThirdPerson.pb du repertoire de Demo3d soit la plus précieuse.
Cependant, quelques paramètres sont encore obscurs pour moi.
Il me semble avoir compris que l'enveloppe de l'entity servant aux collisions (ici capsulebody) soit plus grande que le bound de l'entity lui-même (26 unités dans cet exemple avec le robot).
Code : Tout sélectionner
;Robot Body
CreateEntity(1, MeshID(0), #PB_Material_None, 0, 26, 0)
HideEntity(1, 1)
Ainsi, une entity invisible est positionnée plus haute que l'entity visible et les collisions se font sur l'entity invisible.
Dans la source, on trouve un "BodyOffsetY" paramétré ici à 43 et il sert à positionner l'entity visible à 43 unités sous l'entity invisible servant aux collisions
Code : Tout sélectionner
With Robot
\Entity = 0
\EntityBody = 1
\BodyOffsetY = 43
Cette valeur 43 est propre à chaque entity.
Si je remplace le mesh du robot par un autre mesh, les collisions ne fonctionnent plus
idem si, en gardant le mesh du robot, on change la valeur de 43 ou si on remplace le capsulebody par un boxbody
Pour conclure, est-ce que quelqu'un sait comment sont calculés les valeurs 26 et 43 par rapport au mesh, à l'entity, au type de Body pour l'EntityPhysicBody ?
Merci d'avance