*Note: I created the most of the tutorials using the Roboblitz and Gears of War editors. Based on the engine, and the version, some properties specified may be in slightly different locations than what is displayed in the screenshots.

If you need to learn how to create a basic map I would reccomend:
For UT99, UT2K3 & UT2K4: the Unreal Wiki.
For UT3: Waylon's Tutorials.



Interactions Classiques - Porte/Proximité



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.

Je vais seulement utiliser des movers/Interpactors (cela revient au même) qui sont généralement animés avec Matinee. Si vous avez besoin d'apprendre à utiliser Matinee, je vous recommande le Tutorial de Hourences comme point de départ.

J'ai ajouté un static mesh cube dans la map et l'ai converti en Interpactor. Je l'ai ensuite modifié pour qu'il ressemble à une porte. Le pivot est au centre et je vais uniquement l'animer de haut en bas ou d'un côté et de l'autre. Une porte pivotante nécessitera un point de pivot situé sur sa charnière, et vous aurez à penser où le joueur se trouvera pour qu'il ne soit pas écrasé contre un mur lors de l'ouverture de la porte.

*Note: Les points de pivot (ou d'origine) des statics meshes servent de point charnière ou de centre de rotation pour les Interpactors. Si vous avez besoin de créer une porte, ou n'importe quel autre objet mobile qui tournera, pivotera ou se balancera, vous aurez besoin de connaître son point de pivot. Il est impossible de redéfinir un point de pivot de façon permanente avec ce moteur. Si vous trouvez un static de porte qui vous plait bien pour en faire une porte pivotante mais que son pivot est en son centre, et bien vous n'avez pas de chance ! Le point de pivot est déterminé lors de la création du static dans un logiciel de 3D mais pas dans UnrealEd.

Portes Type Proximité: Ce type de porte s'ouvre lorsque le joueur entre dans la zone de collision de la porte et reste ouverte jusqu'à ce que le joueur en sorte. J'ai créé un système très simple.

Utilisons notre "recette de cuisine" que j'ai présenté dans l'Introduction de cette série de tutoriaux:

1) Que souhaitons nous faire ?
Une porte qui s'ouvre quand un joueur s'en approche et se ferme quand le joueur s'en éloigne.

2) Ingrédients:
Trigger
Event Trigger Touch
Mover (la Porte)
Matinee

3) 3) Mélangeons le tout :
Dans la map, j'ai créé deux murs et placé mon mover "porte" entre les deux. J'ai aussi ajouté un trigger au milieu de la porte et agrandi son rayon de collision.




Du côté de Kismet, j'ai utilisé le trigger pour créer l'event Trigger Touch et j'ai ajouté une Matinee. J'ai connecté le Touched au Play de la Matinee, et le Untouched au Reverse. Ensuite, j'ai animé ma Matinee pour que la porte se déplace sur le côté. A chaque fois que le Touched se déclenchera, la porte s'ouvrira, permettant au joueur de passer et lorsque le joueur quittera la zone de collision du trigger, le Untouched se déclenchera et la porte se fermera. J'ai réglé le MaxTriggerCount à 0 pour pouvoir utiliser la porte indéfiniment.




4) Testez dans le jeu, cela fonctionne bien pour moi.

5) Ajustez votre système : Pensez aux problèmes potentiels. Est-ce que le joueur peut "dépasser" l'animation et toucher la porte avant qu'elle soit complètement ouverte ? Dans l'image ci dessus, l'éclairage est un peu bizarre, donc vous aurez à régler l'éclairage, les ombres pour les lights aux alentours. La collision du mover est par défaut réglée sur 'None', est-ce OK ? Ou cela doit-il être réglé sur quelque de chose de différent ? A propos du mouvement : semble t-il naturel ou devez vous l'animer avec un peu plus de détails ? Est-ce que le joueur peut rester coincé derrière la porte ? Ou entre la porte et l'encadrement de la porte?

Voulez vous ajouter des sons ou des emitters ? Ou un changement d'éclairage lorsque la porte est ouverte ? C'est le moment pour faire ces modifications dans Kismet.

Si vous voulez ajouter des sons, nous pourrions les ajouter directement dans le mover lui-même. Ouvrez ses propriétés et allez dans Interpactor. Vous pouvez sélectionner vos sons dans le generic browser et les assigner ici. Assurez vous ensuite que leur durée est correcte (ni trop long ni trop court par rapport à ce qu'ils sont sensé exprimer). Ces champs ne devraient seulement fonctionner que pour un Mover (par contre, je n'ai pas fait plus de tests que ça).




On peut aussi ajouter des sons par le biais du système de pistes de Matinee. Ajoutez simplement un nouvel Event Track au group du Mover et ajoutez des clés aux moments désirés pour ajouter des events. Pour tous ces events, après les avoir nommé, vous aurez une sortie avec ce nom qui apparaîtra sur la Matinee. Utiliser ces sorties pour les relier à des actions 'Play Sound'. Vous aurez probablement à désigner une Target (cible). Le mover lui même devrait suffire comme target, comme montré dans l'image ci dessous. Note : j'ai caché les connecteurs inutilisés dans mes entités Kismet.




Vous pourriez également ajouter à ce système des Emitters et leurs sons associés. Dans l'image ci dessous, j'ai ajouté des Toggle pour activer deux Emitters d'étincelles différents, le tout basé sur mes Events créés précédemment. J'ai ensuite ajouter les sons des emitters d'étincelles en les ciblant sur les Emitters pour le son semble provenir des étincelles. J'ai caché les connecteurs inutilisés. Comme vous le voyez, vous pouvez ajouter une multitude d'effets au système pour l'améliorer autant que vous voulez. J'aurais également pu ajouter des Lights Toggeable, ou n'importe quoi d'autre. De même, j'aurais pu connecter les sorties 'out' des premiers Play Sound (ceux des portes) aux Toggles des Emitters. Cela n'a pas d'importance.




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. Mais regardez le bPLayerOnly dans l'image un peu plus haut, je l'ai décoché. Cela signifie que des PNJs ennemis peuvent eux aussi déclencher la porte. Est-ce que c'est ce que vous voulez ? En mode multi-joueur, que se passe t-il si deux joueurs touchent le rayon de collision ? Cela va t-il perturber l'animation ? Si un quitte la zone de collision, cela va t'il faire refermer la porte sur le deuxième joueur ? Si je devais adapter ce système au mode multi-joueur, j'ajouterais les compteurs décris dans la section Mode Solo/Co-op/Multi-joueur, de ce fait, il n'y aura pas de problèmes de joueurs restant coincés ou de système perturbé. Une fois fini, cela devrait ressembler à ca:




Après avoir fait mes réglages, j'ai cliqué droit sur mes entités et caché les connecteurs inutilisés.