Alors, comment pourrais-je créer ce type d'effet? Parlons-nous de pixel shaders, de modes de mélange / filtres, d'effets bitmap, de systèmes de particules ou quoi? Pas vraiment spécifique à la plateforme. Je cherche juste la théorie, mais des exemples ou des liens spécifiques seraient formidables. Et plus de détails, mieux c'est.
Tout ce qui précède.
À moins de fouiller dans leur code source, vous ne savez peut-être pas exactement comment ils l'ont fait.
Cependant, d'après l'apparence des deux jeux, ils ont tous deux ce qui semble être une géométrie qui est connectée et suit le navire. Ce n'est peut-être pas nécessairement un système de particules point-sprite de base, mais ce n'est pas si difficile non plus.
Certains jeux utiliseront un algorithme de ligne courbe et généreront une liste de sommets à partir de cela et feront un peu de texturation avec différentes textures appliquées aux deux points de terminaison de la piste, de sorte qu'à un moment l'échappement semble chaud et à l'autre il est plus frais et traîne dans l'espace.
Le vaisseau d'un joueur est un cas intéressant parce que les mouvements sont imprévisibles, et vous devrez peut-être mettre à jour les points de contrôle de votre algorithme de courbe, ou finir par échantillonner la dernière position du vaisseau et générer des positions de sommet basées sur cela.
Jetez un oeil à cette réponse d'une question précédente si vous voulez avoir quelque chose qui fonctionne hors des points de contrôle. Pour vos besoins, l'échantillonnage de la position des joueurs fonctionnerait probablement beaucoup mieux et serait plus facile à comprendre.
Voici quelque chose pour vous faire réfléchir:
Commencez à échantillonner la position du joueur. Ces points formeront les segments du corps de votre piste, à partir desquels la géométrie peut être construite. C'est une bonne idée de garder un segment de queue séparé qui a une texture distincte. Vous voudrez peut-être détecter quand un joueur tourne et augmenter la fréquence de ces segments, sinon vous vous retrouverez avec des courbes en blocs. Sauf si c'est l'effet que vous recherchez :)
À certains événements, les segments doivent cesser de se produire et les segments existants devraient commencer à se réduire lentement, en commençant par le segment de corps le plus proche de la queue (mais pas la queue elle-même). C'est en cas de ralentissement du joueur. Mais, si la vitesse à laquelle les segments sont réduits correspond à la vitesse du navire du joueur, alors un nouveau segment sera formé juste à temps au fur et à mesure que l'un d'eux sera retiré. Donc, cela fonctionne aussi bien pour un navire en plein mouvement. La longueur du sentier sera toujours la même - ce qui donne un flux fluide et cohérent.
Le segment de tête doit toujours être à la position actuelle du joueur. Si des virages sont détectés, le segment de tête existant est ajouté à un segment de corps et un nouveau segment de tête est démarré. Répéter. Selon vos textures, chaque segment peut également avoir une longueur maximale.
Cela nous donne un moyen facile de modéliser cet effet: en partant de l'idée que l'effet diminuera / rétrécira toujours par lui-même à moins que davantage de segments ne soient fournis, et en jouant avec des vitesses pour l'empêcher de rétrécir.