E.T | 13/11/2010 | Hypnic Jerk | Unity

Hypnic Jerk: Création de la sphère machiavélique du Marchand De Sable et application d’une gravité chelou.

Pour ce travail nous utilisons Maya2010

Création et importation de la sphère

Dans Maya:







  • 1. Créez une sphère de radius 100 et de Subdivisions Axis et Height 40.
  • 2. Il est important de toujours poser l’objet à 0,0,0 et à l’échelle 1:1. ( note: Le CenterPivot est repris par Unity).
  • 3. Vérifier que Double Sided ne soit pas coché dans les RenderStats.
  • 4. Afin de voir à l’intérieure de la sphère, nous allons inverser les normales. La normale permet de décider quelle surface renvoie la lumière, donc visible.
  • 5. Allez dans RenderStats et cochez Opposite ou allez dans le menu polygone puis changez, normals/reverse.
  • 6. Créez une texture qui permet de mieux discerner la surface de la sphère:
  • 7. Créez un lambert sur lequel vous appliquez un Checker (damier) dans color et appliquez la texture à la sphère
  • 8. Sauvegardez avec un nom styléManor genre « InvertedSphere ».

Dans Unity







  • 1. Glissez votre InvertedSphere dans votre ProjectView
  • 2. Ajoutez un Component ColliderMesh
  • 3. Ajoutez une Point Light
  • 4.Créez un cube: menu/GameObject/CreateOther/Cube. Notez que le cube possède déjà un composent collider contrairement aux objets 3D importés auquel vous devez le rajouter
  • 5.Ajoutez un RigidBody à votre Cube: Component/Physics/Rigidbody ( note: si vous jouez maintenant votre jeu, le cube tombe au fond de la sphère. Et n’oubliez pas de sortir du mode Play pour continuer à travailler.)
  • 6. Désactivez l’option Use Gravity dans le RIgidBody pour la prochaine étape dans laquelle nous allons créer notre propre force gravitationnelle.
  • 7. Accordez vous une pause musicale,ici.

Création du Script Gravity

(note: Le script servira à faire en sorte que les objets aillent se poser au bord de la sphère le plus proche d’eux et non de tomber dans l’axe des Y) ou mettre la misère à Newton.

  • 1. Allez dans Assets/Create/JavaScript.
  • 2. Le script s’appel « NewBehaviorScrips », renommez le « MyGravity ». Si vous cliquez dessus il ouvre un programme appelé Unitron qui permet de scripter sa race.
  • 3. Voici une copie du Script commenté, ici

Clôner un objet avec un script

Ce script va vous permettre de créer des objets dans votre jeu grâce au clique de la souris.

  • 1. Le script commenté est,ici
  • 2.Il faut ensuite créer un GameObject vide qui active le script afin que des cubes apparaissent dans la sphère en cliquant.
  • 3. Glissez le script dans le GameObject vide et nommez votre objet « Instantiator » ou « Cloneur » ou ce que vous voulez!
  • 4. Créez un nouveau Préfab vide Asset/create/prefab
  • 5. Glissez votre Cube dans le Préfab
  • 4.Glissez le Prefab que vous souhaitez être clôné dans le script attaché à l’instantiator.
  • ( note: si vous avez des difficultés à comprendre voici allez voir ,ici.)

  • 5. Jouez votre jeu et observez ce qui se passe, en cliquant dans la scène vous devriez faire apparaître des cubes qui réagissent à la nouvelle gravité. Vous pouvez ensuite modéliser des maisons et des bâtiments pour remplacer les cubes

Pour nous la prochaine étape est de définir la charte graphique du jeu que l’on mettera en ligne la semaine prochaine. Pour la programmation on se demande si on arrivera à créer une sphère dont la topologie peut être modifiée grâce au touch et si les Ipad/Iphone pourrons calculer tous ces changements sans que ça ralentisse tout.

E.T | 13/11/2010 | Unity

Unity: Créer un nouveau projet

Pour créer un nouveau projet de jeu, il vous suffit de cliquer sur file/newproject et de sélectionner les « Packages » dont vous avez besoin pour votre projet. Certains packages sont fournis avec Unity mais vous pouvez en rajouter d’autres .Ils correspondent à des attributs de votre jeu, scripts, physique, eau, particules ( comme les plugins d’after effect). Vous travaillez maintenant sur la première scène de votre projet:

Les scènes:

Une scène contient les objets de votre jeu ( Prefabs, GameObjects etc…),
considérez-les comme un niveau de votre jeu, vous pouvez avoir autant de scènes que vous le souhaitez

E.T | 13/11/2010 | Unity

Unity: Les GameObjects et leurs components

les Assets

Vous avez créé une nouvelle scène et vous souhaitez maintenant importer des éléments dans votre jeu, ces éléments appelés « Assets » sont des tous les éléments utilisés pour votre scène ( script, textures, objets 3D, particules etc…) Lorsque vous avez fabriqué votre objets, enregistrez-le dans la dossier « Assets » de votre jeu, il apparaîtra automatiquement dans la fenêtre » ProjectView « du programme, si vous la sélectionnez, vous aurez des informations sur son contenu. A ce stade l’objet ne possède aucune propriétés en rapport avec votre jeu.


Pour ajouter votre objet 3D à votre scène, il vous faut le glisser dans la fenêtre Hierarchy ou directement dans la scène. L’objet sera du coup considéré comme un « Game Object » et le programme rajoute automatiquement un « Mesh Renderer Component » à votre objet. ( voir explication suivante)

Les Game Objects

Chaque élément de votre jeu est un GameObject mais ils ne font rien tous seuls, il faut leur attribuer des propriété pour qu’ils soient considérés comme des personnages, des éléments de décors, des armes…


On peut considérer un « GameObject » comme une boite vide dans laquelle on met différents éléments appelés « Components ». ( A l’image des clips dans flash) Les Components peuvent êtres des textures, du son, des scripts pour leur donner des comportements ou des formes.Attention, un GameObject n’a pas forçément une forme 3D qui lui est assignée, ce n’est qu’un boîte vide avec des coordonnées.


Pour résumer ce qui peut composer un GameObject:


  • Une texture est appliquée à un Matériaux
  • Un Matériaux est appliqué à un GameObject ( avec le « Mesh Renderer Component)
  • Un animation est appliquée à un GameObject(Avec le componant Animation)
  • Un fichier son est appliqué à un Game Object ( avec un componant Audio Source)


// Petite info sur les animations, ce qui est pratique c’est qu’une animation peut être directement importée depuis un fichier 3D et réutilisée dans Unity//

Les Components

Lorsque vous glissez votre Asset ou Mesh créé dans Maya dans la scène, vous avez donc un GameObject vide qui possède déjà quelques attributs: Un nom, un tag et un calque (layer)


Le premier Component qui s’affiche automatiquement dans l’inspecteur est celui appelé « Transform » qui vous indique la position, la rotation et l’échelle de votre objet dans la scène. Il crée également automatiquement un concept appelé « Parenting ». On peut dire à un GameObject, en le glissant sur un autre, d’être parenté à celui-ci. L’objet parenté se transforme maintenant en fonction de son parent ou « Root object », ses coordonnées sont également en fonction de l’objet principal.


Unity donne l’exemple suivant: Si dans un jeu d’horreur on veut un sympathique effet de lampe torche il suffit de parenter les transformations du spot de lumière à la lampe torche, ainsi lorsque la lampe bouge, le spot fait de même.

Modifier les paramètres d’un GameObject dans l’inspecteur

Dans l’inspecteur il vous est possible de modifier les components de plusieurs façons:

  • Les valeurs: vous modifiez ici les propriétés numériques d’un objet( couleur, animation, sensibilité propriétés, les components)
  • Les références: dans les propriétés d’un GameObject vous pouvez lui attribuer une référence, cela peut être un Fichier Audio ou un modèle Maya …C’est toujours noté quel type de fichiers peut être attribué.

L’inspecteur

Il est bon à savoir que vous pouvez avoir plusieurs Inspecteurs ouverts qui vous permettent de modifier plusieurs GameObjects de façon différente, vous pouvez par exemple décider d’en « Locker » afin que les attributs d’un objet soient toujours visibles mêmes si vous en sélectionnez un autre.

Les scripts

Les scripts sont considérés comme des « components » que vous créez vous-même, il sont codables en javascript, C#, et Boo. On fera un chapitre sur les scripts la prochaine fois.

Ajouter des components aux GameObject

  • 1. Créez un nouveau GameObject: GameObject->Create Empty
  • 2. Ajoutez un « component » « Rigid Body » à ce GameObject:Component->Physics->Rigidbody
  • 3.Appuyez sur play: vous remarquerez que la position Y de ce GameObject chûte car le component rigid body lui a ordonné d’être influençé par la gravité.



vous pouvez ajouter un nombre infini de « Components » à un « GameObject » selon l’utilisation. Avec le » Rigid Body » vous pouvez par exemple ajouter un « Collider » afin qu’il interagisse avec d’autres « Colliders.  »


Exemple: si deux cubes n’ont pas de Colliders , lorsqu’ils se rencontrent ils passent l’un à travers l’autre. Avec un Collider et le RigidBody ils reconnaîtrons qu’ils sont deux objets rigides et se rentrerons dedans.


Dans l’inspecteur vous pouvez donc modifier les paramètres de ces Components. Unity donne ici l’exemple d’un fichier audio rattaché à un GameObject.

E.T | 13/11/2010 | Unity

Unity: Les Préfabs

Importants, les Préfabs sont une collection de GameObject et de Components qui peuvent êtres réutilisés dans la scène avec les mêmes propriétés. Si vous modifiez une des propriétés du Prefab, toutes les instances de ce Préfab seront également modifiées. Vous pouvez ainsi prendre plusieurs GameObjects qui sont parents les uns aux autres pour en faire un Préfab. Vous pouvez effacer le GameObject original de vote hiérarchie et n’utiliser que le Prefab.

Créer un Préfab

Lorsque vous créez un Préfab vide vous ne pouvez rien en faire tant qu’il ne contient pas de GameObjects:

  • 1. Créez un nouveau Préfab: Assets->Create->Prefab
  • 2. Dans la vue hiérarchique sélectionnez le GameObject dont vous voulez faire un Préfab.
  • 3. Cliquez-glissez le GameObject sur le Préfab Vide qui se trouve dans ProjectView.
  • 4. Pour créer une instance de ce Préfab, glissez le dans la scène autant de fois que vous le souhaitez.

Dans la HierarchyView les instances de Préfabs sont affichées en bleu. Pour modifier l’original d’une instance, vous pouvez cliquer sur le bouton  » Select » de l’inspecteur.

Editer les instance de Préfabs individuellement:

Lorsque vous sélectionnez un Préfab et que vous lui rajoutez un script, toutes ses instances se verrons attacher ce script. Il est néanmoins possible de modifier une instance de Préfab tout en gardant le lien avec le Préfab original. Il suffit de modifier une propriétés de l’instance qui s’affichera en gras. Cela veut dire que cette propriétés prend le dessus sur celle du Préfab original.


Cependant deux actions vont briser le lien entre le Préfab et son instance:


  • L’ajout ou le retrait de Components
  • L’ajout ou le retrait d’un GameObject



Le programme demandera alors une confirmation de l’action et vous demandera ensuite si vous souhaitez reconnecter l’instance avec son Préfab source ce qui modifiera également toutes les autres instances.


Lorsque vous importez un model 3D dans vos Assets, Unity ajoute automatiquement quelque chose qui ressemble à un Préfab il s’agit en fait du fichier original lié au model mais que vous ne pouvez pas utiliser comme Préfab.

E.T | 13/11/2010 | Unity

Unity: Caméras et Lumières

Caméras:

Une caméra est automatiquement ajoutée à une nouvelle scène et permet de choisir le point de vue qu’aurons les joueurs dans le jeu.
Elle possède les components suivants:

  • GUI layer: Ce sont des éléments en 2D qui sont affichés dans le jeu ( boutons, infos, interfaces etc..)
  • Flare Layer: pour activer des chatoyance de caméras
  • Audio Listener: permet de lire l’audio des éléments du jeu à travers les hauts parleurs de la console du joueur en fonction de la position de la caméra.

Lumières:

Le travail sur les lumières est très important, il va définir tout l’atmosphère de votre jeu.
Vous pouvez soit ajouter des lumières statiques dans votre scène / GameObject->Create Other menu
Ou vous pouvez ajouter un « Component lights » à un GameObject
Il vous suffit de tester les différents paramètres dans l’inspecteur pour en voir l’effet.

