Nous sommes le 16 Sep 2019, 18:15

Heures au format UTC + 2 heures




Poster un nouveau sujet Répondre au sujet  [ 246 messages ]  Aller à la page Précédente  1 ... 13, 14, 15, 16, 17
Auteur Message
 Sujet du message: Re: Éditer des scripts
MessagePosté: 04 Sep 2013, 21:43 
Hors ligne
Son Excellence
Avatar de l’utilisateur

Inscription: 22 Aoû 2004, 23:09
Messages: 12259
Localisation: France
Pour coller une armature correctement à une autre, comme la main, c'est drôlement bordélique avec les outils qu'on a. Pour ma part, je mélange ZModeler et un éditeur hexa car j'utilise la main seule, un objet prévu pour (que j'ai fait) j'importe l'objet que je veux coller et je l'oriente en fonction de la main puis j'exporte le tout pour récupérer les coordonnées relatives.

En gros, c'est très complexe quand on est pas habitué à décrypter des fichiers ni à la structure des 4DS.


Sinon, pour faire apparaître ou disparaître un objet, comme pour faire croire qu'il sort ou entre dans la poche, on utilise la même technique que pour les armes, on l'éteint ou on l'allume quand il s'approche de la poche avec Frm_SetOn.


Quant à ton script, y a pas de raison d'avoir les accolades.


Mais en parlant d'accolades, c'est une bonne idée que de prévoir que, à la mort du personnage, celui-ci perde l'objet des mains avec la commande Create_PhysicalObject ou un truc du genre (de souvenir).

J'ai pas mes notes sous la main mais je vais voir à donner plus de précisions quand j'aurais plus de temps pour ça, si t'es patient...

_________________
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯


Haut
 Profil  
 
 Sujet du message: Re: Éditer des scripts
MessagePosté: 04 Sep 2013, 22:41 
Hors ligne
Scripteur
Avatar de l’utilisateur

Inscription: 23 Aoû 2007, 21:54
Messages: 1534
Localisation: Belgique, Bruxelles
Détrompe-toi, Condor. Depuis l'arrivée de Mafia World Editor (cherchez sur Google, il doit bien rester un site actif où le télécharger), c'est franchement facile. Je l'utilisais justement pour ça et pour supprimer des collisions. Par contre il ne permet pas de modifier les scripts donc il faut ouvrir le Scene2.bin avec cet éditeur, y rajouter les armatures qu'on veut, puis le fermer et le réouvrir avec un éditeur de scripts. Moi j'utilise SCn2 Tractor de zibob32, difficilement trouvable depuis la disparition de certains sites russes (j'ai pu le trouver dans Google sur ce qui semble être le successeur du site russe « Palermo Club » mais à télécharger à vos risques et périls). Très utile pour supprimer en masse des plaquils, des armatures et des acteurs.

catala a écrit:
Q1. Comment fait on marcher la commande emit_particle au niveau de la bouche d'un mec ?
Q2. Comment scripter un mec qui ouvre son paquet, va fumer, puis fume pendant 2 minutes, écrase sa clope, attend 3 minutes et reprend son paquet, et surtout comment faire apparaître ledit paquet de clope quand celui ci le sort ?
Q3. Peut-on faire apparaître des personnages comme ça, d'un coup ?

Je vais répondre à ces questions par un script général. J'espère que tu pourras le comprendre (du moins son principe) en lisant les commentaires. Personnellement, j'ai appris ce que je sais des scripts comme ça, principalement avec les exemples de Condor. S'il y a un soucis, n'hésite pas à demander.

Le script ne fera pas exactement ce que tu veux (à toi de chercher les animations). Il contient aussi des notions qui pourront te servir par la suite (événements, par exemple) et que j'utilise ici pour faire un petit rappel des notions de script.

Quand on manipule des acteurs humains (des ennemis, par exemple) dans Mafia, il est pratique et souvent nécessaire d'utiliser deux scripts :
  • Le script de l'acteur humain qui contiendra les actions que cet acteur devra effectuer. Ces actions seront disposées en blocs de lignes entre lesquels tu sauteras pour que l'acteur réalise une séquence d'actions.
  • Un script de contrôle (« Other » dans BScriptView) depuis lequel tu guideras le passage d'un bloc à l'autre dans le script de l'humain.

