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 static mesh en forme de cube dans ma map,
l'ai converti en Interpactor et l'ai modifié pour le
rendre plutôt fin.
Qu'est-ce qu'un Prefab?
Un Prefab est un assemblage d'acteurs et/ou de Kismet qui est
sauvé dans un package et peut être reproduit dans
votre map en étant manipulé comme un seul objet.
En d'autres mots, vous pouvez créer un système
de porte, le sauver comme un tout, le dupliquer et le placer
autre part. Vous n'avez donc pas à tout recréer
chaque fois que vous souhaitez faire une porte identique autre
part.
***Les avantages:
Vous le créez une seule fois, le sauvez et pouvez l'utiliser
autant de fois que vous voulez. Permet de propager simplement
les changements faits sur un exemplaire à toutes les
autres copies.
***Les inconvénients:
Utiliser trop le même prefab peut rendre votre map visuellement
trop répétitive. Les Prefabs peuvent être
'mis à jour' n'importe quand, cependant, si vous aviez
modifié des exemplaires, ils seront également
mis à jour. Le dernier inconvénient est que vous
n'avez de 'Select All Prefabs of this Type" (vous n'avez
pas la possibilité de sélectionner tous les prefabs
du même type d'un seul coup).
Créer des Prefabs:
Pour créer un Prefab, sélectionnez les acteurs
qui feront partie de votre Prefab. Cliquez droit dessus et sélectionnez
'Create Prefab'. Si un kismet est attaché à un
des acteurs, la séquence Kismet sera elle aussi incorporée.
Dans ce cas là, votre Kismet doit être dans sa
propre sous séquence, car le Prefab prend tous les Kismet
présents dans la même sous séquence. Après
avoir créé votre Prefab, vous devez le sauvegarder.
Les Prefabs sont sauvegardés dans des packages comme
pour les textures, statics etc … vous avez donc aussi
la possibilité de les sauver dans le package de la map
elle même. Si vous avez des Kismet attachés, il
vous sera demandé si vous voulez les inclure. Enfin,
Ued vous demandera si vous souhaitez remplacer ou non les éléments
que vous aurez sélectionnés pour faire votre Prefab,
par un exemplaire de votre Prefab.
Placer des Prefabs:
Comme pour placer un static mesh, sélectionnez le Prefab
dans le Generic Browser, cliquez droit dans votre map et faites
'place Prefab here'. Vous verrez apparaître un exemplaire
accompagné d'un gros P situé au centre de pivot
du Prefab. Vous pouvez sélectionner le Prefab complet
en cliquant sur n'importe quelle partie ou en sélectionnant
le gros P. Si vous souhaitez sélectionner uniquement
une partie de votre Prefab, vous devez changer le type de sélection
de 'Whole' (tout) en 'Piece' (morceau) en cliquant sur l'icône
P dans la barre d'outil.
Modifier des Prefabs:
Si vous souhaitez faire des changements sur un Prefab que vous
avez déjà créé, sélectionnez
n'importe quel exemplaire et faites vos modifications. Une fois
fini, cliquer droit dessus et sélectionnez ' Update Prefabs
from this Instance' (mettre à jour les prefabs depuis
cet exemplaire). Cela va propager les mêmes modifications
à tous les autres exemplaires. N'oubliez pas de re-sauvegardez
la map ou le package qui contient le Prefab.
Maintenant, utilisons toutes ces connaissances pour créer
un Prefab destructible à placer dans une map.
Prefab destructible : Les destructions dans un niveau peuvent
être faites de différentes manières, mais
les deux façons les plus communes sont avec un event
dans le niveau (comme un trigger touch) ou quand l'objet reçoit
directement des dégâts (venant d'un joueur par
exemple). Je vais utiliser le dernier système de destruction
montré dans le tutorial Destruction
par Dégâts/Events comme base pour construire
notre prefab.
J'ai donc déjà le système assemblé
et prêt à être utilisé. Je me suis
également assuré que le Kismet associé
est bien isolé dans sa propre sous séquence.
1) Sélectionnez tous les objets, cliquez droit et choisissez
'create prefab'.
|
|
2) ) Indiquez où le prefab doit être sauvé.
Dans mon exemple, je l'ai sauvé dans un groupe nommé
Prefabs dans le package de la map. Ensuite, on me demande si
je veux inclure le Kismet, je réponds oui. Enfin, on
me demande si je veux remplacer les éléments sélectionnés
par un exemplaire de mon prefab et je réponds oui également.
|
|
3) Testez le et voyez si cela fonctionne correctement.
4) Sauvez le. Si vous l'avez placé dans le package de
votre map, alors sauvez votre map. Si vous l'avez mis dans un
package différent alors sauvez le package.
5) Maintenant vous pouvez sélectionner le prefab dans
le generic browser et en placer de nouveaux exemplaires. Ou
vous pouvez dupliquer celui qui est dans votre map, le déplacer
et le dupliquer encore et encore.
C'est a peu près tout. Les prefabs sont très utiles
pour éparpiller des petits systèmes simples un
peu partout dans votre map pour lui donner un peu plus de vie.
|