Ti Traffic AI sur l'asset store : qui connait ?

Présentation des outils annexes/externes à Unity.
Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Ti Traffic AI sur l'asset store : qui connait ?

Message par freepl » 23 Déc 2014 13:37

Bonjour

Pour mes maquettes routières j'ai vu sur l'asset store ceci
https://www.assetstore.unity3d.com/en/#!/content/21047

vidéo
https://www.youtube.com/watch?v=ahMqQC4iW18

Est-ce que quelqu'un l'a pris ?
Le pack est livré , me semble t'il avec une seule voiture (?) et sur la vidéo j'ai cru comprendre qu'il fallait la cloner .
Donc on a qu'un seul type de voiture.


Mon travail a acheté des packs de véhicules sur l'asset store.
Peut-on les utiliser avec ce programme ?


Merci de votre aide

Avatar de l’utilisateur
F@B
Messages : 1844
Inscription : 01 Août 2013 10:41
Contact :

Re: Ti Traffic AI sur l'asset store : qui connait ?

Message par F@B » 23 Déc 2014 14:37

de simple tween sur une spline c'est pas plus simple?
ʕ·͡ᴥ·ʔ ==> Mon Portfolio <== ʕ·͡ᴥ·ʔ

Merci de lire et de prendre en considération la Nétiquette des Forums avant de poster un sujet !

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

Re: Ti Traffic AI sur l'asset store : qui connait ?

Message par boubouk50 » 23 Déc 2014 15:54

S'il faut gérer les feux, les stops, les piétons, etc. Mieux vaut ce genre de plug.

Je ne connais pas ce plug, mais c'est certain que tu puisses y mettre les véhicules que tu veux. Par contre pour la gestion des collisions et des distances, il faut faire gaffe à la longueur des véhicules (un camion et une twingo ne prennent pas la même place sur une route)
"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

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Ti Traffic AI sur l'asset store : qui connait ?

Message par freepl » 23 Déc 2014 19:31

ok

Merci et passes de bonnes fêtes

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Ti Traffic AI sur l'asset store : qui connait ?

Message par freepl » 23 Déc 2014 19:41

F@B a écrit :de simple tween sur une spline c'est pas plus simple?
Je me sers de ITWEEN et de ce script

Code : Tout sélectionner

/* 


Script basé sur ITWEEEN.
Avance.Pause.Reprise. Stop  et Retour par étape

Renseigner dans l'INSPECTOR le nom du path 
                            le temps de parcours
                            la cible 



 utiliser plutôt iTween.PutOnPath () et/ou iTween.PointOnPath (). 
 Le dernier paramètre pour chacune de ces deux fonctions est la fraction sur la trajectoire. 
 Une valeur de 0,0 place l'objet au début de la trajectoire. 
 A 1,0 place l'objet à la fin de la trajectoire. 
 
 Pour votre retour rapide, vous auriez à calculer ou sauver la faction pour chaque position de rembobinage et 
 changer la fraction que vous passez à PutOnPath () ou PointOnPath ().
 
 
 Retour par étape fait reculer la caméra par petit saut, pas en continu
 Pour faire varier la "longueur" du retour, faire varier dans le GUI.Button "Reculer par étape", la valeur fraction -= 0.5 / time;
                 Plus la valeur est petite, plus le retour en arrière est petit

*/


#pragma strict 
public var target_Path1 : GameObject; // donner le path de MAYA
public var time = 10.0;               // donner le temps de parcours     35 egal 50 km/h  63 egal 90 km/h   77 egal 110 km/h   91 egal 130 km/h
//public var target : Transform ; // ligne a activer et a renseigner par l'objet que doit regarder la caméra




private var tabt : Transform[];
 private var running = false; 
 private var paused = false;
 private var fraction = 0.0; 
 
 function SetPath (pathObject : GameObject){
     var id : int = 0;
     tabt =null;
     tabt = new Transform[pathObject.transform.childCount];
     for(var child: Transform in pathObject.transform)     {
            tabt[id++] = child.transform;
                 }
  WalkThePath();
                                           }
  
 
 
 function WalkThePath() {    
 paused = false;
 running = true;
 fraction = 0.08;  // 1er départ de la vidéo debut du parcours si 0.8 alors à 80%  

  while (running) {
         transform.position = iTween.PointOnPath(tabt, fraction);
         
 if (!paused)
          fraction += Time.deltaTime / time;
 if (fraction > 1.0) fraction = 0.0; 
 /* 
 le trajet commence la première fois au début puis si on varie la valeur de "fraction" 
 cela permet de recommencer le trajet où l'on veut  :   
              0 Début du trajet  
              1 Fin du trajet 
              0.8 à 80% du parcours 
 
 DONC s'il on veut commencer et REcommencer le trajet à 80% du parcours il faut:
  _ function WalkthePath, mettre fraction = 0.8 (1 ° départ de la vidéo)
  _ if (fraction > 1.0) fraction = 0.8 
 
 
 */
        var futurePos = iTween.PointOnPath(tabt, fraction + 0.0001); 
        transform.LookAt(futurePos); //ligne à garder pour que la camera regarde devant et a desactiver pour que la caméra regarde une cible
		//transform.LookAt(target);  //ligne à activer pour que la caméra regarde une cible
               yield;
                   } 
                      }
                   