E.T | 2/11/2010 | Unity

Unity: Introduction

Unity est un logiciel de programmation de jeux vidéos en 3D.
Il fonctionne sur Windows et MacOS et permet de créer des applications pour presque toutes les plateformes de jeux telles que PC, Mac, Xbox, Ps3, Wii, iOS (iPhone et iPad) et Android. Vous pouvez également créer des applications pour le Web, utilisables avec un plug-in unity que l’utilisateur doit installer sur son navigateur.
Le logiciel est gratuit avec certaines limitations. Entre autre, vous ne pouvez programmer que sur des plateformes informatiques (windows et MacOS) et vous n’avez pas certaines fonctionnalités avancées, comme les ombres dynamiques ou les rendus d’eau réalistes.
La première fois que vous lancerez Unity, il ouvrira un projet-exemple pour que vous puissiez vous familiariser avec le programme.




L’interface

Unity se présente avec une interface relativement simple et intuitive. Plusieurs configuration d’interface sont proposés dans l’onglet « layout ». Nous décrivons ici le layout « 2 by 3″.Comme dans presque tous les logiciels, vous pouvez déplacer les fenêtres de l’interface pour les arranger comme bon vous semble.

Il y a six fenêtres principales:




Project

La fenêtre Project répertorie tous les éléments utilisables dans votre jeu. Ils sont appelés « assets ». Cela concerne les scenes, scripts, models 3D, textures, fichiers audio et « prefabs ». Les prefabs sont des « GameObject » réutilisable. On peut les comparer aux « movie clip » de flash. Quand vous ajoutez un prefab à une scène, vous créez une instance de celui-ci. Donc, toute modification du prefab original sera appliqué à toutes ses instances.




Hierarchy

La Hierarchy est la liste des éléments présents dans votre scène. Ce sont tous des instances d’objets présent dans votre fenêtre « Project ». Vous pouvez facilement parenter des objets en les glissant les uns à l’intérieur des autres.




Scene View

Cette fenêtre permet de visualiser l’environnement que vous créez. La navigation dans la scène est facile à prendre en main, surtout si vous avez un peu d’expérience en modélisation 3D. Description détaillée de la navigation, ici.(attention, manuel en anglais)

Vocabulaire utile pour le manuel : un Gizmo est un petit élément visuel qui permet de savoir sur quel plan on travail.




Game

Vous pouvez voir ici votre jeu tel qu’il se lancera sur votre plateforme et l’essayer.
Vous pouvez même éditer les variables des scripts appliqués à vos objets dans la Hierarchy et voir leur répercussion en live. Attention, ceci ne fonctionne pas si vous modifiez des variables des objets dans la liste « Project ».




Inspector

Affiche les informations détaillées de l’objet séléctionné. C’est ici que l’on trouvera toutes les spécificités d’un objets, sa position et les scripts qui lui sont attachés (les scripts sont appelés « components ».




Toolbar

La Toolbar contient:



  • - des éléments de navigation de base de la SceneView: déplacement, rotation, zoom.



  • - des éléments permettant de modifier les attributs des outils de transformation (Tool handles): center permet de mettre l’outil au centre de l’objet, tandis que pivot permet de le mettre au niveau du pivot de l’objet… en ce qui concerne l’option global/local, on a pas encore compris la différence.



  • - les contrôles pour lancer la prévisualisation du jeu: Play, Pause…




  • - L’onglet Layers permet de décider quels calques sont visibles.L’onglet Layers permet de décider quels calques sont visibles.
  • - L’onglet Layout permet de modifier l’arrangement des fenêtres dans l’interface.




C’est tout pour cette fois, la semaine prochaine on parlera de la configuration de scènes et l’intégration de modèles 3D. Pour ces tutoriaux nous allons nous concentrer sur la création de jeux pour l’IPhone et l’IPad en lien avec le projet de jeu vidéo Hypnic Jerk pour l’appel à projets de Gameculture.ch .

| HEAD - GENEVE MASTER OF ARTS HES-SO EN DESIGN |
| GRETA TEXT AND WEB FONT SERVICE BY TYPOTHEQUE.COM |