Voir les scripts détaillés ci-après. Ce que tu dois chercher dedans pour répondre à tes questions :
    Q1. C'est du cou que doit sortir la fumée.
    Q2. Pour faire apparaître et disparaître une armature (le paquet, la cigarette), c'est avec la commande Frm_SetOn.
    Q3. Si tu utilises les scripts ci-dessous et que tu places l'armature de l'acteur humain aux coordonnées voulues, il sera activé puis rendu visible (il « apparaîtra » à ces coordonnées).

Code:
// Script de l'acteur humain « Ennemi » :

// L'ennemi est aveugle (il ne voit pas ses ennemis et ne les attaque donc pas).
Enemy_Vidim 0

Dim_Act 1

// Déclaration de l'acteur courant (« Ennemi »).
FindActor 0

Dim_Frm 2

// Déclaration du cou de l'armature (modèle) de l'acteur « Ennemi ».
FindFrame 0, "Ennemi.Neck"
// Déclaration de l'armature de la cigarette à placer dans la main de « Ennemi ». Dans Mafia World Editor, après avoir créé l'armature, tu dois changer certains paramètres :
// - Armature-mère (« Parent ») : Ennemi.r_hand
// - Position 1 (x ; y ; z) : 0.057577 ; -0.052022 ; 0.055207 (c'est la position par rapport au centre de l'armature-mère).
// - Rotation (x ; y ; z) : -105.449585 ; -124.73806 ; 54.173775
// - Position 2 : la même que la position 1 de l'armature « Ennemi ».
// - Modèle : 2cigaro.i3d
FindFrame 1, "Cigarette"

Dim_Flt 1


// L'armature de l'acteur courant (« Ennemi ») est invisible (donc tu ne vois pas l'ennemi dans le jeu).
Frm_SetOn -1, 0
// Désactivation de l'acteur courant (à activer depuis le script de contrôle).
Act_SetState -1, Inactive
// Après activation, l'armature de l'acteur courant (« Ennemi ») devient visible.
Frm_SetOn -1, 1


// L'ennemi s'en fume une. La seule façon de sortir des accolades (qui contient une boucle infinie) est d'utiliser un événement (voir plus bas) qui brise les accolades ("Down" indique de continuer le script en-dessous des accolades).
{ Down
Label BFAFumante
Enemy_PlayAnim "KurakLoop.i3d"
Wait 5000
Enemy_PlayAnim "KurakPotahnuti.i3d", 0
Let Flt[0] = Flt[0] - 83
Wait Flt[0]
// La fumée sort de la bouche (enfin... elle part du cou).
EmitParticle 0, 25
GoTo BFAFumante
}

// La cigarette disparait (il suffit de rendre son armature invisible).
Frm_SetOn 1, 0
Enemy_StopAnim
// À la sortie des accolades, l'ennemi devient agressif (il voit ses ennemis).
Enemy_Vidim 1

// Boucle fermée d'attente (infinie). C'est la fin du script et ça évite de lire l'événement plus bas.
Label BFA
Wait 86400000
GoTo BFA

// Événement permettant de sortir des accolades. Il est enclenché depuis le script de contrôle. Au passage on efface la mémoire de l'acteur courant et on le force à suivre les nouvelles instructions qu'on lui donne dans la suite du script. C'est utile quand l'ennemi passe d'une action à l'autre, par exemple d'un état agressif (Enemy_Vidim 1) à neutre (Enemy_Vidim 0). Sans ça, l'acteur reste parfois bloqué dans son ancienne action.
Event 1
Enemy_BrainWash
Enemy_ActionsClear
Enemy_ForceScript 0
Event_Use_CB 1
Return

Code:
// Script de contrôle :

Dim_Act 1

FindActor 0, "Ennemi"


// Active l'ennemi et le rend visible (voir le script de l'ennemi pour ce dernier point).
Act_SetState 0, Active

// Arrête de fumer et devient agressif.
SetEvent 0, 1, -1


catala a écrit:
Comment lier proprement à un perso un objet [...] ?

Il te faut deux armatures identiques de la trompette : une dans la main de l'acteur humain (comme avec la cigarette ci-dessus) et une dans l'environnement (armature-mère : Primary sector ; aux coordonnées que tu choisis). Puis tu dois jouer avec les animations et la commande Frm_SetOn pour faire disparaître l'armature de l'environnement et faire apparaître celle dans la main au moment où le personnage empoigne la trompette dans l'animation.

