Comment creuser ?

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Shinzo Takezo
Messages : 6
Inscription : 29 Déc 2010 01:21

Comment creuser ?

Message par Shinzo Takezo » 31 Déc 2010 10:17

Bonjour,

Après de très nombreuses recherches je n'ai pas encore trouvé la réponse à mon petit "problème"... Sous les demandes d'un administrateur, je dois créer une map. J'ai entouré mon terrain de montagnes et j'aimerais faire un "tunnel secret" horizontalement pour traverser à l'intérieur de la montagne. (il est possible que je ne sois pas très clair donc si vous ne comprenez pas, voici un mimi schéma et si malgré ça ne comprenez toujours pas, je peux essayer de vous en dire plus...) Mon seul problème c'est que je ne sais pas comment "creuser" afin de faire ce "tunnel secret". J'aimerais savoir quels outils je dois utiliser pour creuser... Je suis un peu désespéré.

Merci d'avance pour vos réponses et bonne journée ^^

error404
Messages : 160
Inscription : 13 Nov 2010 07:51
Contact :

Re: Comment creuser ?

Message par error404 » 31 Déc 2010 10:28

Salut,

Ben tu peux tricher... Faire ta map dans un logiciel 3D (au hazard blender), tu crée déja le trou dans ta montagne et tu crée un objet qui bouchera ce trou (un genre de cylindre long).
Tu importe le tout dans unity et dans ton script tu agis sur ton objet cylindre et quand le perso creuse, tu diminue la taille du cylindre sur l'axe des y pour arriver progressivement à 0, ce qui créera le trou.
Bon c'est juste une idée que je n'ai pas testée, mais ca me parait bien, en tout cas c'est très faisable. Le principal c'est de donner l'illusion que l'on creuse.

Après si quelqu'un a une meilleure idée, a lui la parole :)
++

Shinzo Takezo
Messages : 6
Inscription : 29 Déc 2010 01:21

Re: Comment creuser ?

Message par Shinzo Takezo » 31 Déc 2010 10:48

Tout d'abord, merci de votre réponse. Ensuite, cela m'a l'air très compliquer. Surtout que moi et les scripts on n'est pas très amis... Je sais faire les trucs de base mais, cela à l'air compliquer pour mon petit cerveau. :lol:

error404
Messages : 160
Inscription : 13 Nov 2010 07:51
Contact :

Re: Comment creuser ?

Message par error404 » 31 Déc 2010 11:25

Bon quoi qu'il arrive il va bien falloir scripter pour creuser.
Premièrement il y a la modélisation, il faut faire une montagne avec un trou et un objet qui bloque ce trou.
Ensuite par script associé a cet objet il faut agir sur son gameObject.transform.scale.y et réduire sa valeur jusqu'a 0 pour la faire disparaitre.
On peut dire

Code : Tout sélectionner

if (gameObject.transform.scale.y == 0)
Destroy(gameObject);
C'est une idée.

Shinzo Takezo
Messages : 6
Inscription : 29 Déc 2010 01:21

Re: Comment creuser ?

Message par Shinzo Takezo » 31 Déc 2010 13:46

D'accord, mais comment faire un trou ? :oops: XD je sais, je suis bête... Pouvez-vous m'expliquer étape par étapes s'il vous plaît ?

error404
Messages : 160
Inscription : 13 Nov 2010 07:51
Contact :

Re: Comment creuser ?

Message par error404 » 31 Déc 2010 13:58

Ca je ne sais pas faire car je ne fais pas la modélisation 3D de mes jeux, ce sont des graphistes qui s'en occupent. Il faudra donc apprendre a modéliser sur blender, il y a un bon tuto ici : http://www.siteduzero.com/tutoriel-3-11 ... ender.html
en 10 jours on sais utiliser blender !

Avatar de l’utilisateur
Makandal
Messages : 18
Inscription : 12 Nov 2010 09:23

Re: Comment creuser ?

Message par Makandal » 31 Déc 2010 15:30

Bon, desole de te decevoir mais effectivement, tu vas devoir passer par un script. Ou alors.... Bon, revenons a ton probleme. 2 solutions

1/ Avec un seul terrain. Les terrains crees dans Unity sont de type 'heightfield/heightmap". Qu'est ce que ca veut dire ? Ce sont des sortes de grilles geantes ou a chaques cellules de la grille on affecte une valeur de hauteur. Tu ne peux mettre qu'une valeur pour chaque cellule de coordonnees X (Est-Ouest) Y (Nord Sud). Donc, c'est impossible de representer une grotte avec un terrain. Donc, on en revient a la solution de Error404.

