Fr/Emancipation Grid: Difference between revisions

From Valve Developer Community
< Fr
Jump to navigation Jump to search
No edit summary
No edit summary
Line 48: Line 48:


Vous pouvez maintenant être fier de votre premier fizzler qui fonctionne !
Vous pouvez maintenant être fier de votre premier fizzler qui fonctionne !
== Création d'un fizzler dynamique ==
1. Créez une entité [[prop_dynamic]], avec les paramètres suivants :
::{| class=standard-table
!  Property Name || Value
|-
| World Model || models/anim_wp/room_transform/arm64x64_interior.mdl
|-
| Name || panel1
|-
| HoldAnimation || true
|-
| Collision || Not Solid
|}
2. Créez un bloc [[func_brush]] de dimension <code>256Lx256Wx32H</code> sur le model. Paramétrez le comme ceci :
::{| class=standard-table
!  Property Name || Value
|-
| Name || panel1_brush
|-
| Parent || panel1
|}
[[File:Modelbrowserarm64x64.jpg|thumb|right|300px|Ici l'animation "'''''makeramp_06open'''''" qui permet de soulever à 90 degrés un panneau.]]
3. Créez une entité [[logic_auto]] avec les Outputs suivants :
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnMapSpawn || panel1_brush || SetParentAttachmentMaintainOffset || panel_attach || 0.10 || Yes(?)
|}
A présent grâce à cet attachement, le panneau peut suivre l'animation du modèle, selon la pose désirée.
4. Créez une entité [[logic_relay]], avec les paramètres suivants :
::{| class=standard-table
!  Property Name || Value
|-
| Name || relay_panel1_animation
|}
et les Outputs suivants :
::{| class=standard-table
!  || My Output || Target Entity || Target Input || Parameter || Delay || Only Once
|-
| [[Image:Io11.png]] || OnTrigger  || panel1 || SetAnimation || (Nom de l'animation) || 0.00 || Yes(?)
|}
Les noms d'animations sont disponibles dans le Model Browser dans la catégorie "Sequences" du model.


== Grille plus larges ==
== Grille plus larges ==

Revision as of 07:16, 9 March 2012

Template:Otherlang2

"Vous remarquerez le champ de particule incandescentes située devant la sortie. "
- The Announcer

Une Emancipation Grid ou "Grille d'Émancipation" (ou plus connu sous le nom de Fizzler), est un champ d’énergie dans Portal 2 qui supprime tous les portails crées par un générateur de portail lorsque ce dernier la traverse. Elle désintègre et supprime aussi tout objets non autorisé la traversant. (Comme par exemple les cubes ou les tourelles.

Dans le premier Portal, les grilles d'émancipation étaient composées de la manière suivante : Un trigger_portal_cleanser, qui supprime les portails, un info_particle_system qui génère l'effet de champ d’énergie, et le plus souvent 2 models "générateurs".

Dans Portal 2, elles sont composées différemment, et plus simplement. Le trigger_portal_cleanser est toujours présent, et est toujours accompagné de (généralement) 2 models qui font office de générateurs (fizzler.mdl). Mais cette fois-ci le système de particule n'y est pas présent et c'est le trigger_portal_cleanser qui fait office de champ de force. Le bloc doit avoir sur toutes ses faces la texture nodraw, mis à part celle du devant et du derrière avec la texture Fizzler.

Instance

Comme la plus part des éléments de test dans Portal 2, elle est disponible sous forme d'instance. Elle sont statiques et font seulement 128x128 unités. Elle sont surtout utilisées dans les ascenseurs, ce qui en fait une instance très limitée. Elle reste tout de même disponible en blanc et noir :

  • instances/gameplay/fizzler_black_clean_128x128.vmf
  • instances/gameplay/fizzler_black_dirty_128x128.vmf
  • instances/gameplay/fizzler_white_dirty_128x128.vmf

Manual Creation

Ce tutoriel vous apprend à créer une grille d'émancipation sans forcement avoir de grandes compétences avec hammer.

Etape 1

Créez un prop_dynamic et, pour ce tutoriel, le model "models/props/fizzler.mdl". D'autres model de fizzler sont disponibles, comme par exemple pour les salles de test du vieux Aperture, ou encore des fizzlers dynamiques pouvant s'ouvrir et se fermer :

  • models/props/fizzler.mdl
  • models/props/fizzler_dynamic.mdl
  • models/props_underground/underground_fizzler.mdl
  • models/props_underground/underground_fizzler_wall.mdl

Notez que certains fizzlers sont plus détaillés que d'autres.

Etape 2

Notez la position exacte du fizzler par rapport au mur

L'envie de mettre un deuxième fizzler à l'autre extrémité de la zone est tentante, mais sa position doit être minutieusement étudiée, et une faille dans le mur servant de "cache" doit être faite, même si le model est statique, pour des question esthétique.

Note.pngNote: Un mur traversant le model pourra paraître étrange.

Pour remédier à cela, nous allons créer trois blocs autour du fizzler, de la même hauteur, qui serviront de cache. Les deux blocs se situant sur les cotés du fizzler devront faire 32x8, et 128 d'hauteur. Faite attention à ce que le fizzler touche correctement les deux blocs, comme montrez dans l'image ci-contre. N'oubliez pas de mettre en func_detail les 2 blocs sur les cotés. Il ne reste plus qu'à créer un troisième bloc à l’arrière. Dans le cas ou un mur est déjà présent, il n'est pas nécessaire de créer ce bloc.

Pour ce qui est des textures, toutes doit être en nodraw, sauf celle de l'intérieur en tools/toolsblack_noportal, et celle de l'avant avec la texture des murs adjacents.

Etape 3

Créez un bloc en 'nodraw' texture, avec un largeur de 1 seule unité et 128 d'hauteur, reliant chaque centre du fizzler. Cela fera office de grille d'émancipation. Assignez au bloc l'entité (en appuyant Ctrl+T) trigger_portal_clenser. Rendez le visible en modifiant "Visibile?" à yes.

Note.pngNote:You might try and place it exactly in the center of the model but the model's center is 2 units thick

Fait attention à bien cocher dans les Flags "Physics Objects" pour pouvoir ainsi empêcher les objets de passer.

Etape 4

Ouvrez le Texture Application tool et sélectionnez uniquement' l'avant et l'arrière du fizzler, c'est à dire les parties voyantes. Cliquez sur "Browse", filtrer "fizzler", puis sélectionnez "effects/fizzler" et changez l’échelle de la texture à 0.13 sur l'axe X et Y. Puis cliquez sur "Apply".


Vous pouvez maintenant être fier de votre premier fizzler qui fonctionne !


Création d'un fizzler dynamique

1. Créez une entité prop_dynamic, avec les paramètres suivants :

Property Name Value
World Model models/anim_wp/room_transform/arm64x64_interior.mdl
Name panel1
HoldAnimation true
Collision Not Solid

2. Créez un bloc func_brush de dimension 256Lx256Wx32H sur le model. Paramétrez le comme ceci :

Property Name Value
Name panel1_brush
Parent panel1
Ici l'animation "makeramp_06open" qui permet de soulever à 90 degrés un panneau.

3. Créez une entité logic_auto avec les Outputs suivants :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn panel1_brush SetParentAttachmentMaintainOffset panel_attach 0.10 Yes(?)


A présent grâce à cet attachement, le panneau peut suivre l'animation du modèle, selon la pose désirée.


4. Créez une entité logic_relay, avec les paramètres suivants :

Property Name Value
Name relay_panel1_animation

et les Outputs suivants :

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger panel1 SetAnimation (Nom de l'animation) 0.00 Yes(?)


Les noms d'animations sont disponibles dans le Model Browser dans la catégorie "Sequences" du model.

Grille plus larges

Notez l'effet lumineux à chaque extrémités des fizzlers.

Parfois une grille d’émancipation est forcée de faire plus que seulement 128 unités de longueur, mais doit obligatoirement avoir 128 d'hauteur. Dans la mesure où une grille d'émancipation doit être plus haute, faites un simple copié collé de la première. (en maintenant enfoncé Tab et en glissant l'objet sur la grille de l'axe désiré).

Pour faire une grille d'émancipation plus large, il va falloir la couper en trois. Utilisez le clipping tool (Ctrl+X) sur les cotés les plus proches des models, et fait attention à ce que les blocs soient seulement coupés et non-supprimés. (Lorsque la partie est juste à couper, les arêtes des blocs dans la vue 2D sont blanches). Ces deux parties doivent faire 128 unités de long. Remplacez sur le bloc du milieu, les 2 textures de l'avant et de l'arrière avec la texture "effects/fizzler_center. Pour les blocs sur les cotés, mettez sur celle de gauche la texture "effects/fizzler_l" et pour celle de droite "effects/fizzler_r".

Note.pngNote:La différence entre la texture "effects/fizzler_l" et "effects/fizzler_r" vient du faite qu'il y a des différences entre chaque coté aux extrémités du fizzler.

Liens Externes