catala a écrit:
Peut-on les faire se battre entre eux ?

Pour que deux ennemis se battent entre eux, ils doivent avoir des IA différentes, ce que tu ne peux pas modifier avec BSV (enfin si mais c'est pas pratique). DC||ED le fait mais il n'est pas stable, tu risques de corrompre tes fichiers Scene2.bin. Avec SCn2 Tractor, tu peux modifier les « Settings » d'un acteur humain (onglet dans le fenêtre des scripts).

Une IA (ou comportement) de 16 est un ennemi classique. Il se bat contre le joueur et tes partenaires (Paulie, Sam, etc.) avec une IA de 2. Donc dans ce cas, tu as d'un côté des ennemis, de l'autre des amis. Si tu veux des ennemis des deux côtés, alors c'est 16 et 32 (justiciers). Le problème c'est qu'ils attaquent en priorité le joueur avant de s'entretuer (sauf si le joueur ne dégaine pas d'arme et reste pacifique). Pour plus de détails,voir le tableau de Condor.

Condor a écrit:
Mais en parlant d'accolades, c'est une bonne idée que de prévoir que, à la mort du personnage, celui-ci perde l'objet des mains avec la commande Create_PhysicalObject ou un truc du genre (de souvenir).

Si l'objet a comme armature-mère la main du personnage (ou n'importe quelle partie du corps), alors un objet dynamique est créé automatiquement lors de la mort du type.


Haut
 Profil  
 
 Sujet du message: Re: Éditer des scripts
MessagePosté: 05 Sep 2013, 21:12 
Hors ligne
Scripteur
Avatar de l’utilisateur

Inscription: 23 Aoû 2007, 21:54
Messages: 1534
Localisation: Belgique, Bruxelles
Ben tiens, je découvre une nouvelle version de Mafia Word Editor avec possibilité de créer des plaquils. Je vais tester ça. À télécharger sur cette page (pour catala, je recommande la version 0.2.9, pour Condor, la version avec gestion des plaquils est la 0.3.0.7). Lisez bien le « Readme » parce qu'il faut changer les paramètres de configuration avant de lancer le programme. En fait il faut ouvrir le fichier Editor.ini dans le bloc-notes (il n'est pas dans la version 0.3.0.7, donc avec cette version il faut le copier depuis une version antérieure :?) et changer le point après MafiaPath par le chemin vers votre répertoire de Mafia.

Je me suis un peu amusé. Admirez mon œuvre. :lol2: Remarquez que toutes les plaquils du sol ont été recalculées par MWE et qu'il n'y a plus de lumière au sol venant des fenêtres. Notez aussi que j'ai demandé à MWE de me calculer les plaquils des conteneurs et que l'ombre du conteneur vertical est visible sur celui horizontal en arrière-plan.


Fichiers joints:
PlaquilsMWE.jpg
PlaquilsMWE.jpg [ 110.24 Kio | Vu 381 fois ]
Haut
 Profil  
 
 Sujet du message: Re: Éditer des scripts
MessagePosté: 08 Sep 2013, 10:32 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mai 2010, 18:49
Messages: 44
Merci a vous deux, sympa :)

Je vais voir ca Arès :) peut être au fait as-tu le fichier ok.chm de mémoire je crois, qui recense exactement le nom de tout les persos du jeux ? Car celui de Condor ne m'offre ( que ) les modeles 3d d'objet, bâtiments, mais pas ceux des persos.

_________________
usap.top-forum.net


Haut
 Profil  
 
 Sujet du message: Re: Éditer des scripts
MessagePosté: 09 Sep 2013, 11:36 
Hors ligne
Scripteur
Avatar de l’utilisateur

Inscription: 23 Aoû 2007, 21:54
Messages: 1534
Localisation: Belgique, Bruxelles
Tu peux le trouver ici (sous le nom « Databáze modelů postav »).


Haut
 Profil  
 
 Sujet du message: Re: Éditer des scripts
MessagePosté: 10 Sep 2013, 21:53 
Hors ligne
Avatar de l’utilisateur

Inscription: 31 Mai 2010, 18:49
Messages: 44
Très sympa de ta part Arès, merci :)

_________________
usap.top-forum.net


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 246 messages ]  Aller à la page Précédente  1 ... 13, 14, 15, 16, 17

Heures au format UTC + 2 heures


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traduction par: phpBB-fr.com