A1 - Création des compartiment et suite de la configuration des actions
Informations à propos de l'organisation du wiki sur la configuration des préfabs de véhicules
Le wiki à partir de cette page va être organisé en fonction d'un code simple pour vous repérer dans le niveau de difficulté et votre progression 🔧
A=Configuration de base pour un véhicule
B=Configuration pour un véhicule qui nécessite un minimum de réflexion et qui dépend de votre véhicule.
C=Configuration pour un véhicule qui est complexe et qui nécessite de la recherche personnelle et qui varie en fonction des véhicules.
D=Système complexe pour un véhicule qui n'est pas généralisé à tous les véhicules et qui n'est pas évident.
Il est important de savoir que tout est possible, mais ce système de code permet de vous donner une idée de la difficulté. La seule limite que vous avez est l'habitude ainsi que l'expérience avec le workbench et blender, on ne peut pas tout dévoiler car ENFUSION et Blender restent des logiciels complexes ✅
Tous les préfabs non commenté dans cette page ne sont pas a modifier pour l'instant (si vous suivez le fil rouge du wiki) ou simplement pas a modifier sur toute l'intégration de votre véhicule (potentiel exception a des systèmes personnalisés).
Introduction
Dans cette page, nous allons découvrir comment créer une liste de porte et de compartiment (places assises). Pour par la suite, configurer le reste d'actions qu'on a pas encore configurée.
Il faut savoir que dans l'intégration d'un véhicule, ça ne sert à rien de réinventer la roue, on vous conseil de vous baser sur les véhicules vanilla ainsi que sur les fichiers de configuration déjà existant.
Après cette page, le véhicule ne sera pas encore jouable.
SCR_BaseCompartmentManagerComponent:
Ce component va nous servir à définir une liste de compartiment et une liste de portes pour que des joueurs puissent s'installer dans votre véhicule.
A. Door Info List:
Dans ce component, on trouve deux catégories:
- Door Info List: Liste des portes disponibles.
- Compartment Slots: Liste des compartiments et des places disponibles pour votre véhicule.
Avant de créer une place dans le véhicule, il faut créer une porte, qu'elle soit réelle ou fausse.
Pour ce faire, cliquez sur le + de Door Info List et créez un "SCR_CompartmentDoorInfo":
- Anim door index: Numéro d'indentification dans le fichier d'animation qui définit le mouvement de la porte (Voir TODO).
- OpenCloseDoorAnimGraph: Non utilisé.
- ContextName: Nom de la porte dans l'éditeur (nommez la dans un nom du type door_L01, door_R02, door_back...)
- Coverage: Nombre, entre 0 et 1 qui indique a quel point la porte est exposée.
Par la suite, on va définir une suite de class qui va permettre de configurer nos portes:
Open Door Action
Cette class va nous permettre de définir l'action qui va permettre aux joueurs de pouvoir ouvrir la porte. Pour ce faire, faites set class, puis SCR_OpenVehicleDoorUserAction.
Une fois cela fait, mettez les actions de votre nouvelle porte qui vont permettre aux joueurs d'ouvrir votre porte dans "Parent Context List" en cliquant sur le +, puis en sélectionnant les actions: Door_{code de la porte} et Door_{code de la porte}_int -> Exemple: Door_L01 et Door_L01_int.
Une fois cela fait, il faut donner une liste d'informations à propos de l'apparence de l'action. Pour ce faire, faites set class sur le paramètre UI Info puis choisissez la class "SCR_ActionUIInfo". Une fois cela fait, mettez les paramètres ci dessous pour que l'action ais l'apparence d'une action pour fermer la porte.
Après avec réglé l'UI, il ne vous reste plus qu'a régler le reste des actions, comme sur la capture d'écran si dessous.
Close Door Action
Cette class va nous permettre de définir l'action qui va permettre aux joueurs de pouvoir fermer la porte. Pour ce faire, faites set class, puis SCR_CloseVehicleDoorUserAction.
Une fois cela fait, mettez les actions de votre nouvelle porte qui vont permettre aux joueurs de fermer votre porte dans "Parent Context List" en cliquant sur le +, puis en sélectionnant les actions: Door_{code de la porte} et Door_{code de la porte}_int -> Exemple: Door_L01 et Door_L01_int.
Une fois cela fait, il faut donner une liste d'informations à propos de l'apparence de l'action. Pour ce faire, faites set class sur le paramètre UI Info puis choisissez la class "SCR_ActionUIInfo". Une fois cela fait, mettez les paramètres ci dessous pour que l'action ais l'apparence d'une action pour ouvrir la porte.
Après avec réglé l'UI, il ne vous reste plus qu'a régler le reste des actions, comme sur la capture d'écran si dessous.
Entry Position Info
Ce paramètre va permettre de définir la position à partir de laquelle le joueur va lancer l'animation d'entrée dans le véhicule. Pour ce faire, cliquez sur set class puis dans Pivot ID, mettez l'os qui correspond à votre porte.
AI Entry Position Info
Ce paramètre permet d'indiquer aux IA, où elle doivent se rendre pour se téléporter dans le véhicule quand elle doivent monter. Ce paramètre s'applique que pour les trappes qui se situent dans une zone que les IA ne peuvent pas accéder sans devoir monter. Placez ce point au niveau du point ou un joueur normal ferait espace pour monter sur le véhicule.
AI Exit Position Info
Ce paramètre permet d'indiquer aux IA, où elle doivent se rendre pour descendre du véhicule depuis le toit du véhicule. Ce paramètre s'applique que pour les trappes. Placez ce point au niveau du point ou un joueur normal ferait espace pour descendre du véhicule vers le sol.
Exit Position Info
Ce paramètre va permettre de définir la position à partir de laquelle le joueur va lancer l'animation de sortie depuis sa place. Pour ce faire, cliquez sur set class puis dans Pivot ID, mettez l'os qui correspond à la place que la porte.
Si votre porte couvre la sortie de plusieurs places dans le véhicule, en général, ne faites pas set class (si vous l'avez déjà défini, faites clic doit puis restore to prefab value).
Il ne vous reste plus qu'a configurer quelques options annexes puis votre porte sera correctement configurée pour la suite:
- Get In Teleport: Si cochée, le joueur sera téléporté dans le véhicule, sans passer par aucune animation, quand il fera l'action pour entrer.
- Get Out Teleport: Si cochée, le joueur sera téléporté dans le véhicule, sans passer par aucune animation, quand il fera l'action pour sortir.
- Portal Position Info: Inconnu.
- Portal Signal Name: Inconnu.
- Align during Get Out: Si cette option est cochée, le joueur sera aligné à l'os assigné dans Exit Position Info.
- Get In Aligning Teleport: Si cette option est cochée, le joueur sera téléporté à l'os assigné dans Entry Position Info pour lancer l'animation d'entrée dans le véhicule.
- Get Out Aligning Teleport: Si cette option est cochée, le joueur sera téléporté à l'os assigné dans Exit Position Info pour lancer l'animation de sortie à l'intérieur du véhicule.
- Get In Seat Aligning On Event: Inconnu.
- Get Out Aligning On Event: Inconnu.
- Fake Door: Cochez cette option si la porte est une porte factice, donc qui n'a pas de modèle 3D comme sur les Jeep d'Arma Reforger.
- Activate Physics: Si cette option est cochée, le joueur aura une physique. Par exemple, si l'os définit dans Enter Position Info est dans le vide en jeu, quand je joueur va tenter d'entrer en faisant l'animation d'entrée, il va tomber dans le vide.
- Stance Change On Exit: Quel position le joueur va t'il avoir quand il va sortir du véhicule.
- Accessibility Settings: Inconnu.
- Door Type: Le type de porte, soit une porte normal soit une trappe soit une door factice.
Une fois toutes ces étapes faites, votre première porte est crée. Il ne vous reste plus qu'a créer les autres.
B. Compartment Slots:
Cette partie du component va nous permettre de créer une place dans le véhicule. On ici configurer le reste d'actions qu'on n'a pas encore réglé.
Place du conducteur:
Pour configurer la place conducteur, il vous suffit de déployer le slot "PilotComponent".
Default Occupant Name: Non utilisé en général. Nous vous conseillons de laisser vide.
Compartment Unique Name: Non utilisé en général. Nous vous conseillons de laisser vide.
Compartment Action -> Parent context list: Faites + à coté de Parent Context List et sélectionnez l'action qui va permettre au joueur d'accéder à la place depuis l'extérieur. PS: Ajoutez également l'action de la place que vous êtes en train de configurer, car si la porte est ouverte, les joueurs pourront monter dans le véhicule en visant vers l'action de la place. (Exemple: driver et door_L01).
Get Out Action -> Parent context list: Faites + à coté de Parent Context List et sélectionnez l'action qui va permettre au joueur de sortir du véhicule depuis sa place ("door_L01_int" par exemple).
Jump Out Action: Action qui va permettre au joueur de s'éjecter du véhicule.
Pour des raisons de gameplay et pour éviter des erreurs de clic de la part des joueurs, nous vous déconseillons d'ajouter une action dans ce paramètre pour éviter toutes éjections involontaires, ce qui peut détruire une partie de joueur ⚠️
Switch Seat Action -> Parent context list: Faites + à coté de Parent Context List et sélectionnez l'action de la place que vous êtes en train d'éditer ("driver" par exemple). Ce paramètre va définir sur quel place il faut mettre l'interaction pour pouvoir changer de siège vers la place que vous êtes en train de configurer.
Pour ce faire, on va partir d'une base, pour ce faire, dans le Ressource Browser, recherchez "CargoCompartment_Base" puis mettez le fichier de configuration dans la catégorie Compartment Slots, puis nommez votre nouvelle place assise (Exemple: passenger_r01):
Une fois cela fait, vous avez crée une place passager. Il ne vous reste plus qu'a la configurer de la même manière que celle du pilote et de créer le reste de vos passagers.