// pour la suite , soit on veux que l'animation parte directement alors activer function Start et neutralise function OnGui
//                 soit on veut des boutons, laisser tel que




/*function Start()
    {
           SetPath(target_Path1);    
    } 
    */
   
     
     // Les boutons de GUI--------------------------                   
function OnGUI(){
    if(GUI.Button(Rect(290,80,100,20), "commencer"))    
    {
           SetPath(target_Path1);    
    }    
   
   
     if(GUI.Button(Rect(390,80,100,20), "Pause"))    
     {  
           paused = true;    
     }     
     
     
     if(GUI.Button(Rect(490,80,100,20), "Reprise"))    
     {
            paused = false;    
     }     
     
     if(GUI.Button(Rect(390,100,120,20), "Reculer par étape")) 
     {       
           fraction -= 0.2 / time; //   Varier cette valeur permet de faire des retours en arrière par étape plus petite (peut être > à 1) 
           if (fraction < 0.0) fraction = 0.0;   
     }    
     
     
     
     if(GUI.Button(Rect(510,100,120,20), "Avancer par étape")) 
     {       
           fraction += 0.2 / time; //   Varier cette valeur permet d'avancer par étape 
           if (fraction < 0.0) fraction = 0.0;   
     }    
     
       if(GUI.Button(Rect(590,80,100,20), "Stop"))    
      {
          running = false;    
      }
          }
Mais je voudrais que mes véhicules accélèrent, freinent etc en fonction d'objets avec des collider ( zone de ralentissement, feux de stop..)
ce que j'ai avec ITWEEN ne me permet que de suivre une courbe avec une vitesse fixe.
Peux être avec des raycast qui modifient la vitesse des véhicules mais je ne sais pas le faire alors je regarde ce qui existe.
Bien que ce qui existe nécessite des wheelcolliders alors que je n'en ai pas besoin, juste un déplacement avec modification de la vitesse

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Ti Traffic AI sur l'asset store : qui connait ?

Message par Alesk » 28 Déc 2014 00:24

Hello,

Il va falloir préciser un peu plus ce que tu veux que ton script puisse faire ou non :

- La durée totale du parcours doit-elle être figée ?
- Doit-on pouvoir commencer à une durée déterminée de parcours ou bien seulement une distance parcourue ? par exemple 80% du temps qu'il faut mettre pour arriver à la destination ou bien 80% de la distance totale ?

Car si tu comptes intégrer des accélérations, freinages, etc... la vitesse sera variable, et ça sera donc beaucoup plus difficile de se fixer sur ce genre de cas.

Actuellement, tu n'as a disposition que la fonction PointOnPath() qui te permet de trouver la position correspondant à tel pourcentage de progression sur la courbe définie pour le chemin.
Ce dont tu as besoin c'est d'une méthode te donnant la position à partir de la distance parcourue sur cette courbe.
Il faut donc pour cela connaitre le longueur totale de la courbe, qui peut être connue en faisant simplement la somme des distances séparant tous les points de cette courbe.
Une fois que tu as cette distance totale, tu fais évoluer une variable "distance_parcourue" qui va s'incrémenter en fonction de la vitesse de ton véhicule (donc avec un calcul bien plus cohérent en km/h ou m/s) et qui sera parfaitement compatible avec des freinages et accélérations.

De là, tu fais "distance_parcourue / distance_totale" pour retrouver le pourcentage à utiliser dans PointOnPath () pour chopper la position où afficher ton véhicule.

Voilou ^^

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Ti Traffic AI sur l'asset store : qui connait ?

Message par freepl » 28 Déc 2014 10:14

Merci

Répondre

Revenir vers « Les outils externes »