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.
Les effets aléatoires peuvent aller du très simple
au très compliqué, tout dépend de ce que
vous souhaitez faire. Nous allons commencer par un système
simple et le compliquer.
1) Que souhaitons nous faire ?
Nous allons faire une zone qui déclenche un emitter aléatoire
avec un son toutes les 10 secondes quand le joueur est dans
la zone.
2) Rassemblez vos ingrédients:
des emitters
1 trigger
1 action RandomSwitch
1 event Trigger Touch
des actions Toggle
des actions PlaySound
1 Delay
3) Mélangeons le tout :
D'abord, je vais positionner le trigger au milieu de la zone
et agrandir son rayon de collision. Puisque la zone est carrée,
j'aurais pu utiliser une trigger volume, mais nous allons rester
sur un trigger. Ensuite je vais créer l'event du trigger,
mettre quelques Toggles associés à des Play Sounds
et enfin ajouter un random switch.
|
|
Du côté de Kismet, je connecte le Trigger Touch
au Random Switch. Ensuite je vais assembler chaque Toggle avec
un PlaySound et un emitter. Puis, je relie les sorties du Random
à chaque groupe que je viens de créer. Enfin,
j'ajoute le Delay à la fin et renvoie le signal dans
le Random qui relance aléatoirement un nouvel emitter.
J'ai réglé le MaxTriggerCount de l'event Touch
à 1 puisque de toute façon, nous n'avons pas créé
de moyen d'arrêter le Random quand le joueur quitte la
zone.
* Note: J'utilise des 'burst' Emitters qui s'arrêtent
donc d'eux même. Si vous avez un 'constant' emitter, vous
aurez à ajouter quelque chose pour les arrêter
après un certain temps.
|
|
4) Testons le. Lancer le jeu et testez le, cela marche bien
pour moi.
5) Ajustons le. D'abord, pensez aux collision et à l'éclairage
et régler le tout. Ici, nous avons à faire à
des emitters, donc cela n'a pas d'importance, mais si ce n'était
pas des emitters, il serait utile de se poser la question. Ensuite,
envisagez tous les problèmes possibles. Que se passe
t-il quand un joueur sort de la zone ? Rien, le système
continue. Nous avons donc besoin d'ajouter quelque chose qui
éteint le tout quand le joueur n'est plus dans la zone.
Je vais ajouter un système qui déclenchera le
tout la première fois qu'un joueur entrera, mais pas
aux entrées d'autres joueurs, et qui éteindra
le système lors du dernier Untouch (quand tous les joueurs
seront sortis).
|
|
L'event Touch a son MaxTriggerCount à 0. A chaque fois
qu'un joueur entre, le Int Counter s'incrémentera, mais
la Gate se fermera après la première entrée.
L'autre Int Counter décompte les sorties et rouvre la
gate une fois tous les joueurs sortis. Cela arrête également
le Delay et donc coupe la boucle du Random quand tous les joueurs
sont sortis.
6) Ajustements pour les modes solo/multi-joueur. Comme vous
l'avez sûrement lu dans la section Mode
Solo/Co-op/Multi-joueur, il y a beaucoup de considérations
à prendre en compte pour n'importe quel système
que vous créez. Votre système peut être
dans un premier temps OK pour un mode solo ou un mode multi-joueur.
Mais vous devriez toujours vous poser quelques questions si
vous travaillez avec des objets supplémentaires comme
des Interpactors ou n'importe quoi relatif à la géométrie.
Que se passe t-il si les joueurs restent dans le "passage"
? Souhaitez que le système réagisse uniquement
au joueur ou aussi aux PNJs / bots ? Les réponses varient
donc en fonction de ce que vous souhaitez faire.
|