Projet routier/ Remise à plat / Phase 1 : Afficher/Masquer

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

Projet routier/ Remise à plat / Phase 0

Message par freepl » 25 Mai 2012 08:05

Bonjour

Suite à vos remarques constructives, je remet à plat mon projet routier.
Je rappelle que je fait un terrain 3D réelle sous forme de carrés de 512 m de coté et je mappe dessus une texture qui est l'image satellite du carré.
Puis je place une ou plusieurs variantes de nouvelles routes.

Mon projet sera donc séparé en 4 phases
1 Afficher/Masquer des groupes d'objets
2 Gestion de la caméra ( qui doit se déplacer avec clavier- souris
3 Suivre une trajectoire ( pour une voiture et / ou pour la camera )
4 Réaliser une page d'accueil ( avec un panneau central de couleur avec 3 lignes d'écriture et à drite et à gauche 2 images bitmap (des logos))

Je dois proposer à mon chef une maquette fonctionnel pour fin juin / mi juillet.
Je compte sur votre aide à chaque étape.

Merci

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

Re: Projet routier/ Remise à plat / Phase 0

Message par axel » 25 Mai 2012 08:28

Il fait combien de km ton projet? Tu dois avoir un paquet de dalles? Aussi je suppose que tu as une texture par dalle et pas une texture pour toutes les dalles.
Quels sont les groupes d'objets que tu vas devoir afficher/masquer?

Concernant les voitures animées sur une trajectoire, il te suffit d'importer tes voitures animées sous Maya.

Pour la caméra c'est un peu plus compliqué, ce que je fais (sous 3DSMAX), c'est que j'anime une caméra avec une cible.
Ensuite je crée 2 locators. Un premier que j'anime à différentes positions de ma trajectoire de caméra (tous les 50 images, je crée un clef d'anim). Et je fais pareil pour la cible.
Ensuite j'importe les 2 locator dans Unity. Je crée une caméra, que je parente au premier locator (maintenant tu sais le faire ;) ), puis je colle le script "look at" à la caméra (il est dans les packages standarts de Unity), et je lui assigne le locator cible... Bref c'est possible.

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

Re: Projet routier/ Remise à plat / Phase 0

Message par freepl » 25 Mai 2012 11:20

Salut

Le plus gros projet réalisé sous MAYA et VIRTOOLS fait 24 km de long sur 6 de large, soit 564 dalles !
C'est bien 1 texture par dalle.

Je viens de terminer mon script initial à l'étape Afficher/Masquer les groupes d'objet ( je vais en parler dans le sujet PROJET routier / Remise à plat / Phase 1 : Afficher / Masquer )

Pour l'animation, je verrais dans la phase 3. Je suis ce que l'on m'a dit : étape par étape :D

A tout de suite sur la Phase 1

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

Projet routier/ Remise à plat / Phase 1 : Afficher/Masquer

Message par freepl » 25 Mai 2012 11:51

Bonjour

J'ai donc fini mon script de base pour aficher / masquer mes versions de projets routiers
Donc pour rappel
pour mon terrain , j'ai 3 groupes si 1 route, 5 si 2 variantes, 7 si 3 variantes ...
un groupe CARRES_FIXES : les carrés non impactés
un groupe CARRES_TN1 : les carrés qui seront modifiés par la variante 1
un groupe CARRES_PROJET1 : les carrés modifiés par la variante 1

pour mes projets, j'ai autant de groupe que de variantes ( X variantes donnent X groupes)
un groupe ROUTE1 : projet routier variante1 avec sa route et ses ponts
un groupe ROUTE2 : projet routier variante2 avec sa route et ses ponts


Je vous transmets le code.
Si vous avez des idées pour l'améliorer je suis preneur ;)

Code : Tout sélectionner

#pragma strict
// DECLARATION DES VARIABLES
// CARRES_FIXES    : les carrés non impactés 
// CARRES_TN1      : les carrés qui seront modifiés par la variante 1
// CARRES_PROJET1  : les carrés modifiés par la variante 1  
// ROUTE1           : le projet routier variante1 avec sa route et ses ponts
private var target_CARRES_FIXES : GameObject;
private var target_CARRES_TN1 : GameObject;
private var target_CARRES_TN2 : GameObject;
private var target_CARRES_PROJET1 : GameObject;
private var target_CARRES_PROJET2 : GameObject;
private var target_ROUTE1 : GameObject;
private var target_ROUTE2 : GameObject;


// AU LANCEMENT DU PROGRAMME, ON ASSIGNE CHAQUE OBJET AUX VARIABLES
// Affiche le terrain normal(CARRES_FIXES) Ceux qui seront modifiés (CARRES_TN*) Masque (CARRES_PROJET*)
function Start () {
  target_CARRES_FIXES = GameObject.Find("GameObject_CARRES_FIXES");
  target_CARRES_TN1 = GameObject.Find("GameObject_CARRES_TN1");
  target_CARRES_TN2 = GameObject.Find("GameObject_CARRES_TN2");
  target_CARRES_PROJET1 = GameObject.Find("GameObject_CARRES_PROJET1");
  target_CARRES_PROJET2 = GameObject.Find("GameObject_CARRES_PROJET2");
  target_ROUTE1 = GameObject.Find("GameObject_ROUTE1");
  target_ROUTE2 = GameObject.Find("GameObject_ROUTE2"); 
// On masque les groupes CARRES_PROJET1 et2 / ROUTE1 et ROUTE2.
  target_CARRES_PROJET1.SetActiveRecursively(false);
  target_CARRES_PROJET2.SetActiveRecursively(false);  
  target_ROUTE1.SetActiveRecursively(false); 
  target_ROUTE2.SetActiveRecursively(false);
// on affiche le groupe CARRES_FIXES et Cles groupes CARRES_TN* 
  	  target_CARRES_FIXES.SetActiveRecursively(true);
      target_CARRES_TN1.SetActiveRecursively(true);
      target_CARRES_TN2.SetActiveRecursively(true);

}


