J'ai créé une simple map de test consistant en
un peu de BSP, une skylight, un playerstart, un skydome et une
DirectionalLight.
Je vais seulement utiliser des éléments de base
de l'éditeur qui se trouvent dans les packages officiels.
J'ai ajouté un trigger dans la map. Le Touch Event ne
marche généralement pas avec des Static Mesh,
Interpactors ou Kactors. Je suppose que c'est lié au
point de pivot / origine du static qu'on ne peut pas toucher
directement lorsqu'il est situé au milieu du static.
De plus, utiliser des triggers est la solution la plus commune,
donc autant les utiliser.
*Note : Les triggers et les TriggerVolumes ont la même
fonction. On utilisera plutôt un volume qu'un simple trigger
pour deux raisons : la première est lorsque vous souhaitez
avoir une autre forme de zone collision que celle du trigger
(tube : rayon + hauteur). La seconde est lorsque, par exemple,
vous souhaitez déclencher le même Event depuis
deux endroits différents (par exemple deux portes séparées).
Si elles sont sur un même niveau, à la place de
mettre deux triggers et deux events, vous pouvez placé
un triggervolume et un event.
Réglage: sélectionnez le trigger
(ou le triggervolume) dans une vue et ouvrez kismet. Cliquer
droit n'importe où et sélectionnez 'New Event
using trigger/trigger volume' / Touch, comme dans l'image ci-dessous:
|
|
Maintenant nous avons notre event Touch. Cela activera la sortie
'Touched' quand quelque chose entrera dans la zone de collision
du trigger. Cela activera la sortie 'Untouched' quand cette
chose quittera la zone de collision. Jetons un œil à
quelques propriétés...
|
|
• bAllowDeadPawns autorisera des morts à toucher
le touch Event. Décoché par défaut.
• bLCientSideOnly déterminera si le Touch event
se déclenchera en mode online. Décoché
par défaut, cela autorise le Touch Event à se
déclencher online.
• bEnabled vous permet de contrôler s'il sera activé
par défaut, ou activé plus tard à l'aide
d'un Toggle. Coché par défaut.
• ForceOverlapping va permettre à plusieurs triggers
de se superposer et permettre de donner des priorités
à de multiples touch events basés sur ces triggers
superposés pour se déclencher tous en même
temps. La ligne Priority en dessous permet de contrôler
leur ordre.
• bPlayerOnly va contrôler si l'activation vient
seulement des joueurs ou alors de n'importe quoi dans le niveau
(par exemple des bots ou PNJs.
• bUseInstigator. Les instigators sont assez difficile
à expliquer, mais peuvent être utilisés
pour définir exactement qui ou quoi va pourvoir interagir
avec le trigger. Si vous avez un bot par exemple, avec une référence
spéciale, et que vous souhaitiez que lui seul puisse
activer ce trigger, alors vous pouvez utiliser un Instigator
attaché en bas du Touch Event, et coché cette
case pour les relier. Cela peut aussi être utilisé
pour contrôler les acteurs qui peuvent déclencher
cet Event.
• ClassProximityTypes. En cliquant dans la zone grise
et ensuite sur la petite croix verte pour ajouter une ligne,
vous pouvez préciser quelles classes d'acteurs sont autorisées
à déclencher. Les doubles parenthèses suppriment
les lignes.
• MaxTriggerCount contrôle le nombre de fois que
le trigger peut être utilisé. Rappelez vous, si
vous voulez 1 Touched et 1 Untouched, alors vous aurez à
mettre 2. 0 correspond à un nombre illimité d'utilisations.
• Priority contrôle la suite de déclenchements
lorsque vous avez des triggers superposés.
• RetriggerDelay contrôle le temps entre deux déclenchements.
Généralement, 0.1 est la valeur la plus basse
que vous voudrez utiliser, 0 pourrait être plus rapide
mais il se peut que cela fasse "spammer" Kismet et
devrait donc être évité.
Utilisations: Il y a des possibilités
presque infinies d'utilisations de trigger Touch : pour ouvrir
une porte, activer un ascenseur, allumer ou éteindre
une lumière ou un emitter, ou déterminer si un
joueur est dans ou en dehors d'une certaine zone, pour changer
de niveau, charger une autre partie de niveau, pour faire apparaître
ou détruire des ennemis, ou créer un piège.
Votre limite est votre imagination.
|