2/ La deuxieme possibilite, c'est de tricher avec 3 terrains. Tu prends le premier terrain et tu fais ta montagne. Simple. Ensuite, tu crees 1 cube exactement a l'entree de ton tunnel, sans mesh bien entendu, et tu le mets en trigger. La, tu vas devoir scripter un peu. Ces cubes representeront en quelques sortes l'entree de ton tunnel. Quand ton perso rentre dans un cube, il est teleporte de qq m juste SOUS la surface du terrain (1). Donc dans ton cas de qq m sur un plan horizontal. La, le perso se retrouve sur le terrain (2), dans la grotte. En fait, en script, il faut juste rajouter un petit chouilla a ton transform.x et transform.z.
Le terrain (2) represente le sol de la grotte, c'est un tout petit terrain, tout en longueur, creuse par un canyon. La, si tu veux, tu utilises le generateur Voronoi pour faire des stalagmites au fond du canyon, si tu utilises un generateur de terrain, applique une erosion de type glaciaire a ton canyon, ca donnera une belle forme en U. Ensuite, tu duplicates ce terrain, tu rajoutes un peu de bruit (Perlin, tres leger) et tu lui appliques une rotation de 180 deg sur l'axe x ou z et ca cree le terrain (3) qui va etre ton plafond. Tu mets ce terrain (3) juste au dessus du terrain (2). Tu as cree une sorte de cylindre. Ok ?
Apres tu textures ton terrain pour avoir une belle roche humide, tu peux rajouter un lac/riviere souterraine etc.... C'est la partie fun.
Si tu t'es bien debrouille, tu vas avoir une grotte splendide avec des stalactites et des stalagmites. Pour sortir de la grotte, meme chose avec un cube trigger qui te teleporte de qq m.
L'avantage de cette methode, c'est que tu peux faire des grottes de toutes les formes, tu n'as pas vraiment besoin de te faire ch.er avec Blender (qui est loin d'etre evident, je bataille avec depuis 1 mois), tu peux tout faire dans Unity meme si ca sera pas aussi beau.
C'est tordu mais ca donne un bon resultat. Le seul point faible, c'est la transition par 'teleportation' dans ta grotte. Cela dit, tu peux creer une scene intermediaire purement passive avec une petite animation bidon du perso qui rentre/sort de la grotte.
Si c'est purement un tunnel, tu n'as pas besoin de te casser la tete avec les stalactites et les stalagmites. Mais bon, il faudra quand meme donner un peu de vie au terrain 2 et 3 en rajoutant du bruit.

Voila, cela dit, je suis un tout debutant sur Unity, il y a peut etre une solution plus simple.

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

Re: Comment creuser ?

Message par ZJP » 31 Déc 2010 17:57

Traité ici : viewtopic.php?f=2&t=739

JP

Shinzo Takezo
Messages : 6
Inscription : 29 Déc 2010 01:21

Re: Comment creuser ?

Message par Shinzo Takezo » 31 Déc 2010 20:50

Makandal a écrit :Bon, desole de te decevoir mais effectivement, tu vas devoir passer par un script. Ou alors.... Bon, revenons a ton probleme. 2 solutions

1/ Avec un seul terrain. Les terrains crees dans Unity sont de type 'heightfield/heightmap". Qu'est ce que ca veut dire ? Ce sont des sortes de grilles geantes ou a chaques cellules de la grille on affecte une valeur de hauteur. Tu ne peux mettre qu'une valeur pour chaque cellule de coordonnees X (Est-Ouest) Y (Nord Sud). Donc, c'est impossible de representer une grotte avec un terrain. Donc, on en revient a la solution de Error404.

2/ La deuxieme possibilite, c'est de tricher avec 3 terrains. Tu prends le premier terrain et tu fais ta montagne. Simple. Ensuite, tu crees 1 cube exactement a l'entree de ton tunnel, sans mesh bien entendu, et tu le mets en trigger. La, tu vas devoir scripter un peu. Ces cubes representeront en quelques sortes l'entree de ton tunnel. Quand ton perso rentre dans un cube, il est teleporte de qq m juste SOUS la surface du terrain (1). Donc dans ton cas de qq m sur un plan horizontal. La, le perso se retrouve sur le terrain (2), dans la grotte. En fait, en script, il faut juste rajouter un petit chouilla a ton transform.x et transform.z.
Le terrain (2) represente le sol de la grotte, c'est un tout petit terrain, tout en longueur, creuse par un canyon. La, si tu veux, tu utilises le generateur Voronoi pour faire des stalagmites au fond du canyon, si tu utilises un generateur de terrain, applique une erosion de type glaciaire a ton canyon, ca donnera une belle forme en U. Ensuite, tu duplicates ce terrain, tu rajoutes un peu de bruit (Perlin, tres leger) et tu lui appliques une rotation de 180 deg sur l'axe x ou z et ca cree le terrain (3) qui va etre ton plafond. Tu mets ce terrain (3) juste au dessus du terrain (2). Tu as cree une sorte de cylindre. Ok ?
Apres tu textures ton terrain pour avoir une belle roche humide, tu peux rajouter un lac/riviere souterraine etc.... C'est la partie fun.
Si tu t'es bien debrouille, tu vas avoir une grotte splendide avec des stalactites et des stalagmites. Pour sortir de la grotte, meme chose avec un cube trigger qui te teleporte de qq m.
L'avantage de cette methode, c'est que tu peux faire des grottes de toutes les formes, tu n'as pas vraiment besoin de te faire ch.er avec Blender (qui est loin d'etre evident, je bataille avec depuis 1 mois), tu peux tout faire dans Unity meme si ca sera pas aussi beau.
C'est tordu mais ca donne un bon resultat. Le seul point faible, c'est la transition par 'teleportation' dans ta grotte. Cela dit, tu peux creer une scene intermediaire purement passive avec une petite animation bidon du perso qui rentre/sort de la grotte.
Si c'est purement un tunnel, tu n'as pas besoin de te casser la tete avec les stalactites et les stalagmites. Mais bon, il faudra quand meme donner un peu de vie au terrain 2 et 3 en rajoutant du bruit.

Voila, cela dit, je suis un tout debutant sur Unity, il y a peut etre une solution plus simple.
Merci beaucoup ^^ Je vais essayer, mais j'ai juste pas compris quelque chose. Que devrais-je scripter ? Ca à l'air malheureusement dur.

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

Re: Comment creuser ?

Message par ZJP » 01 Jan 2011 19:53

As tu jeté un œil sur le lien posté? :?

JP

Répondre

Revenir vers « Unity le logiciel »