Dernière mise à jour : 28/10/2019 à 13h35

Current Project : Who knows?

Index des tutoriaux

Eteindre/allumer les lumières

Introduction

Comme vous le savez certainement, le défaut majeur des lumières d'UT2003/2004/Unreal 2, c'est que les lumières sont désormais fixes. Ce n'est pas fait uniquement pour vous compliquer la vie : dans un jeu comme Quake 3, Unreal 1 ou autre Half-Life, le nombre relativement limité de polygone permet au prix de quelques ressources système, de calculer a chaque instant l'éclairage sur chaque face de l'environnement. Mais voila, sous notre moteur favoris, la multiplication du nombre de polygones a conduit a des solutions extrêmes : non seulement l'éclairage des Static Mesh est très général et peut donner lieu a des bugs, mais en plus, les brush, afin d'éviter de recalculer les lightmaps a chaque frame, n'acceptent plus les lumières dynamiques.

En fait, ce n'est pas tout a fait ça : pour éviter de devoir recalculer les lightmap a chaque frame, les effets de lumières dynamiques ont été désactivé sur la plupart des actors de lumières, sauf UN : le Triggerlight.

Triggerlight

Le Triggerlight se trouve ici dans l'actor browser :

TriggerLight

Le Triggerlight est une lampe très spécifique. Pour vous en convaincre, soustrayez un cube de 384*1024*1024 et texturez-le, puis ajoutez-y une map normale et votre trigger light. Recompilez et observez :

TriggerLight

Comme vous le voyez, l'éclairage diffusé par le Triggerlight est plus diffus, plus lisse, plus doux. Si vous placez les deux lumières contre le sol, vous verrez que la light normale sera environnée d'un cercle de lumière forte, alors que la Triggerlight aura une lumière plus égale et plus étendue. En effet, pour ne pas détruire complètement les performances d'une carte a cause de la recompilation, les Triggerlight sont très simplifiées. Impossible par exemple d'obtenir des ombre très détaillés avec, alors que c'est possible avec une lumière statique :

Lightmap

Là, c'est particulièrement flagrant : votre map normale est calculé une seule fois, donc le moteur se casse les pieds pour la compilation, et après, il oublie. Pour la Triggerlight, comme il faut sans cesse refaire le calcul, on simplifie et donc on oublie les ombres trop compliquées. Maintenant, voyons un peu les propriétés spéciales du Triggerlight : Ce dernier a en effet un onglet supplémentaire par rapport a la light normale : l'onglet "Triggerlight" (comme c'est original).

Onglet TriggerLight

Placez votre lumière dans un coin de la pièce. Pour l'allumer, on va faire simple : vous marcherez sur un trigger, et ce dernier activera la lumière. Pour ce faire, placez un trigger dans la pièce et dans ses propriétés, onglet "Advanced", mettez bHidden a "faux" : ainsi, le trigger sera visible dans le jeu. Dans les propriétés de la lampe (que vous pouvez modifier comme une lampe normale pour tout ce qui est couleur et puissance), allez dans Object, et changez Initialstate à TriggerToggle. Ainsi, la lampe changera d'état dès que vous passerez sur le trigger. Dans l'onglet "Triggerlight", changez Changetime a 0.25, "bInitiallyOn" a faux et laissez "bDellayFullOn" a faux. Pour finir, dans l'event du trigger, mettez "Lux" (sans guillemet), et faites la même chose dans le tag du Triggerlight.

Ajoutez un playerstart, rebuildez et testez :

Eteint Allumé

Comme vous voyez, ca marche ! vous pouvez changer cela comme vous le voulez, en mettant par exemple des Light Type dans la lumière, changer la couleur, le rayon, la direction si vous en faites un spotlight, le faire commander par un UseTrigger si vous voulez, bref, les possibilités sont multiples a partir de cet exemple. Juste quelques précisions :

Tout d'abord, la propriété InitialState des TriggerLight. Elle possède plusieurs sortes que voici :

Un autre point important est que quand vous recompilerez vos lumières, dans l'éditeur, les Triggerlight auront toujours l'air d'être allumé, mais dans le jeu, ne vous inquiétez pas, c'est bien votre choix dans bInitiallyOn qui est déterminant. Rappelez-vous que les lumières dynamiques consomment beaucoup de ressources si vous en utilisez trop. De plus, elles possèdent un défaut majeur qui devrait de toute façon limiter leur emploi :

TriggerLight

On ne dirait pas sur cette image, mais les deux pièces sont complètement séparées, il n'y a qu'une trigger light dans la pièce de gauche, et j'ai effectivement rebuildé. Les Triggerlight émettent a travers les murs. C'est d'ailleurs pour cela qu'elles ne projettent pas d'ombre. Faites donc bien attention a leur emploi, n'utilisez que de faibles rayons pour de petites zones, ou alors concevez votre map de manière a ce que ca ne soit pas un problème.

2005-2022, by Hellkeeper.

Valid XHTML 1.1 CSS 2.1