Historique des modifications - Message

Message #11585

Sujet: Gestion du ragdoll [sous bullet] avec l'animation


Type Date Auteur Contenu
Création du message 09-04-2015 22:15:03 Magun
uhm bon, ça manque d'info !

déjà perso j'oublirais directement l'animation du personnage par la physique,
c'est un troue sans fin tu va réinventer la roue ça va être une merde pas possible
très peut d'api sont disponible pour faire ceci c'est par pour rien
smartbody est le seul disponible en opensource
il te suffi de regarder les vidéos ou sont concurrent (oublier le nom basé sur physx)

maniére réaliste par exemple le saut.

bon normalement ta du commencer a faire les base de ton applications je ne rentre pas dedans (ou demande)
actuelement je suppose que ton personnage est géré par btPairCachingGhostObject / btKinematicCharacterController
pour l'animation donc il ne te suffi que de custommisé btKinematicCharacterController

tu regarderas particulierement du coter de btKinematicCharacterController::PostStep
normalement a ce moment un raycast est opéré.
donc quand tu jump, tu déclenche ton animation de saut
quand la distance avec le sol commence a dimminuer tu fait ton animation de chute
et tu te trouve une distance minimal pour déclencher ta 3ème animation d'atérissage ou mort

et puis quand ton perso tombe étant donner que c'est ton raycast qui détermine l'animation ça te feras l'effect escompter en même temps

subir des chocs

je pensse que j'opterais pour un skellette basé sur des btGhostObjects pour la détection "d'intrusion physique"
un peut comme des teste d'intersection aabbox en mieux smile

le plus dure va être de faire du binding d'animation, une classe permetant de jouer l'animation de ton personnage
tout en permettant d'animer "manuelement" partielement ou non le skellette en fonction du choc et de ça direction
et je te renvoie encore une fois sur l'inverse kinematics

ou d'activer partielement le ragdoll pour le membre avec les contraintes sur le reste
(utiliser btOverlapFilterCallback pour forcer la collision avec les btCollisionShape des btGhostObject du ragdoll)
en admetant que le choc tue le personnage a ce moment, la oui tu auras bien ton ragdoll

se cacher dérriére des murs

en "général", ont va plutot dire dans les dernier jeux commerciaux à grand titre
comme le budget est souvent négliger et qu'il sont contraint a des délais cette fonction,
c'est plus ou moin une finte comme souvent en prog ...

tu remarquera d'ailleur que le gameplay t'oblige a intéragir pour te cacher
donc ce sont des zones prédeterminées, donc au final ce n'est qu'un jeux d'animation différent
en ajoutant un test d'intersection avec la surface en question pour le point n°2 (btOverlapFilterCallback)

voila voila, bon si malgré tout ça ne te convien pas et que tu souhaite faire de l'animation par la physique
dans ce cas tu peut te diriger vers l'exemple <<Dynamic Control>> de bullet tu regarde et nous en reparleron
j'ai beusoin de faire plus d'approfondissement, mais y a moyen que ce soit pas mal wink

enfin bon, je ne suis peut-être pas le mieux placer pour ce sujet

ps: utilise bullet 3.x grande différence de performance avec la 2.x et meilleur gestion du thread-safe

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
115 invités en ligne
membre en ligne: -
RSS Feed