//clic sur le bouton nommé "V1" Masque CARRES_TN1  Affiche CARRES_PROJET1 et ROUTE1 et CARRES_TN2 
//____ GUI.Button new Rect(20,100,200,40) début bouton à x,y et long, largeur 

function OnGUI ()
{
   if(GUI.Button(new Rect(20,50,200,40),"V1  "))
   {
   target_CARRES_TN1.SetActiveRecursively(false);
        target_CARRES_TN2.SetActiveRecursively(true);
		target_CARRES_PROJET1.SetActiveRecursively(true);
   target_CARRES_PROJET2.SetActiveRecursively(false);
		target_ROUTE1.SetActiveRecursively(true);
   target_ROUTE2.SetActiveRecursively(false);


   }

//clic sur le bouton nommé "V2  " Masque CARRES_TN2 / ROUTE_1  
// Affiche CARRES_PROJET2 et ROUTE2 et CARRES_TN1
   if(GUI.Button(new Rect(20,100,200,40),"V2  "))
   {
       target_CARRES_TN1.SetActiveRecursively(true);
   target_CARRES_TN2.SetActiveRecursively(false);
   target_ROUTE1.SetActiveRecursively(false);
       target_ROUTE2.SetActiveRecursively(true);
   target_CARRES_PROJET1.SetActiveRecursively(false);
       target_CARRES_PROJET2.SetActiveRecursively(true);
    }

//clic sur le bouton nommé "INITIALISATION " retour de CARRES_FIXES et CARRES_TN*

   if(GUI.Button(new Rect(40,150,250,40),"INITIALISATION "))
   {
   target_CARRES_TN1.SetActiveRecursively(true);   
   target_CARRES_TN2.SetActiveRecursively(true);
   target_CARRES_PROJET1.SetActiveRecursively(false);
   target_CARRES_PROJET2.SetActiveRecursively(false);
   target_ROUTE1.SetActiveRecursively(false);
   target_ROUTE2.SetActiveRecursively(false);
   }

}


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

Re: Projet routier/ Remise à plat / Phase 0

Message par axel » 25 Mai 2012 12:02

C'est très grand comme terrain. Et c'est quoi la précision des dalles?

Avatar de l’utilisateur
giyomuSan
Messages : 1799
Inscription : 09 Déc 2009 14:52
Localisation : Japon

Re: Projet routier/ Remise à plat / Phase 0

Message par giyomuSan » 25 Mai 2012 12:49

Va falloir eviter de vouloir loader toute la scene ou dalle d un coup..y compris les textures, sinon tu va exploser ta ram xd....

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

Re: Projet routier/ Remise à plat / Phase 0

Message par freepl » 25 Mai 2012 13:01

La précision des dalles en vue proche c'est du 1024 dpi.
Comme pour l'instant je ne sais pas du tout faire un scripte qui chnage la qualité d'image chargée en fonction de la hauteur, je prends directment la 1024 dpi

Dans VIRTOOLS, si ma caméra est haute on charge du 64 dpi, à une certaine hauteur on passe en 512

Comment loader qu'une partie de la scène ?

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

Projet routier/ Remise à plat / Phase 2 : Animer la caméra

Message par freepl » 25 Mai 2012 13:23

Bonjour

La phase 1 gestion des groupes est ok . :D
Voici la phase 2 : déplacer la caméra pour l'instant avec clavier et souris.

Je suis bloqué car les tuto parlent d'objet de collision mais moi ce n'est que la caméra que je veux déplacer en x, z et aussi en hauteur y.
Je désire aussi pouvoir la faire tourner au tour du centre de ma vue.

J'ai vu le tuto 21 qui parle du script WOWcamera, mais la vue de la camera est centrée sur un personnage.
Comment faire ?
Pour l'instant je ne peux rien faire, je suis coincé :cry:
Merci

sephitoth
Messages : 495
Inscription : 06 Avr 2012 13:47
Localisation : toulouse

Re: Projet routier/ Remise à plat / Phase 0

Message par sephitoth » 25 Mai 2012 13:32

ya deux techniques différentes qui vont te permettre de résoudre ça

la première c'est le LOD (Level Of Detail)
c'est ce que tu exprime avec ton explication sur Virtools Sache que Unity aussi peut faire du LOD

la seconde technique que tu peux utiliser est l'Occlusion culling
Cette technique permet de ne charger que les objets qui sont présent dans ton viewport
En gros on ne charge que les objets que l'on voit.
http://www.youtube.com/watch?v=S5l3unhW4e0
J'étais athée jusqu’à ce que je découvre que j'étais dieu !

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

Re: Projet routier/ Remise à plat / Phase 0

Message par freepl » 25 Mai 2012 13:36

C'est exact pour le LOD dans VIRTOOLS
As-tu ce script quelque part ? et comment le modifier en fonction de mon projet

Je ne verrais youtube que ce soir chez moi. Le proxy boulot me bloque.
Un question , c'est en français ?

Merci

Répondre

Revenir vers « Vos créations, jeux, démos... »