Skip to main content
Les PNJ ambiants sont des personnages dynamiques que Humalike met lui-même dans la rue : lorsque des joueurs se rassemblent, la ressource fait apparaître à proximité, hors de vue, un piéton réseau du modèle du personnage, et Humalike y maintient le personnage tant que des joueurs sont dans les parages.

Cycle de vie

  1. Le planificateur regroupe les joueurs proches et décide quels personnages doivent avoir un corps autour de chaque groupe, et où.
  2. La ressource fait apparaître le piéton à un endroit sûr et hors de vue, puis le lie.
  3. Humalike suit le personnage tant que ce ped existe et abandonne la liaison lorsque le jeu le supprime (un corps disparu est libéré, jamais un bail périmé).
  4. Une fois qu’aucun joueur n’a été près du corps pendant le délai de disparition, il est supprimé ; le personnage reçoit un nouveau corps la prochaine fois que des joueurs sont dans les parages.
L’identité et la mémoire du personnage sont stables ; un handle d’entité GTA ne l’est pas. Votre intégration doit se référer à l’identifiant de PNJ Humalike chaque fois qu’elle stocke un état de personnage.

Configurer la population ambiante

Ouvrez un serveur dans le tableau de bord et utilisez ses paramètres PNJ ambiants pour activer le système et régler les limites. La politique du tableau de bord fait autorité pour le nombre de personnages ambiants et de corps actifs.

Modèles

Le modèle de ped d’un personnage est le corps dans lequel il apparaît, et c’est le personnage qui le décide. Tous les modèles de ped GTA sont disponibles — les quelque 500 piétons ambiants, de service, de gang et uniques, pas seulement ceux que le jeu fait circuler de lui-même. Chaque membre d’un monde porte un à trois tags d’apparence qui décrivent sa façon de s’habiller — wealthy, office, street, beach, homeless, un tag worker: pour un uniforme (worker:pilot, worker:mechanic) ou un tag gang: pour les couleurs d’un gang de rue (gang:ballas, gang:lost_mc). La proposition les choisit d’après le rôle ; vous pouvez les modifier sur la proposition avant la génération, et ensuite via une demande de modification (“mettre l’agent Diaz en uniforme du LSPD”), ce qui rechoisit le corps. Un tag d’uniforme ou de gang est exclusif, et de nombreux uniformes n’existent que pour un seul sexe dans GTA — la liste de choix indique lesquels (worker:paramedic hommes uniquement, worker:nurse femmes uniquement) ; un tag que le sexe du membre ne peut pas porter est refusé sur la proposition et ignoré par le générateur. Le corps est tiré uniformément parmi les modèles du catalogue du sexe du membre qui portent l’un de ses tags (tranche d’âge la plus proche d’abord), de sorte qu’un pilote porte l’uniforme de pilote et un membre des Ballas le violet — rien n’est interdit, et un membre dont les tags ne correspondent à aucun corps reçoit un corps de civil ordinaire. Les membres d’un même groupe reçoivent des corps distincts tant que le catalogue en a ; la tenue suit les mêmes tags sur les modèles photographiés jusqu’ici, et le tirage de tenue du jeu habille le reste. La zone d’origine du groupe décide de l’endroit où un personnage préfère apparaître, pas de son apparence. Pour un personnage ambiant créé à la main, donnez-lui n’importe quel modèle dont dispose le serveur.

Fonctionnement

