Trains, Railroad (Sujet développement de jeux trains)

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Cyril5
Messages : 42
Inscription : 03 Juin 2012 14:51
Localisation : Tours
Contact :

Trains, Railroad (Sujet développement de jeux trains)

Message par Cyril5 » 26 Août 2014 01:18

Cyril5 a écrit :
Cyril5 a écrit :Image
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 :
  • 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
Path Follow

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 :

Code : Tout sélectionner

var Tourner : boolean
Tourner = !Tourner // Passer d'un état true à false ou inversement
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.

SCRIPT Aiguillage deux voies en Cours ...

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;
  }
}
}
Les Contraintes en marche avant :
  • 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
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.

Si cela vous plait je continuerai de poster des informations sur la conception d'un Train :D, si vous avez des idées de technique n'hésitez pas à les poster
__________________________________
Development Team : Nocturn-System : nocturn-system.com
Dernière édition par Cyril5 le 26 Août 2014 02:45, édité 1 fois.

Cyril5
Messages : 42
Inscription : 03 Juin 2012 14:51
Localisation : Tours
Contact :

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par Cyril5 » 01 Sep 2014 02:53

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

fudge74
Messages : 195
Inscription : 07 Oct 2012 22:02
Contact :

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par fudge74 » 01 Sep 2014 10:44

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 :D

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

Nicoo
Messages : 13
Inscription : 01 Sep 2014 10:44

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par Nicoo » 01 Sep 2014 11:48

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.

Cyril5
Messages : 42
Inscription : 03 Juin 2012 14:51
Localisation : Tours
Contact :

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par Cyril5 » 01 Sep 2014 18:51

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 ?

Avatar de l’utilisateur
axel
Messages : 1924
Inscription : 26 Avr 2012 09:10
Localisation : Lille - Dunkerque
Contact :

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par axel » 02 Sep 2014 14:02

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

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6208
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par boubouk50 » 02 Sep 2014 14:13

Ç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.
"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

Nicoo
Messages : 13
Inscription : 01 Sep 2014 10:44

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par Nicoo » 02 Sep 2014 16:25

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..

Avatar de l’utilisateur
ZJP
Messages : 5748
Inscription : 15 Déc 2009 06:00

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par ZJP » 02 Sep 2014 17:51

Sans oubliez EasyRoad...

Cyril5
Messages : 42
Inscription : 03 Juin 2012 14:51
Localisation : Tours
Contact :

Re: Trains, Railroad (Sujet développement de jeux trains)

Message par Cyril5 » 04 Sep 2014 19:20

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..
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 :

Unity_Locomotive v1.0
Image
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
Si vous avez des questions ou des problèmes à propos du package n'hésitez pas à me contacter :)

Répondre

Revenir vers « Unity le logiciel »