Animation de Chenilles de char

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Youby
Messages : 6
Inscription : 04 Déc 2020 13:59

Animation de Chenilles de char

Message par Youby » 04 Déc 2020 15:11

Mesdames, messieurs,
Je viens ici pour votre expérience. Mais tout d'abord, un peu de contexte:
Je suis en train de réaliser un jeu de guerre, dans lequel les joueurs incarnent des membres d'équipages de blindés. J'en suis encore au début du projet, et suis confronté à un problème que je ne sais comment résoudre, à savoir, l'animation des chenilles desdits chars.
J'ai réalisé moi-même les modèles de chars que j'ai à disposition sur le logiciel de modélisation Blender, aussi je peux me permettre de les modifier au besoin. Sur ce logiciel de modélisation, j'avais d'abord simplement animé les chenilles, celles-ci se déplaçant le long d'un rail, d'une curve. Et le résultat était tout à fait convainquant dans Blender. Cependant, une fois importé dans Unity, qui ne semble pas reconnaître le système de curves de Blender, les chenilles rigidifiées avançaient littéralement, traversant le mesh du char.
Après quelques recherches, j'ai trouvé quelques solutions : Des méthodes pour importer le modèle des chenilles sur un squelette, que Unity reconnait ; l'importation de chacun des maillons pour générer une chenille composée de chacun d'entre eux directement dans Unity, etc...
Cependant, ces solutions me posent des problèmes : principalement, le fait qu'elles demandent des ressources considérables de la part des ordinateurs des joueurs, et que je ne le souhaite pas.
J'ai ensuite vu évoqué la solution mise en place chez Battlefield, à savoir que les chenilles restent en fait statiques, mais que les textures "avancent" sur le mesh desdites chenilles. Je n'arrive cependant pas à trouver comment réaliser cela.

En bref, je n'arrive pas à régler ce problème, tout en sachant qu'il est possible de le faire, aux vues des chars disponibles dans des jeux Unity. J'ai donc besoin de votre savoir et de vos conseils pour résoudre ce problème.
Merci pour votre attention et votre temps.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5542
Inscription : 28 Avr 2014 11:57
Localisation : Toulouse

Re: Animation de Chenilles de char

Message par boubouk50 » 04 Déc 2020 16:01

Salut,

dans le principe de base, rien de sorcier. Le placement de tes textures est défini par les coordonnées de textures, communément appelées UVs.
Pour "animer" une texture, ici nous parlerons de glisser (scroll), il suffit donc simplement de modifier ces UVs par une translation.
Le plus simple est de séparer les textures de chenille (dessus et bords) dans une seule texture pour pouvoir tout faire glisser sans se soucier des autres parties. Attention tout de même, il faut que ta texture de chenille parte d'un bord de l'image vers l'autre pour simuler la répétition (donc la boucle).
Ensuite, ce sera du script. Très simple, tu ajoutes dans le temps un offset à ton matériau sur l'axe prédéfini en fonction du mouvement de ton tank. Ca fera l'affaire pour une version très simple.
Une fois tout cela acquis et compris, tu pourras pousser le bouchon un peu plus loin pour gérer les différentes vitesses, le fait que les chenilles vont dans deux sens différents quand tu tournes, etc.
Commence déjà par comprendre le concept.
Google est ton ami pour la recherche: scroll tank track texture unity
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Youby
Messages : 6
Inscription : 04 Déc 2020 13:59

Re: Animation de Chenilles de char

Message par Youby » 04 Déc 2020 18:20

Merci pour votre réponse, Boubouk. J'aurais une question cependant, avant de m'occuper à mettre cette solution en place : Je connais et crois comprendre les UVs. J'ai en effet eu à les utiliser pour les textures sur Blender. Cependant, j'ai du mal à comprendre comment faire pour donner du relief véritable aux chenilles uniquement par les textures...
En effet, un élément que je n'ai pas précisé, et qui peut avoir son importance, est que je crée notamment des chars français de la Seconde Guerre Mondiale, ce qui implique que leurs chenilles ressemblent à des moules de quatre-quart (cf l'image jointe).
Je comprends tout à fait que je peux avoir mal compris le principe.

Merci encore, s'il le faut je composerais avec ^^

(Maillons de chenille de char B1 Bis :)
Image
Image

Avatar de l’utilisateur
Max
Messages : 8147
Inscription : 30 Juil 2011 13:57
Contact :

Re: Animation de Chenilles de char

Message par Max » 04 Déc 2020 18:46

c'est un choix entre une technique réaliste mais gourmande en ressources, et une technique peu gourmande mais évidement moins réaliste.

Tu as ce genre d'asset qui peut t'aider à te décider (et en promo en ce moment):

https://www.youtube.com/watch?v=CKZ0sBT3LyA&feature=emb_logo

Après la technique à base d'UV translate est très simple à mettre en œuvre techniquement et le gros du travail se fera sur le mesh et ses textures (diffuse, normalMap, etc...) ;)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Youby
Messages : 6
Inscription : 04 Déc 2020 13:59

Re: Animation de Chenilles de char

Message par Youby » 04 Déc 2020 19:13

Merci, Max.
En effet, j'ai déjà vu cet asset, qui est évidemment alléchant pour qui souhaite faire un jeu de chars... Un peu trop, même. J'ai pour but avec ce petit jeu qui n'a pas pour vocation à être publié, simplement pour jouer avec des amis proches, de m'entraîner à programmer. Aussi, un asset qui fait tout ce que je veux à ma place serait très pratique pour un projet véritable, mais n'est pas aussi intéressant pour un but didacticiel. Cependant, la promotion me tenterais peut-être, ne serait-ce que pour servir d'exemple...
Ensuite, pour les UVs, j'ai tout d'abord pensé à faire des chenilles en forme de ruban autour du rail, associé à un displacement pour donner du relief manipulable par script. Sauf que cette option est valide pour Blender, par Unity, ou tout du moins aussi loin que je sache. Aussi, comment pourrais-je donner du vrai relief à un objet via une texture ? C'est là tout le nœud du problème...

P.S.
J'ai fait un test avec une normal map pour essayer avec le displacement dans Blender, et le résultat me paraît... étrange...
Image

Avatar de l’utilisateur
Max
Messages : 8147
Inscription : 30 Juil 2011 13:57
Contact :

Re: Animation de Chenilles de char

Message par Max » 04 Déc 2020 19:36

Youby a écrit :
04 Déc 2020 19:13
Ensuite, pour les UVs, j'ai tout d'abord pensé à faire des chenilles en forme de ruban autour du rail, associé à un displacement pour donner du relief manipulable par script.
Oui, tu peux commencer par un mesh "ruban" reprenant la forme générale de la chenille, avec les textures. Cela ne donnera probablement pas l'apparence de ce que tu souhaites, mais dans un premier temps te servira de base. Tu pourras alors affiner la technique au fur et à mesure.

Pour un projet plus simple (s'entend ne cherchant pas un réalisme visuel important), voilà le genre d'exemples qu'on peut faire:

Image
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Youby
Messages : 6
Inscription : 04 Déc 2020 13:59

Re: Animation de Chenilles de char

Message par Youby » 04 Déc 2020 19:58

Vous avez sans doute raison. Comme quoi, même en pensant faire simple, on part très vite très loin ! Je vais donc revoir mes objectifs à la baisse dans un premier temps. Merci pour cette petite tranche d'humilité ^^

De plus, j'ai craqué : j'ai acheté l'asset en question. Je vais l'étudier en profondeur pour comprendre le fonctionnement des chenilles. Mon pauvre compte bancaire me voue déjà aux gémonies :gene:

Répondre

Revenir vers « Unity le logiciel »