Il n’y a rien à choisir. Tant que les PNJ ambiants sont activés, Humalike possède la rue : il fait apparaître des corps pour vos personnages dynamiques près des groupes de joueurs (un piéton du modèle du personnage, dans le rayon d’apparition, hors de vue, de préférence dans la zone d’origine du personnage) et remplit le reste de la rue avec des figurants — des piétons sans persona tirés de tous les modèles de civils ordinaires du catalogue, quelle que soit la zone, jusqu’à Figurants par cluster autour de chaque groupe et Limite de figurants pour tout le serveur. Les clients désactivent entre-temps la population à pied propre à GTA (les véhicules, le trafic et les voitures garées sont intacts ; la police aléatoire reste active lorsque la convar humalike_population_cops vaut true — voir Configuration). Tout ce qui s’applique à un personnage ambiant — tenue, libellés, voix, actions, blessures — s’applique à son corps. Les figurants ne parlent jamais et ne se lient jamais ; réglez les figurants par cluster sur 0 pour ne fonctionner qu’avec des personnages. Désactivé signifie aucun personnage dynamique et la foule de GTA telle qu’elle a toujours été. Un corps est libéré une fois qu’aucun joueur de son routing bucket n’a été à moins de la distance de disparition du corps pendant le délai de disparition du corps (la distance de disparition doit être au moins égale à la distance d’apparition, sinon les corps seraient libérés dès leur arrivée) ; la ressource le supprime alors. Les corps blessés ou retenus sont conservés jusqu’à ce qu’ils soient de nouveau libres. Les corps de personnages comptent dans la limite de la carte et la limite par cellule ; les figurants ne comptent que dans leur propre limite. Par cellule fait deux choses avec un seul nombre : il plafonne les corps que Humalike détient dans une même cellule de la grille (de Mètres par cellule de côté) et, pondéré par la fréquentation piétonne de la zone, il détermine combien de personnages un groupe de joueurs rencontre à la fois autour de lui. Le budget est partagé pour que personne n’obtienne une foule pendant qu’un autre a une rue vide. Les personnages sont placés en premier. La limite de figurants est ensuite répartie entre les groupes de joueurs selon leur effectif — les joueurs qui se tiennent ensemble partagent une même allocation, et un groupe plus grand obtient une part plus grande — et chaque groupe est plafonné par Corps par périmètre de joueur, le maximum de corps Humalike autorisés autour d’un même joueur. Les nouveaux corps arrivent à raison de Apparitions par tick par groupe, répartis autour du groupe plutôt qu’en un seul point, de sorte qu’une foule arrive au compte-gouttes plutôt que d’un coup. L’endroit où se tient le groupe compte autant que les réglages. Chaque zone porte une densité de fréquentation piétonne de 0 à 1 selon son caractère révisé, et les plafonds par groupe s’y adaptent : un trottoir du centre-ville, un front de mer ou une place civique obtient la totalité de la limite par cellule et des figurants par cluster ; une petite ville la moitié ; une route désertique ou une zone industrielle un rare passant ; une chaîne de montagnes, une forêt ou la haute mer personne du tout. Toute zone avec de la fréquentation piétonne garde de la place pour un personnage, de sorte qu’un persona domicilié à Paleto Bay peut toujours y être rencontré. Les personnages générés à partir d’un monde portent la zone d’origine de leur groupe et apparaissent donc là où ils vivent — un quartier de prédilection, pas une épingle : un personnage est planifié d’abord dans sa zone d’origine, et ailleurs lorsque les joueurs n’y sont pas. Un personnage créé à la main n’a pas de zone d’origine et peut apparaître n’importe où ; les appels create_npc / update_npc de l’API acceptent un home_zone (un code de zone GTA tel que DAVIS) pour lui en donner une — le tableau de bord ne la définit que via les groupes d’un monde.

Conducteurs

Certains personnages arrivent par la route : de temps en temps, un personnage dynamique apparaît au volant d’une voiture — ou sur une moto, pour un look de motard — et circule comme le reste du trafic au lieu de marcher. Ce qu’ils conduisent suit l’apparence de leur modèle (un gang roule dans son propre genre de véhicule, l’argent conduit quelque chose de cher, tous les autres une berline ordinaire) ; les figurants ne conduisent jamais. Un conducteur est un corps ordinaire soumis aux mêmes limites, au même rythme d’apparition et aux mêmes règles de libération que les autres, et lui parler le fait se garer et rester jusqu’à ce que vous ayez terminé. Les conducteurs sont activés par défaut et se désactivent avec la convar humalike_npc_vehicles (voir Configuration) ; désactivés, chaque personnage apparaît à pied comme avant.

Réglage des performances

N’augmentez pas le rythme d’apparition ni le plafond par périmètre uniquement pour qu’une rue se remplisse une fraction de seconde plus tôt. Plus de corps signifie plus d’entités réseau pour chaque client à portée. Si vous avez mesuré un problème, les paramètres avancés concernés sont documentés dans Configuration. Modifiez une valeur à la fois et comparez humalike_status et les performances du serveur avant et après.

Comportement courant

  • Qu’un PNJ ambiant disparaisse une fois les joueurs partis est attendu.
  • Son prochain corps peut avoir un identifiant réseau différent.
  • Différents clients observent toujours la même entité réseau tant qu’elle existe.
  • Avec les PNJ ambiants désactivés, Humalike ne touche pas à la population propre de GTA.
Utilisez un PNJ statique lorsque le personnage physique doit toujours revenir à un endroit précis.

Suite