Cyril5 a écrit :Cyril5 a écrit :
Unity3D France on Rail ROAD !!!
Bonjour à tous !
j'ai crée ce sujet pour ceux qui réfléchissent sur la conception de roulement d'un train non physique afin de développer des jeux de gestion chemin de fer tactique ou simulation comme Train Crisis, Trainz Simulator, Railroad Tycoon, Train Valley, Loco Mania ... avec Unity3D
Après quelques recherches sur le net, il y a deux types de déplacement pour rouler votre locomotive :
la première est par la méthode physique (réaliste) représentent les bougies sur les rails et pousser par une force d'un Rigid Body, Attention cette méthode fonctionne si les roues du trains se place bien dans les rails !
la deuxième méthode (un peu plus simple mais plus long à mettre en place et moins réaliste) représente un chemin avec des noeuds (Waypoints) que la locomotive suit au fur et à mesure grâce à une une translation.
Quand on développe un jeu de train tactique comme Train Crisis sur Android, je pense qu'il faut réfléchir à ces premiers critères :
Path Follow
- Le train doit suivre un chemin et tourner
- Pouvoir Attacher et détacher les wagons à la locomotives
- Changer de voie(s) grâce à un aiguillage
- Arrêter le train près d'un signal rouge
- Pour les croisement le train doit rester sur sa voie (éviter qu'il se mélange avec la voie perpendiculaire)
- Détruire le train en contact d'un obstacle ou un autre train
Création d'un réseau ferré
https://www.youtube.com/watch?v=bXHdAtFC-oc
https://www.youtube.com/watch?v=Rm94FbwQjTQ
https://www.youtube.com/watch?v=x17qvoYoPus
http://forum.unity3d.com/threads/spline ... ol.172096/
à Suivre ...
Technique d'aiguillement
Voici ma technique que je propose, je ne l'ai pas encore essayé et je voudrais savoir ce que vous en pensez : https://www.dropbox.com/s/uxtdd2vswdy7w ... Switch.png
Explication : Au début de la scène , le Train va suivre le chemin AB (chemin le plus proche) , le chemin qu'il doit suivre est indiqué dans une variable "LigneCourrante ou CurrentLine" dans le script de la locomotive. Chaque chemin (AB, BC, BD) représente soit des groupes de Nodes (noeuds) nommé Path ou des (Calques) Navmesh, près de la brochure de l'aiguillage se trouve un TriggerCollider avec une variable boolean (true,false) "Tourner" qui change d'état lorsque le joueur cliquera dessus, cette valeur permet de dire si le train ira sur la voie qui tourne ou celle qui va tout droit :Au moment où le train entre dans le Trigger Collider de l'aiguillage "Aiguillage_0" on regarde quelle est la valeur de "LigneCourrante", Si le train est sur la ligne AB et que l'aiguillage est vers le bas (Tourner = true) alors le train suivra le chemin "BD" car c'est le chemin le plus proche du virage de l'aiguillage, sinon (Tourner = false) le train suivra le chemin le plus près de la ligne droite de l'aiguillage.Code : Tout sélectionner
var Tourner : boolean Tourner = !Tourner // Passer d'un état true à false ou inversement
SCRIPT Aiguillage deux voies en Cours ...Les Contraintes en marche avant :Code : Tout sélectionner
var Touner : boolean; var TurnWay : Transform //Chemin à suivre quand on tourne sur l'aiguillage var StraightWay : Transform //Chemin à suivre quand on va tout-droit var ReverseWay : Transform // Chemin à suivre quand le train va en marche arrière sur l'aiguillage function OnTriggerEnter(other : collider) { var train_currentWay = other.GetComponent("LocomotiveScript").LigneCourrante if(other.tag == "motrice") && Touner { if(train_currentWay == ReverseWay) { // si le train se trouve dans la ligne droite avant de tourner de l'aiguillage (Chemin AB) other.GetComponent("LocomotiveScript").LigneCourrante = TurnWay; } } }
cette idée est inspirée de cette vidéo : https://www.youtube.com/watch?v=x17qvoYoPus fait avec le moteur de jeu de Blender.
- le train ne peut pas aller sur la voie BD "TurnWay" + si il est sur la voie BC "StraightWay" il peut aller seulement sur la voie AB "ReverseWay" dans le cas contraire le train déraille.
- le train peut aller sur la voie BC ou BD si il est sur la voie AB
- Avec l'aiguillage les liaisons CD ou DC sont impossibles
Si cela vous plait je continuerai de poster des informations sur la conception d'un Train , si vous avez des idées de technique n'hésitez pas à les poster
__________________________________
Development Team : Nocturn-System : nocturn-system.com
Trains, Railroad (Sujet développement de jeux trains)
Trains, Railroad (Sujet développement de jeux trains)
Dernière édition par Cyril5 le 26 Août 2014 02:45, édité 1 fois.
Re: Trains, Railroad (Sujet développement de jeux trains)
En m'inspirant de la vidéo de Blender je voudrais savoir comment dans Unity3D je peut aller d'un point A à un point B avec plusieurs navmesh qui permettrons de représenter les voies pour les aiguillages ?
merci
merci
Re: Trains, Railroad (Sujet développement de jeux trains)
Tu génere t'es rail en static, ensuite tu ajoute plusieur empty (ou ton train peu aller ) et ensuite par code du le fait avancée jusqu'au prochain point . Désolé je ne peux pas te donner un exemple concret de code étant donné que je ne code qu'avec playmaker
Edit : Quand je dit prochain, c'est le point que toi tu décide (je sais pas si c'est claire je suis en plein reveil x) )
Edit : Quand je dit prochain, c'est le point que toi tu décide (je sais pas si c'est claire je suis en plein reveil x) )
Projet en cours:Solit'Space viewtopic.php?f=12&t=6173
Tower Defense :viewtopic.php?f=12&t=8986
____
Blog:https://yonathan.artstation.com
Tower Defense :viewtopic.php?f=12&t=8986
____
Blog:https://yonathan.artstation.com
Re: Trains, Railroad (Sujet développement de jeux trains)
Salut Cyril5
super sujet !
j'essai aussi de faire suivre un rail à un pseudo train avec une caméra rattachée au train et une fonction marche avant marche arrière.. bon par curiosité surtout car je débute avec unity.. je sais "rien que ça".
Alors j'écume toute information dispo sur la toile et du coup le forum.
super sujet !
j'essai aussi de faire suivre un rail à un pseudo train avec une caméra rattachée au train et une fonction marche avant marche arrière.. bon par curiosité surtout car je débute avec unity.. je sais "rien que ça".
Alors j'écume toute information dispo sur la toile et du coup le forum.
Re: Trains, Railroad (Sujet développement de jeux trains)
Le problème pour aller en arrière sur un navmesh, le train risque pas de se retourner sur lui même ? et les "empty" se sont des waypoints ?
Re: Trains, Railroad (Sujet développement de jeux trains)
Je ne pense pas que le navmesh soit la bonne solution, car il cherchera toujours le chemin le plus court sur ton maillage pour aller d'un point A un point B. Ton train doit se déplacer suivant des contraintes de trajectoires précises, pour être sûr qu'il aille là où tu veux.
Regarde du côté de Itween, cela doit être possible (je ne sais pas si ses concurrents que sont HotTween et LeanTween le permettent aussi).
http://itween.pixelplacement.com/index.php
Regarde du côté de Itween, cela doit être possible (je ne sais pas si ses concurrents que sont HotTween et LeanTween le permettent aussi).
http://itween.pixelplacement.com/index.php
- boubouk50
- ModoGenereux
- Messages : 6246
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: Trains, Railroad (Sujet développement de jeux trains)
Ça semble juste d'utiliser des paths prédéfinis et prédécoupés par tronçon que tu auras assemblé en fonction du chemin à prendre. Tu obtiens un chemin donc à suivre par le train. Si tu fais des changements en runtime, tu crées ce nouveau chemin et tu appliques la locomotive sur ce nouveau chemin à sa position actuelle.
Ça semble faisable en théorie, mais je ne sais pas comment fonctionne ces plugs de trajectoires.
Ça semble faisable en théorie, mais je ne sais pas comment fonctionne ces plugs de trajectoires.
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: Trains, Railroad (Sujet développement de jeux trains)
https://www.youtube.com/watch?v=Vf58Ixiwbjo
Cyril si c'est ce que tu cherches à réaliser.. ça peut t'aider, on peut récupérer les fichiers du projet dans le commentaire de présentation de la video.
"J'essai" d'appliquer cette solution chez moi.. il doit y avoir une ou deux subtilités que je ne doit pas voir..
Cyril si c'est ce que tu cherches à réaliser.. ça peut t'aider, on peut récupérer les fichiers du projet dans le commentaire de présentation de la video.
"J'essai" d'appliquer cette solution chez moi.. il doit y avoir une ou deux subtilités que je ne doit pas voir..
Re: Trains, Railroad (Sujet développement de jeux trains)
Sans oubliez EasyRoad...
Re: Trains, Railroad (Sujet développement de jeux trains)
J'ai aussi un peu galérer à comprendre comment le train roule sur les roues, j'ai trouvé, simplifié et amélioré le projet et je partage mon package sur ce forum pour Nicoo ou d'autres personnes qui sont intéressées :Nicoo a écrit :https://www.youtube.com/watch?v=Vf58Ixiwbjo
Cyril si c'est ce que tu cherches à réaliser.. ça peut t'aider, on peut récupérer les fichiers du projet dans le commentaire de présentation de la video.
"J'essai" d'appliquer cette solution chez moi.. il doit y avoir une ou deux subtilités que je ne doit pas voir..
Unity_Locomotive v1.0
DOWNLOAD : https://mega.co.nz/#!lQ5HgRpC!QYYl6ONFd ... zOQPcIzgrE
- Script pour configurer la locomotive (assemblage des roues,poids des roues, force de déplacement, marche avant-arrière et stop)
- Script simple pour aiguiller le train sur une autre voie