Pour les stars de 3DS

Répondre
Partager Rechercher
Bonjour tout le monde,

Ce message s'adresse tout particulièrement aux personnes connaissant bien 3DS et ayant déjà fait des animations avec.

Comme il n'existe pas d'animation pour coucher un PJ ou PNJ pour lui faire faire un bon dodo, on utilise l'animation de la mort, mais bon, pour un dodo, c'est un peu violent et barbare, ça me plait pas trop.
Donc je me demandais si il était possible de créer une animation avec 3DS pour se coucher doucement et le nec plus ultra serrait d'avoir en plus un petit soulèvement du personnage de façon régulière du à la respiration de celui ci.
Peut être que quelqu'un s'y est déjà collé, si c'est le cas, ou peut on trouver ce genre de chose?

Je ne sais même pas si c'est faisable et encore moins si c'est après utilisable dans NWN, mais je ne vois rien qui l'empêcherai....

J'attends vos suggestions, réaction, etc...

merci d'avance

Prophetia
Le seul moyen serait de modifier l'animation SIT_CROSS pour chaque personnage.

Il me semble pô possible d'ajouter une animation à un personnage car nous n'avons rien pour l'appeler par la suite.
L'animation DEAD_FRONT par exemple, est une constante, un nombre que le programme comprend et en déduit quelle animation il doit éxecuter.
Contrairement à la plupart des cas (comme les visualeffect ou le polymorph), les animations de nos persos ne sont pô définis dans un fichier 2DA (sauf erreur de ma part).

Donc ajouter une nouvelle animation à chaque race, c'est très possible mais nous n'aurons aucun moyen de l'utiliser où que ce soit, c'est d'ailleurs bien dommage


Comme je l'ai dit, on peut toujours modifier l'animation sit_cross mais ça nous enlève la possibilité de faire s'asseoir un perso par terre
(Quand à le faire, ben à vrai dire, c'est pô de la tarte :\)


Ben sinon j'avance pô mal avec le "dodo touch", juste histoire de...
Heum ben disons que je suis un peu bloqué. Le reste marche impec (paillasse, double-clic, feu de camp, etc...) mais le blème c'est les effets visuels et j'trouve pô le moyen de les virer si le PJ décide de faire aut'chose en plein milieu du sommeil
À défaut de pouvoir virer les effets en cour de sommeil, ben j'empêche le perso de se réveiller par sa propre volonté, c'qui est ma foi plus réaliste.

Code PHP:

void ActionSleepint nRestAnimationobject oBed OBJECT_SELFfloat fRestBonus 0.0f) {
// declarations des variables.
    
object o GetModule();
    
float fBed GetFacingoBed);
    
location lBed GetLocationoBed);

// calcul du temps de repos selon le temps configure et les bonus.
    
float fRestDuration GetRestDurationBase();
          
fRestDuration += GetCharacterLevelOBJECT_SELF) * GetRestDurationLevel();
          
fRestDuration -= fRestBonus;
//        fRestDuration -= fExtraBonus;
//        fRestDuration += fExtraMalus;
//  SendMessageToPC( OBJECT_SELF, FloatToString( fRestDuration));

    
ClearAllActions();

// déshabillage, armes, casque et vetements.
    
int i;
    if (
nRestAnimation == REST_ANIMATION_NUDE) {
        for(
0<= i++) {
            
object oItem GetItemInSlotiOBJECT_SELF);
            if(
GetIsObjectValidoItem) && != && != 3){
                
ActionUnequipItemoItem);
                }
            }
        }
// enleve juste les armes/boucliers.
    
else {
        for(
4<= i++) {
            
object oItem GetItemInSlotiOBJECT_SELF);
            if(
GetIsObjectValidoItem)){
                
ActionUnequipItemoItem);
                }
            }
        }

// positionnement et animation.
    
JumpToLocationlBed);
    
SetFacingfBed);
    if (
nRestAnimation == REST_ANIMATION_SIT)
        
ActionPlayAnimationANIMATION_LOOPING_SIT_CROSS1.0ffRestDuration);
    else
        
ActionPlayAnimationANIMATION_LOOPING_DEAD_FRONT1.0ffRestDuration);

