Les murs

L'entité de brush

Entités

Type

Description

func_brush

Bloc

Pour faire un bloc avec des fonctionnalités spéciales

func_illusionary

Bloc

Permet de créer un bloc non-solide.

func_wall

Bloc

Ancêtre du func_detail, devenu obsolète

func_wall_toggle

Bloc

Pour faire un bloc qu'on peut afficher et masquer de façon toggle

L?entité func_brush est une nouvelle entité apparue avec le moteur Source. Elle a pour fonction de remplacer les entités func_illusionary, func_wall et func_wall_toggle, ces dernières datant de HL1, mais toujours présents sous Source.

Le func_brush possède tout un tas de propriétés, mais je ne vais vous en citer que deux, qui je pense, sont les principales :) .

  • Start Disabled :

    • Yes : le bloc ne sera pas visible par défaut

    • No : le bloc sera visible par défaut

  • Solidity : spécifie la solidité du bloc

    • Never Solid : le bloc ne sera jamais solide

    • Always Solid : le bloc sera toujours solide, et ce, même si il est masqué (via le Start Disabled)

    • Toggle : si le bloc est affiché, il est solide. S?il est masqué, il n?est pas solide. C?est la position sur laquelle je place généralement cette propriété.

Grâce à cette entité, vous pourrez, par exemple, créer un champ de force (un bête bloc avec une texture de champ de force comme effects/com_shield003a) entre deux plates-formes qui sera affiché si le joueur appuie sur un bouton.

Pour afficher ou masquer le func_brush via les outputs, vous devrez utiliser les inputs Disable et Enable. Dans le cas de mon champ de force, mon output serait (Start Disabled est renseigné avec Yes) :

Output named

Targets entities

Via this input

Parameter

Delay

OnPressed

champ_de_force

Enable

<none>

0.00

Tu parles du func_illusionary, ça servait à quoi ce truc sous HL1 ?

C?était tout simplement un bloc non-solide. Il est donc remplacé par la propriété Solidity du func_brush.

Et les func_wall et func_wall_toggle ?

Le func_wall est l?ancêtre du func_detail. Quant au func_wall_toggle, c?est un bloc que l?on peut masquer et afficher, comme le func_brush. Cela dit, le func_wall_toggle a la possibilité d?être commandé via l?input Toggle, que le func_brush ne possède par (il n?a que Disable et Enable). Rappelez-vous le tuto sur les lampes, avec l?input Toggle. Ici, c?est pareil : si le mur était masqué, il s?affiche et vice-versa. Ca peut être utile dans certains cas, mais c?est plutôt rare ;) .

Les blocs cassables

Entités

Type

Description

func_breakable

Bloc

Pour faire un bloc cassable

Quoi de plus amusant dans une map que de pouvoir tout casser ? Rien me direz-vous, et vous avez raison ^^ . C?est pour cela que je vais vous montrer comment faire un bloc cassable.

L?entité est func_breakable (breakable veut dire cassable en anglais). Voici les propriétés utiles de cette entité de barbare :

  • Explosion Damage : c?est la puissance de l?explosion si l?entité est cassée. Si vous laissez 0, il n?y aura pas d?explosion

  • Explosion Radius : c?est le rayon dans lequel l?explosion se fera ressentir

  • Performance Mode : c?est utilisé pour définir le nombre de débris que génèrera le cassage

    • Normal : la quantité de debris est normale

    • No Gibs : il n?y a aucuns debris. Le calcul pour le moteur d?affichage est donc plus simple

    • Full Gibs on All Platforms : il y a beaucoup de débris, et donc beaucoup de calculs d?affichage

  • Strength : c?est le nombre de points de vie que possède l?entité. Plus le nombre est élevé, plus le bloc est résistant. Si vous mettez 0, l?entité ne sera pas cassable avec des armes (il faudra la casser avec les outputs par exemple)

  • Material Type : très important, c?est le type de matériau dont est faite l?entité. Si vous avez fait une caisse en bois, choisissez Wood

  • Spawn On break : c?est ce qui apparaîtra une fois le bloc cassé

  • Explode Magnitude : c?est l?intensité de l?explosion

Et voici les flags disponibles :

  • Only Break On Trigger : pour seulement casser via un trigger (output)

  • Break On Touch : pour casser dès qu?on le touche

  • Break On Pressure : pour casser si une pression est exercée sur l?entité (si vous marchez dessus par exemple)

  • Break immediately on Physics : pour casser le bloc dès qu?il est pris

  • Don?t take physics damage : pour ne pas qu?il provoque de dommages s?il heurte le joueur

Les vitres

Entités

Type

Description

func_breakable_surf

Bloc

Pour faire une vitre cassable réaliste

Faire une vitre est quelque chose de très simple. En effet, il vous suffit de mettre une texture de vitre (glass, pour le filtre de l?explorateur de textures) sur la face visible. Toutes les autres faces doivent impérativement être recouvertes de nodraw, y compris la face inverse de celle texturée (l?autre côté quoi ^^ ) ! C?est tout :) .

C?est vraiment tout ?

Non. Votre vitre ne sera pas cassable. Pour la rendre cassable, convertissez-la en func_breakable, et n?oubliez pas de mettre la propriété Material Type en position Glass ;) .

Mais si vous cassez cette vitre, elle va se casser d?un coup, comme du temps d'Half-Life1. Pour donner une effet réaliste (la vitre se casse par morceaux), nous allons utiliser un func_breakable_surf.

Image utilisateur

J'ai pris le screen juste au moment ou un rebel me lançait une grenade. La déflagration fait péter les vitres, ça donne un bel effet ^^ .

Les propriétés ce cette dernière sont les même que pour un func_breakable. Strenght a juste changé de nom est et devenu Health. Il y a deux propriétés qui sont apparues :

  • Fragility : c?est la fragilité de la vitre une fois qu?elle est cassée. Si vous tirez dans la vitre, elle va se morceler. C?est la fragilité des ces morcellements que définit cette propriété

  • Surface Type : c?est le type de surface. Laissez Glass.

Il reste une chose pour améliorer notre vitre (cassable ou pas) : la réflexion. C?est ce que je vais vous expliquer maintenant :) .

Les cubemaps

Entités

Type

Description

env_cubemap

Point

Permet de créer des reflets au moyen de cubemaps

Image utilisateur

L?env_cubemap est une entité assez abstraite. Pour faire simple, elle sert à créer des reflets.

Vous devez placer cette entité au centre de toutes vos pièces. Une fois votre map compilée et lancée, vous devez tapez buildcubemap dans la console.

Image utilisateur

Le jeu va alors créer toute une série d?images, qui sont les reflets de l?environnement. Ces images sont appelées des cubemaps. Les images sont prises de l?endroit où se trouve l?env_cubemap.

Les cubemaps ne sont pas visibles partout. En effet, seule certaines textures sont réfléchissantes (quelques textures de métal, les textures d?eau et de vitres).

Si vous faites une vitre, vous devez placer un env_cubemap (en plus de celui qui est déjà dans la pièce) près de celle-ci, et faire pointer cet env_cubemap vers la vitre.

Pour cela, nous allons nous servir de sa propriété Brush faces. Cliquez sur Pick et, dans la vue 3D, allez cliquer sur la vitre (la face qui est face à l?env_cubemap). Vous pouvez aussi picker (faire pointer l'env_cubemap vers une ou plusieurs faces) plusieurs faces en maintenant la touche Ctrl enfoncée.