Téléchargez comme PPTX, PDF, TXT ou lisez en ligne sur Scribd
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 15
Prsentation de Unity 3D :
Unity est un moteur 3D de cration de jeux/d'applications, qui intgre le PhysX de Nvidia.
Il n'est pas un modeliseur, mais fonctionne avec une scne 3D grant lumires, shaders, camras. Il permet l'insertion de code dans diffrents langages, allant du javascript au C-sharp, sparment ou mme simultanment. Des plug-ins d'aide la cration sont intgrs au soft, tel un gnrateur de terrain, de vgtation, ou encore des packs prfaits facilitant le contrle du joueur, des camras etc... Unity utilise un systme de drag and drop dans son interface, ainsi qu'un systme d'Assets, sortes de clips pour ceux qui ont dj utiliss Flash. Intuitif et puissant donc, il prsente l'norme avantage d'autoriser une publication multi-plateformes (Playstation3,Xbox, Wii, PC/MAC, WebPlayer, iOS,Android).
La version de base du logiciel, gratuite, permet de se faire la main et de pouvoir malgr tout, mener des projets plutt complexes ! Par rapport la version dite pro seuls vont manquer des options de rendu, d'optimisation en rgle gnral. Nous utiliserons pour ce cours cette version gratuite.
Le meilleur moyen de cerner les capacits d'un moteur 3D/2D restant l'exemple : iOS : ShadowGun, Battleheart (2D), Guerilla Bob, Samurai II PC : MonkeyQuest (mmo), Tron Legacy LightCycle, Max and the Magic Marker Wii : Max and the Magic Marker
La communaut, notamment US, est hyperactive et recense sur le site officiel un trs grand nombre de tutoriaux, conseils, partage de ressources et dispose mme d'un store en ligne proposant des assets pouvant tre trs utiles ( interaction avec facebook par exemple) a se passe ici : www.unity3d.com La communaut franaise est beaucoup moins active mais grce la contribution norme de Krys, propose nanmoins normment de tutoriaux et est mis jour trs rgulirement. www.unity3d-france.com
Des sites communautaires recensent bon nombre de jeux raliss par des amateurs, parfois des pros : www.wooglie.com www.blurst.com www.musegames.com Nous allons faire un tour de l'interface de Unity, comprendre comment s'organisent les fentres, cerner les principes fondamentaux de fonctionnement, puis nous lancer dans un petit exercice pratique. 1) Les fondamentaux On cre un nouveau projet : Nous allons organiser l'interface par Windows>Layouts> 2by3 En haut au centre de notre 2by3, trois boutons, play, pause, et image par image permettent de tester en temps rel le projet. Quand ce dernier est en mode play, les modifications, dtions, ne seront pas enregistres. Dtaillons d'abord succinctement chaque partie : De gauche droite : -La scne : C'est l'diteur du projet, reprsent par une scne 3D dans laquelle on peut naviguer, disposer ses objets. -Le game Player : Li la scne, c'est en fait la vue de la main Camera, les interactions sont possibles, une vraie prvisualisation du projet final sans passer par un build . -Hierarchy : Une liste des objets prsents sur la scne actuelle, permet aussi de crer des lments via un menu contextuel. -Project : Le dossier qui contient toutes les ressources du projet, celles qui sont importes apparaissent ici. -Inspector : Le cur de Unity : tout est gr ici, du scripting aux paramtres au sens large de tous les lments du projet. Nous allons voir maintenant plus en dtail les parties qui composent la zone de travail, en commenant par la Scene. 2) La Scene
De base, une main camera est prsente sur la scne. Crons un cube pour mieux visualiser les fonctionnalits du player : menu gameObject > create other > cube
a) Comment naviguer dans la scne 3D ?
clic gauche : slectionne un objet, fait apparatre par dfaut les axes de position, le clic de base de manire gnrale pour l'dition. clic droit : en le maintenant enfonc et en bougeant la souris, on bouge une camra centre sur le monde alt+clic gauche : en le maintenant enfonc et en bougeant la souris, on bouge une camra centre sur l'objet slectionn clic milieu : glisse la vue, raccourci en fait de l'outil main appui sur barre espace : passe la zone slectionne ( player ou scene par exemple) en mode plein cran la touche f permet de faire un focus sur l'objet pralablement selectionn ( nous le verrons plus tard, quivaut galement au double clic dans la hierarchy sur objet) molette centrale : zoom, dzoom les axes x,y,z permettent de passer sur la vue norme correspondante en cliquant dessus, un clic sur le cube passe la vue en perspective.
de gauche droite : dplacement vue, dplacement objet, rotation et scale > tous les paramtres de rotation/position/scale sont rglables dans l'inspecteur b)Les lments d'onglet de la Scene De gauche droite :
le type d'affichage : mode filaire, textur, filaire+textures etc... modes : RGB (classique), les autres modes permettent de cibler une fonction prcise (mipmaps, alpha ou overlays) active/dsactive : les lumires prsentes sur la scne, la grille et lments GUI ( interface), les sons. Iconification de la scne : active/dsactive les icnes prsentes sur la scne, permet galement d'en choisir la taille. Trs pratique pour visualiser rapidement des lments prcis dans les scnes complexes.
En cliquant sur l'objet main camera sur la scne ( ou dans la hierarchy), une petite fentre apparat, affichant ce que visualise la camra. C'est la vue que nous avons dans la prochaine zone que nous allons dcouvrir, le player.
3) Le player Vritable test en temps rel du projet, sans passer par un build ( qui peut prendre un certain temps suivant la l'ampleur du projet). Nous pouvons tester ici l'interactivit qui sera celle de la version finale du projet. Le player se lance l'appui de la touche Lecture, en haut au milieu de l'interface de Unity.
a) L'aspect du player : contient les formats les plus rpandus ainsi que les formats spcifiques la plateforme sur laquelle nous dveloppons ( pour un projet iOS par exemple, on aura les formats de l'iphone 3gs, 4, de l'ipad etc...)
b) Les autres lments d'onglet De gauche droite :
active/dsactive le mode plein cran du player la pop-up stats est un compte-rendu dtaill technique du projet, elle affiche par exemple le nombre d'images par secondes, le nombre de faces calcules dans la scne, ou encore l'utilisation en mmoire vido. Cette pop-up est trs importante dans la comprhension de l'optimisation d'un projet ( notamment pour iOS).
Iconification du player, fonctionnant exactement comme dans la Scene que nous avons vue juste avant
4) La Hierarchy
C'est la liste des lments prsents sur la scne. Les lments peuvent y-tre renomms, dupliqus, copis etc...Un double clic sur un lment de la liste, par exemple sur notre cube, fait un focus sur l'objet en question, trs utile dans les scnes complexes. En haut gauche de la zone Hierarchy on trouve un menu droulant Create , qui est en fait un raccourci du menu GameObject > Create Other. Dtaillons le pour voir les possibilits de cration qu'il nous offre :
Particle systems : gnrateur d'effets, allant de la pluie l'explosion, grce aux particules, modifiables par la physique
Camera : cre une camra, de base en projection perspective, qui peut-tre aussi orthographique, pour les projets 2D par exemple >> Les lments GUI sont indpendants de la scne 3D et non-affects par la camra. GuiTEXT : couche 2D de texte, systmatiquement au dessus des lments 3D de la scne, utilis gnralement pour les interfaces
GuiTexture : couche image 2D, qui comme le GuiTEXT, sera au dessus de la couche 3D 3DText : le texte est sous la forme d'une mesh 3D, il est donc affect par la camra >>Les lments lumires peuvent afficher leur rayonnement via l'inspecteur
ci
DirectionnalLight : lumire diffuse type soleil, rglable notamment par la rotation de celle-
PointLight : lumire linaire SpotLight : lumire type spot classique, diffuse sur une zone restreinte Primitives : cration de primitives de bases incluant, cube, sphere, capsule, cylindre et plane Clothes : Module de cration de corps mous , utilis notamment pour les vtements, interagit avec la physique
AudioReverbZone : Zone de rverberation du son Ragdoll : Module de cration de pantin articuls intgrant un sytme d'ossature complet, interagit avec la physique
Tree : Module de cration d'arbres ralistes, interagit avec la physique WindZone : Zone physique de vent 5) Le Project
Il liste toutes les ressources du projet, des sons, textures aux meshs 3D, tout y est. Les ressources qui sont importes, de Unity ou de l'extrieur apparaissent ici. Cette zone se gre comme un vritable bureau, autorisant la cration de dossiers, le classement des ressources, etc... C'est galement l qu'on retrouve les diffrentes scnes du projet, reconnaissables par le logo Unity de leurs icones. Un clic droit dans cette zone permet d'afficher un menu droulant, raccourci du menuAssets. Le projet est une vritable fentre ouverte sur votre ordinateur : il est tout simplement le dossier physique de votre projet. Par consquent, effacer un fichier depuis Projet l'effacera galement physiquement de votre ordinateur. Unity met ainsi jour le projet en temps rel, au fur et mesure qu'on glisse dans le dossier projet des nouvelles ressources. Tout comme la Hierarchy, le Project dispose d'un menu create : Dtaillons le galement.
Folder : cration d'un dossier vide Code : cre un fichier script qui peut-tre du javascript , Boo, C# ou encore un script permettant la cration de shaders Prefab : un objet qui stocke diffrents GameObjects avec sa propre hierarchie, pour les utilisateurs de flash, purement un MovieClip
Material : paramtres concernant la texture applique sur un lment 3D Les autres possibilits ne rentrent pas dans une formation initiation Ala cration d'un nouveau projet, Unity demande si l'on veut importer ou non des packages pr- faits qui vont faciliter le dveloppement du projet. Par exemple un controller FPS ( que nous utiliserons dans l'exercice de cette formation), ou encore un script de camra. L encore et au mme titre qu'une ressource importe, ces packages apparaissent dans la zone Project, ce sont les assets. Ne pas hsiter dans Project agencer sa guise les prefabs, textures etc...pour se retrouver facilement.
Avant de nous lancer dans la pratique, regardons en dtail la dernire zone de l'interface de Unity, l'Inspector.
6) L'inspector
Le panneau Inspector est le point nevralgique de Unity, le principal outil pour ajuster chaque lment des objets de jeu et des ressources de votre projet. Tout comme lInspecteur de proprits dans Flash, le contenu de ce panneau est sensible au contexte.Autrement dit, il affiche les proprits correspondant lobjet slectionn. Dans le cas de notre Cube, nous voyons s'afficher toutes les informations relatives sa position, sa taille, sa rotation etc... Le panneau Inspector affiche tous les composants de llment slectionn ce qui permet den ajuster les variables laide dlments simples comme des zones de saisie de texte, des curseurs, des boutons et des menus droulants. Beaucoup de ces variables utilisent galement le systme de glisser-dposer de Unity, ce qui signifie quavec cette mthode vous pouvez dfinir des paramtres plutt que de slectionner une valeur dans un menu droulant, si cela est plus pratique. Ce panneau na pas uniquement pour rle dafficher les lments qui composent les objets. Il peut galement afficher les prfrences de votre projet selon loption que vous slectionnez dans le menu Edit (Edition). Les proprits des composants saffichent ds que vous slectionnez de nouveau un objet ou une ressource. Aprs ce tour global des zones ( panneaux) de l'interface de Unity, nous allons mettre la main la pte en crant un mini-projet qui consistera pouvoir diriger un personnage en vue 1re personne sur une le entoure d'eau modelise par vos soins. 7) L'exercice Crons un nouveau projet par File > New Project... : une pop-up apparat proposant de cocher ou non des packages qui seront imports ensuite. Nous allons en cocher quatre pour notre exercice. Dans les lments qu'il nous faut : - le module terrain pour modeler l'le
le module water (basic) pour grer l'eau autour skyboxes qui va crer lenvironnement ciel et enfin character controller qui embarque ( entre autres) une camra 3me personne et une maniabilit simple
On clique sur Create Project toujours dans la pop-up pour valider. Un chargement indique que les packages sont imports dans le projet. Sachez qu' tout moment ces packages peuvent tre rimports en interne viaAssets > Import Package.
a)Le terrain Nous venons d'importer le module terrain la cration du projet, nous allons retrouver le menu du mme nom dans ceux de Unity. On clique sur Terrain > create terrain. Un objet plane apparat : il faut rajuster la camra de la scne pour mieux le visualiser en cliquant sur le cube ( vue perspective) des axes de la scne.
Pour diter ce terrain, on clique sur son nom dans la hierarchy ou directement sur l'objet plane sur la scne. Pour centrer la vue sur lui, double clic sur terrain dans la hierarchy. Nous retrouvons dans l'inspector les paramtres lis au terrain :
Le composant Terrain comprend sept sections, qui sont facilement accessibles laide des boutons situs en haut du composant : Voici un rapide aperu de leurs capacits respectives. -Loutil Raise/Lower Terrain (elever/abaisser le terrain) Il permet dlever certaines zones sur lesquelles vous peignez laide de loutil Transform Vous pouvez galement dfinir le style de brosse, la taille et lopacit (efficacit) de la dformation que vous effectuez. Pour obtenir leffet contraire, savoir un abaissement de la hauteur, appuyez en mme temps sur la touche Maj. -Loutil Paint Height (peindre jusqua hauteur) Il fonctionne de manire analogue loutil Raise/Lower Terrain mais il possde un paramtre supplmentaire : Height. Cela signifie que vous pouvez dfinir la hauteur que vous allez peindre. Lorsque la zone de terrain dont vous modifiez llvation atteint la hauteur spcifie, elle saplatit, vous permettant de crer des zones planes. -Loutil Smooth Height (adoucir les deniveles) Il sert principalement en complment dautres outils, comme Paint Height, pour adoucir les dnivels abrupts de la topographie. -Loutil Paint Texture(peindre des textures) Il sutilise pour peindre les textures sur la surface du terrain (nommes Splats) dans Unity. Avant de peindre avec des textures, vous devez dabord les ajouter la palette dans la zone Textures de cet outil. Pour cela, cliquez sur le bouton Edit Textures : SlectionnezAdd Textures puis, dans le menu droulant Splat, choisissez un des fichiers de texture actuellement dans votre projet et dfinissez les paramtres de taille de la texture choisie. Nous pouvons ajouter plusieurs textures dans cette mme zone. La premire sera par exemple peinte sur tout le terrain par dfaut. En combinant ensuite plusieurs textures de diffrentes opacits et en peignant la main sur le terrain, vous pouvez donner un aspect raliste tous les types de surface. Pour choisir la texture avec laquelle peindre, cliquez simplement sur son aperu dans la palette : un contour bleu lencadre alors. -Loutil PlaceTrees (disposer des arbres) Comme son nom lindique, cet outil permet de placer, la souris (en peignant ou par de simples clics), des arbres sur le terrain, aprs que les ressources utiliser ont t dfinies. Comme pour les textures de loutil Paint Texture, cet outil dispose dun bouton Edit Trees pour ajouter, modifier et supprimer des ressources de la palette. -Loutil Paint Details (peindre des details) Il fonctionne dune manire analogue loutil Place Trees, mais il est conu pour travailler avec des objets de dtails comme les fleurs, les plantes, les rochers et le feuillage de petite taille. -Terrain Settings (les parametres de terrain) La section Terrain Settings du composant Terrain (Script) contient diffrents para- mtres pour le dessin du terrain par le GPU (processeur graphique) de lordinateur. Ces trois dernires parties sont peu dtailles car nous n'allons pas les utiliser dans notre exercice. Pour nous aider modeler le terrain et surtout pouvoir mieux visualiser les reliefs nous pouvons crer une lumire, la plus rpandue tant la directionnal light, nous allons dans GameObject > create other > Directionnal Light. On peut ajuster sa direction par la rotation d'un de ses axes, la directionnal tant une lumre globale, sa position dans l'espace n'aura aucun effet sur l'clairage. Notre lumire tant maintenant pose et le terrain textur, nous pouvons crer notre zone d'eau. b) L'Eau L encore donc, l'lment eau est un package prfabriqu, nous allons le retrouver dans la zone Project : dossier StandardAssets > Water (Basic) > Daylight Simple Water (nous avons le choix dans cette version basique de ce package eau , entre une version jour ou nuit de l'lment ). On glisse ce Daylight Simple Water du Project dans la Hierarchy. Un double clic sur ce GameObject dans la hierarchy nous fait le focus sur la scne d'un disque bleu : De base, il est assez petit ( surtout par rapport au terrain), nous allons donc le scaler grce l'outil : Nous entourons l'ilt par la mer, en rajustant la hauteur, la taille si besoin. Jusqu' une certaine distance, les effets lis l'eau sont quasiment invisibles, il nous faut zoomer de manire importante dans la scne pour apercevoir que l'eau est en fait anime. Nous allons pouvoir agir sur la taille et la vitesse des vagues via l'inspector. Notez que l'animation est ralise en textures, ce n'est pas directement une dformation de la mesh ( soucis d'optimisation ). Tout est donc modifiable, de la teinte de l'eau, jusqu' sa couleur de rflexion. Il nous manque une zone de ciel pour tre un peu plus immerg dans notre scne. c) Le ciel La manipulation est un peu diffrente pour l'lment ciel. Nous allons aller chercher les paramtres dans le menu Edit > Render Settings . Dans l'inspector droite de notre interface, nous allons chercher un pack de texture en cliquant sur Skybox Material : On prend par exemple, la Skybox Sunny 3. Le ciel est appel skybox car c'est en fait une boite, compose de six faces, parfaitement lies entre elles : nous pouvons observer cela en cliquant sur StandardAssets > Skyboxes > Sunny3 Skybox. L'inspector affiche les six textures sparment. Nous passons volontairement sur la cration personnalise de skybox, trop complexe et peu utile pour notre tutoriel ! Voil ce quoi pourrait ressembler notre dcor au final : Posons maintenant notre personnage, qui sera sous la forme d'une camra mobile, une vue la 1re personne. d) Le personnage Ici nous allons utiliser l'asset Character Controller que nous avons import la cration du projet. Nous allons le rcuprer dans le Project > StandardAssets > Character Controller > First Person Controller. Faisons glisser ce GameObject du Project jusqu' la Hierarchy. Il se prsente sur la scne, sous la forme d'une camra. Dans l'inspector nous notons qu'il s'agit d'une camra scripte avec quatre paramtres :
Nous allons nous contenter de ces paramtres de base dans notre exercice, mais succinctement :
character controller : gre la taille du personnage, la longueur des pas etc... mouse look : gre la maniabilit souris, la sensibilit, l'angle de vue maximum/minimum character motor : concerne la physique du dplacement de manire dtaille fpsinput controller : le script qui permet d'utiliser les flches du clavier pour se dplacer, la barre espace pour sauter Il nous faut placer la camra de Character Controller sur un morceau de notre le pour dcider du point de dpart de notre personnage. La gravit va se charger de le recaler sur le sol, plaons le donc simplement au dessus d'une zone terrestre dans notre scne. Appuyons sur play dans le controller en haut au centre de l'interface de Unity : Vous pouvez bouger la camra avec la souris et diriger votre personnage avec les fleches du clavier dans le dcor que vous venez de modeliser ! N'hsitez pas changer les valeurs de vitesse du mouvement si vous trouvez votre personnage trop lent par exemple, en cliquant dans la Hierarchy sur l'objet Character Controller puis en modifiant les paramtres dans l'Inspector. Pour la vitesse de dplacement par exemple, nous avons modifi les valeurs de Max Forward Speed, Max Sideways Speed et Max Backwards Speed 10 ( 6 de base) : e) La publication C'est bien de pouvoir tester dans le player intgr Unity mais en faire une vritable application indpendante serait encore mieux ! Testons maintenant la publication. Comme nous l'expliquions en introduction vous avez votre disposition plusieurs plateformes d'export possibles, dans notre cas nous allons choisir PC and MAC Standalone par ici : Menu File > Build Settings... Slectionnons PC and Mac Standalone puis cliquons sur Build. La publication des projets dans Unity est appel build . Selon la complexit de votre scne, le chargement va prendre plus ou moins de temps. On dcide du nom final de notre application et de l'endroit o nous voulons l'enregistrer. Retrouvons le projet publi sur notre ordinateur et lanons le, cette fentre apparat : Vous pouvez dcider de la rsolution et de la qualit du jeu, cette dernire impactant sur la finesse des ombres, lumires, particules, de la physique ou encore des shaders. Pour notre projet nous pouvons sans soucis le lancer en qualit Fantastic et au maximum de la rsolution de l'cran que nous utilisons, tant le projet est simple. Flicitations ! Vous avez cre votre premier projet en Unity 3D!