// effets visuels: blind, ronflement et regeneration des hitpoints.
    
int nAmount GetMaxHitPointsOBJECT_SELF) / FloatToIntfRestDuration);
    
effect eBlind SupernaturalEffectEffectBlindness());
    
effect eZzzz EffectVisualEffectVFX_IMP_SLEEP);
    
effect eRegen EffectRegeneratenAmount1.0f);
    
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeBlindOBJECT_SELFfRestDuration);
    
ApplyEffectToObjectDURATION_TYPE_TEMPORARYeRegenOBJECT_SELFfRestDuration);
    
DelayCommand3.0fApplyEffectToObjectDURATION_TYPE_TEMPORARYeZzzzOBJECT_SELF7.0f));
    
DelayCommand10.0fApplyEffectToObjectDURATION_TYPE_TEMPORARYeZzzzOBJECT_SELF7.0f));

// retire les commandes et retarde le repos.
    
ActionDoCommandSetLocalIntOBJECT_SELF"REST_AVAILABLE"TRUE));
    
ActionDoCommandActionRest());
    
SetCommandableFALSE);
    
DelayCommandfRestDurationSetCommandableTRUE));
    } 
Ya moyen d'optimiser encore, surtout pour le déshabillage
Oki merci, je me plongerais la dedans des que j'aurais le temps, je suis certaine qu'il y a un moyen de faire ça, suffit de le trouver

Des fois je me demande si je ferrais pas plus vite de recréer un jeu complet

Prophetia
Concernant le SIT_CROSS, il se trouve dans le modèle a_ba_non_combat, il y a l'animation sitcross (durée de 2440 à 2485) et sitcrossps( durée de 2498 à 2557).

L'animation "sitcross" est le passage de debout à assis, "sitcrossps" l'animation en boucle. Pour se relever, je suppose qu'il utilise sitcross à l'envers.

C'est tout ce que je sais


Je ne sais que faire pivoter un objet autour de son axe, pô plus mais p'tet qu'avec un peu de courage tu pourrait y arriver
Bon ben hier, j'ai récupère un ensemble de fichier (je dis un ensemble de fichier puisque ça ne se limite pas à un simple hak) permettant de plonger dans un lac et d'y "nager".
Si je met nager entre guillemet c'est qu'en réalité on nage pas vraiment, je dois dire que je suis assez déçue du système, je m'attendais à bien mieux, mais là n'est pas la question.

Dans le hak accompagnant ce système il y avait une redéfinition du fichier a_ba_non_combat.mdl dans le quel ils ont rajouté une petite animation pour le saut dans le lac, ainsi que la redéfinition d'un fichier 2DA (visualeffect.2DA si je ne me trompe pas) et celle du fichier nwscript.nss, l'animation du personnage sautant dans lac étant ensuite appelées par un script. donc maintenant, ont il remplacé une animation existante déjà par la leur ou ont il vraiment ajouté une animation, bonne question....

Je vais essayer de tripatouiller (pour pas dire étudier, on risquerait de me prendre pour une folle ) tout ça et essayer de voir si il n'y a vraiment pas un moyen d'ajouter une animation pour les personnages.

Prophetia
Lol, ça tombe bien, je suis en train de regarder les joueurs de luth

Pour vérifier quel animation ils ont remplacé (car j'en suis quasiment sûr maintenant ), importe dans 3DSmax ce premier a_ba et sans rien effacer, import le a_ba d'origine par-dessus l'autre. À un moment ça va te demander si tu veux changer par exemple neck_g par neck_g01 et cela pour toutes les parties du modèles, fait OK pour chaque.
Après ya plus qu'à lancer l'animation dans 3DSMax et voir où se trouve les modifs, dans quelles animations.

Par contre, si ils arrivent vraiment à créer une nouvelle animation (et non en remplacer une), c'est parfaitement bonnard!


note: tu me dira, suffit de regarder la constante utilisé dans leur script pour voir quel animation ils ont remplacé
Edites n'importe quel modele en ascii via CTools, tu verras la liste des anim dans des nodes. (Attention, les longueurs d'anim sont différentes à chaque mdl).
Par contre, je ne sais pas où trouver la liste des constantes d'anim. Si on les trouve, il serrait peut être possible de rajouter des anim dans la liste des constantes et les lier avec les nouveaux nodes crée sous Max.
Par contre, ça ne pourrait marcher que pour des pnj, il me semble.
Si j'ai bien compris c'est l'animation snooping que l'anim des joueurs de luth remplace, en gros c'est celle qui donne a votre personnage le mouvement de regarder au loin la main droite en visière.

