|
Interactions Classiques - Mover en Boucle/d'Ambiance
|
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 et l'ai converti en Interpactor.
Je l'ai ensuite allongé dans sa hauteur et réduit
sa largueur en X et en Y, puis je l'ai dupliqué. Le pivot
est au centre et je vais uniquement l'animer de haut en bas,
ou d'un côté à l'autre. Quelque chose qui
tournerai sur une charnière, nécessite un pivot
sur un côté et il faudra également prévoir
où le joueur se trouvera pour qu'il n'y ait pas de gène.
*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.
Effet de Boucle / d'Ambiance: Il y a beaucoup
de solutions disponibles. Que souhaitez vous faire exactement
? Il est impératif de bien savoir où l'on veut
aller avant de commencer. Nous allons voir beaucoup de choses
différentes, et la plupart du temps, tout peut être
combiné ou interverti pour créer des effets variés
et intéressants.
Des pistons qui montent et descendent de manière
uniforme:
Utilisons notre "recette de cuisine" que j'ai présenté
dans
l'Introduction
de cette série de tutoriaux pour créer cela:
*Note: Ce système en boucle est également disponible
sur le site de Tutoriaux
de Hourences. Si vous le connaissez déjà,
vous pouvez passer directement au système suivant.
1) Que souhaitons-nous faire?: une machine qui pompe, dans le
décor, avec de la vapeur et des bruits.
2) Rassemblons nos éléments:
2 Movers
2 Matinees
2 Emitters
4 PlaySound
Actions
LevelStartUp
Event
3) Mélangeons le tout. Dans la map, j'ai ajouté
deux murs avec un trou au milieu. J'ai créé deux
movers longs et fins et ajouté deux emitters, un juste
en haut d'un mover et l'autre en bas.
|
|
Du côté de Kismet, je vais commencer par ajouter
un event LevelStartUp pour pouvoir déclencher ma séquence
dès que la map est chargée. Suivant l'éditeur,
vous pourriez avoir besoin d'autres Event de lancement, ou dans
le cas de chargement de sous niveaux, d'un LevelLoaded ou d'un
Visible Event. Ensuite je vais ajouter mes deux Matinees : une
pour le premier piston qui commence du bas, monte et redescend
et une autre pour celui qui commence en haut, descend puis remonte.
Dans le mover group, je règle les mouvements sur 'RelativeToInitial'
pour le cas où je souhaiterais déplacer mes movers
tout en gardant leurs mouvements relatifs. Je règle aussi
les Matinees sur Rewind On Play. Ensuite je place mes clés
de mouvement, avec simplement deux clés, une pour le
point de départ et une autre pour le point d'arrivée.
Pour faire tourner le système en boucle, lorsque la Matinee
est finie, je lui dis de repartir en sens inverse comme montré
sur l'image ci-dessous. Lorsque le retour est terminé,
la Matinee est revenue à son temps 0 et puisqu'il ne
s'agit pas du temps final mais que la Matinee doit s'arrêter,
elle considère que le mouvement a été interrompu
(Aborted). Donc j'utilise la sortie Aborted et la connecte à
Play pour faire tourner le système en boucle. Puis j'ajoute
deux sorties à mes Matinee pour contrôler les sons
et les emitters. J'ajoute deux Toggles pour allumer les emitters
et des Play Sound pour les deux pistons qui montent et descendent.
Dans l'image, j'utilise PSound02 pour le son de l'emitter et
Psound01 pour le son des pistons. N'oubliez de désactiver
les emitters par défaut (dans les propriétés
de l'emitter / Emitter / ParticleSystemComponent, décochez
'AutoActivate').
|
|
4) Testons le. Lancer le jeu et testez le, cela marche bien
pour moi.
5) Ajustons le. D'abord, pensez aux collisions et à l'éclairage
et corrigez ces problèmes. Ensuite, envisagez tous les
problèmes possibles relatifs à des interactions
avec les joueurs ou les armes. Puisque je souhaite que ce soit
un effet de décor, je placerais uniquement un blocking
volume autours pour empêcher les joueurs de le toucher.
Maintenant que les bases sont posées, vous pouvez vous
lâcher et rajouter des lumières, d'autres emitters,
des temps morts, presque n'importe quoi.
6) Ajustements pour les modes solo/multi-joueur. Comme vous
l'avez peut-être lu dans la section Mode
Solo/Co-op/Multi-joueur, il y a beaucoup de considérations
à prendre en compte quelque soit le mode choisit. Ce
système tel qu'il est là devrait être OK,
et pour le mode solo, et pour le mode multi-joueur.
Maintenant, supposons que vous souhaitiez avoir le même
système mais que vous vouliez que le mouvement des pistons
soit différent entre l'aller et le retour. Avec le système
actuel, nous ne pouvons pas faire ça car le retour dans
la Matinee est juste l'aller joué à l'envers.
Nous devons donc configurer la Matinee un peu différemment
et la mettre en boucle pour arriver à nos fins.
Des pistons qui montent et descendent irrégulièrement:
Utilisons notre "recette de cuisine" que j'ai présenté
dans l'introduction
de cette série de tutoriaux pour créer cela:
1) Que souhaitons-nous faire ? : une machine qui pompe, dans
le décor, avec de la vapeur et des bruits.
2) Rassemblons nos éléments. Nous avons besoin
de deux movers, deux Matinee pour contrôler les movers,
deux emitters et d'au moins deux sons (j'en ai choisit quatre).
3) Mélangeons le tout. Dans le niveau, j'ai ajouté
deux murs avec un trou au milieu. J'ai créé deux
movers longs et fins et ajouté deux emitters, un juste
en haut d'un mover et l'autre en bas.
|
|
Du côté de Kismet, je vais commencer par ajouter
un event LevelStartUp pour pouvoir déclencher ma séquence
dès que la map est chargée. Suivant l'éditeur,
vous pourriez avoir besoin d'autres Event de lancement, ou dans
le cas de chargement de sous niveaux, d'un LevelLoaded ou d'un
Visible Event. Puis je vais ajouter mes deux Matinees : une
pour le premier piston qui commence du bas, monte et redescend
et une autre pour celui qui commence en haut, descend puis remonte.
Dans le mover group, je règle les mouvements sur 'RelativeToInitial'
pour le cas où je souhaiterais déplacer mes movers
tout en gardant leurs mouvements relatifs. Je règle aussi
les Matinees sur Rewind On Play. J'ajoute les Toggles pour activer
les emitters, et je met mes Play Sounds pour les sons des pistons
qui montent et qui descendent. Dans l'image, j'utilise PSound02
pour le son de l'emitter et Psound01 pour le son des pistons.
N'oubliez de désactiver les emitters par défaut
(dans les propriétés de l'emitter / Emitter /
ParticleSystemComponent, décochez 'AutoActivate'). Ensuite
dans mes Matinees, je vais créer le mouvement complet
d'aller et retour avec plusieurs clés. Dans ce cas, la
position du mover de la dernière clé doit correspondre
exactement à la position du mover de la première
clé. Une fois mon mouvement créé, j'active
RewindOnPlay et Looping dans les propriétés de
la Matinee. Maintenant, mes Matinees vont tourner en boucle
avec des comportements différents entre l'aller et le
retour et je n'ai plus besoin de connecter Reverse à
Aborted.
|
|
4) Testons le. Lancer le jeu et testez le, cela marche bien
pour moi.
5) Ajustons le. D'abord, pensez aux collisions et à l'éclairage
et corrigez ces problèmes. Ensuite, envisagez tous les
problèmes possibles relatifs à des interactions
avec les joueurs ou les armes. Puisque je souhaite que ce soit
un effet de décor, je placerais uniquement un blocking
volume autours pour empêcher les joueurs de le toucher.
Maintenant que les bases sont posées, vous pouvez vous
lâcher et rajouter des lumières, d'autres emitters,
des temps morts, presque n'importe quoi.
6) Ajustements pour les modes solo/multi-joueur. Comme vous
l'avez peut-être lu dans la section Mode
Solo/Co-op/Multi-joueur, il y a beaucoup de considérations
à prendre en compte quelque soit le mode choisit. Ce
système tel qu'il est là devrait être OK,
et pour le mode solo, et pour le mode multi-joueur.
|
|
|
|
|
|