Et je confirme bien, qu'il remplace cette anim pour l'avoir tester plusieurs fois
Les constantes se trouvent dans le nwscript. Suffit d'utiliser l'éditeur de script en spécifiant "Toutes" dans "ressources à indiquer" quand tu ouvre un autre script. Ainsi tu peut ajouter une ou plusieurs constantes en modifiant nwscript.

Je doute que ça marche quand même
(pour la création de nouvelles animations bien-sûr, la modif quand à elle fonctionne très bien)
Pour ce qui est des animations je n'y connais rien, mais je confirme, éditer nwscript n'apportera rien: ce fichier sert à définir des constantes, c'est-à-dire des opérations de copier coller dans les scripts. Rien n'en reste après la compilation.

Ex
Int Bogus = 331; ajouté à nwscript.nss

Après ça, à chaque fois que le compilateur tombera sur Bogus dans un script il le remplacera par 331, c'est tout.

Le problème c'est qu'il faut que 331 ait un sens, et ce n'est pas nwscript qui peut lui donner.

Par exemple quand on rajoute une ligne à un 2da, c'est cela qui donne sens à la valeur de l'ID de la nouvelle ligne. La définition de la constante dans nwscript.nss est purement esthétique, je ne le fais jamais.

Pardon si tout cela était évident pour tout le monde.
Bon je suis tombé sur un truc qui pourrait être marginalement intéressant: voilà il existe une propriété qui s'appelle "zombie-walk" elle est définie dans IPRP_WALK.2da (on trouve ce 2da reférencé dans itempropdef.2da), elle est aussi la seule dans sa catégorie. En tombant là-dessus je me suis dit que cela servait sûrement à remplacer l'animation de marche d'une créature en lui donnant un item avec cette propriété. Donc j'ai testé: Un zombie normal avec cette propriété sur sa peau, et un autre sans. Résultat: il marchent pareil, il semble donc que Bio se soit un peu emmêlé les pinceaux .

Histoire de vérifier j'ai collé cet item sur le dos de mon PJ et surprise, il s'est mit à sautiller comme un demeuré au lieu de marcher :bouffon:. J'en conclus donc que quelque part dans le modèle du PJ il y a une animation spécifique pour "zombie walk" qui n'est pas très aboutie (si j'ai trahi là ma complète incompréhension de la façon dont modèles et animations sont liés... c'est normal) . Toujours est-il qu'en retravaillant l'animation en question, on pourrait modifier la façon dont un PJ se déplace, en lui affectant le dit item, puis en lui retirant, au moment opportun via un script.

Voilà, voilà .... je sais, c'est un peu n'importe quoi.

Pom-pom!
J'ai regardé la référence 6658 qu'on trouve dans le iprp, cela correspond à "errance du zombie".
Hors il existe une constante appelé DISEASE_ZOMBIE_CREEP que l'on peut appeler surement avec la fonction EffectDisease (zombie_creep se traduit par zombie errant).

Il y a deux animations qui vraisemblablement pourrait correspondre à notre errance du zomb: walkdead et walkinj.
Je parle là du nom du node qui se trouve dans a_ba_non_combat.

Faudrait que je teste la fonction EffectDisease et que je vérifie la corrélation avec les deux animations situées dans le modèle 3D a_ba_non_combat, et aussi avec la capacité deplacement spécial.


Mais bon, encore là, aucun moyen de créer une nouvelle animation...

apparemment...
j'ai trouvé sur le vault (adresse http://nwvault.ign.com/dm/modeling/tutorials/Kinarr/) un tut en anglais pour personnaliser (si j'ai bien compris, car l'anglais c'est pas mon fort) une animation.
J'essais de décortiquer l'affaire (et surtout de traduire le tut) et je vous en fait part. D'après l'image du tut, y'a quequ'chose à creuser la dedans.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés