NESmaker - Démarrage rapide (tuto en français)

triste

New member
dale_coop said:
Concernant ton Arbre, tu as bien mis "Solid" pour chacun des blocs composant ton Arbre?
Oui, tous les blocks sont "Solid" dans l'arbre.
Video proof : https://vimeo.com/285809782
 

dale_coop

Moderator
Staff member
C'est moi, ou j'ai l'impression que ton Player bloque sur le haut de tes arbres ? Le haut de tes arbres seraient bien solides ?
Si oui, serait-il possible que tu aies posé tes arbres sur ton écran, puis que tu te sois rendu compte que tu avais oublié de mettre tous les blocs de ton Arbre à "solide", et que tu aies donc effectué la modification après?
Dans ce cas, tu dois re-placer tous tes Arbres (car au moment tu pose un arbre dans ton écran, il dessine ton arbre avec ses propriétés de collision que ce dernier a au moment où tu le poses).

Si c'est ça, essaie de reposer ton arbre sur ton écran, et re-test (ou test sur un autre écran ;))
 

dale_coop

Moderator
Staff member
ANIMATIONS - PLAYER

Nous allons voir un peu plus en détails les animations, ici du Player. Commençons par en dessiner quelques animations.
Le principe est de dessiner plusieurs fois le sprite, mais dans des positions différentes (comme en animation dessin classique).

Dans le Pixel Editor :
Sélectionner le "Pixel Editor", puis ouvrir le fichier "GameObjectTiles.bmp" se trouvant dans le dossier "GraphicAssets\<NomDeVotreProjet>" (dans mon cas dans "GraphicAssets\JEU01").

Afficher la grille en appuyant sur le bouton [8].
Pour l'exemple de mon player, je vais le dessiner de coté avec la bouche ouverte.

01_Pixel_Editor.png

Note: l'outil rectangle de sélection, permet de sélectionner une zone, pour ensuite pouvoir faire un copier CTRL+C et coller CTRL+V à un autre emplacement, si besoin (ou d'un bmp à un autre... pratique!).

Une fois terminé, enregistrer le fichier Tileset.


Dans la fenêtre du Player :
Dans l'arborescence de NESMaker, sélectionner maintenant le "Player" sous "Game Objects".
Dans notre exemple, nous allons créer 4 animations correspondant à l'aspect visuel de notre Player en fonction de ses directions / mouvements : "immobile droite", "immobile gauche", "marche droite", "marche gauche".

Tout d'abord, cliquer sur le bouton "Manage Animtions". C'est dans cette boite de dialogue que les différentes animations sont déclarées.
Par défaut, il y a déjà une animation "DefaultAnimation" (obligatoire d'en avoir au moins une).
Dans notre cas, nous en avons besoin de 4, nous allons donc en ajouter 3 :
- cliquer sur le bouton "Add", 3 fois.
- sélectionner CHAQUE animation de la liste et renommer en "immobile droite", "immobile gauche", "marche droite", "marche gauche" (saisir le nouveau nom et cliquer sur le bouton "Rename").

02_Manage_Animations.png

(J'aurais aussi pu ajouter des animations pour lorsque le Player se dirige en "haut" et "bas"... mais je pense que c'est suffisant pour l'exemple, je vous laisse le soins de faire le autres).

Une fois les différentes animations déclarées, fermer la fenêtre. Nous allons maintenant pour chacune d'elles créer l'animation du sprite (mettre les images).

Sur la partie gauche de la fenêtre de votre Player, une petite liste déroulante vous indique sur quelle animation en cours de modification.
La première animation est déjà sélectionnée, c'est CETTE animation que vous avez paramétrée au tout début du tutorial.

- Pour l'animation "immobile droite", nous voulons juste le personnage de face qui ne bouge pas. Donc 1 frame d'animation suffit et nous n'allons pas toucher aux graphismes qui sont les bons normalement (présente notre Player vu de face).
Comme notre animation "immobile gauche" sera la même que "immobile droite" (présente notre Player vu de face), je vais utiliser copier/coller de frame.
Donc cliquer sur le bouton "Copy frame".

- Puis sélectionner l'animation "immobile gauche" dans la liste déroulante. Votre Player doit normalement s'afficher tout vide (C'est normal, c'est un des nouvelles animations que l'on a ajoutées, et que nous n'avons pas encore paramétrée).
Cliquer maintenant sur le bouton "Paste frame", cela va recomposer de la même manière que ce que vous aviez fait pour l'animation "immobile droite".

02_Player_01.png

Note: évidemment, on aurait pu également recomposer à la main (comme au début du tutoriel) en indiquant pour chaque bloc composant le Player, le Tileset à utililiser (en sélectionnant dans la fenêtre située en haut à droite) et en sélectionnant le sub-palette à utiliser.

- Sélectionner maintenant "marche droite", nous allons donner à notre Player un peu d'animation (par exemple, lui faire ouvrir et fermer la bouche quand il marche).
Pour "Frame Count", choisir "2" dans la liste déroulante (nous avons besoin d'une image du player de coté bouge ouverte et une image du player vu de coté bouche fermée).
Sélectionner ensuite la "frame 1", et composer le Player en indiquant les tiles à utiliser (pour mon exemple, le player vu de coté bouche ouverte)

02_Player_02.png


Sélectionner ensuite la "frame 2", et composer le Player en indiquant les tiles à utiliser (pour mon exemple, le player vu de coté bouche fermée, pour fermer la bouche je réutilise tout simplement le tile de son dos, que je retourne horizontalement "Flip H").

02_Player_03.png

Voilà.
D'accord, mon animation est pas très recherchée, juste un mouvement de bouche… on aurait pu dessiner également un mouvement de son corps, ou mouvement de ses yeux… (selon votre imagination).

- Sélectionner maintenant "marche gauche", nous allons effectuer exactement la même chose que pour "marche droite", sauf que nous retournerons horizontalement les images (pour que le Player soit dirigé vers la gauche).
Donc, pour "Frame Count", choisir "2" dans la liste déroulante.
Et ensuite, possibiltié d'utiliser la fonction de copier/coller de frames (entre "marche droite" et marche gauche" pour la "frame 1" puis "frame 2") et "Flip Frames" pour retourner horizontalement toute la frame :

02_Player_04.png

Voilà.

Maintenant que nous avons réalisé toutes nos animations, nous devons les associer au différentes directions du player en fonction du type de mouvement.


Cliquer sur le bouton "Object Details"…

L'onglet "Animations" affiche l'ensemble des types d'animations (comprendre ici "de mouvements") qu'aura le Player.
Par défaut, il y a déjà un type d'animations "Default".
Dans notre exemple, le Player aura comme type d'animations : "Immobile" et "Marche"
Sélectionner le type d'animations "Default" et le renommer en "Immobile" à l'aide du bouton "Rename".
Cliquer ensuite sur le bouton "Ajouter" pour ajouter le type d'animations "Marche".
Maintenant pour chacun des 2 types d'animations, nous devons indiquer quelle animation de frames utiliser.
Selectionner "Immobile" puis sur la partie droite, indiquer :
- "immobile droite" lorsque le Player se dirige vers "Down"
- "immobile droite" lorsque le Player se dirige vers "Down Right"
- "immobile droite" lorsque le Player se dirige vers "Right"
- "immobile droite" lorsque le Player se dirige vers "Up Right"
et
- "immobile gauche" lorsque le Player se dirige vers "Up"
- "immobile gauche" lorsque le Player se dirige vers "Up Left"
- "immobile gauche" lorsque le Player se dirige vers "Left"
- "immobile gauche" lorsque le Player se dirige vers "Down Left"
Voilà qui sera bien.
Sélectionner maintenant "Marche" puis sur la partie droite, indiquer :
- "marche droite" lorsque le Player se dirige vers "Down"
- "marche droite" lorsque le Player se dirige vers "Down Right"
- "marche droite" lorsque le Player se dirige vers "Right"
- "marche droite" lorsque le Player se dirige vers "Up Right"
et
- "marche gauche" lorsque le Player se dirige vers "Up"
- "marche gauche" lorsque le Player se dirige vers "Up Left"
- "marche gauche" lorsque le Player se dirige vers "Left"
- "marche gauche" lorsque le Player se dirige vers "Down Left"

02_Animation_Types.png

Je pense que vous avez compris le principe : lorsque le player utilise le type d'animations immobile, on utilise des animations de frames differentes en fonctions de la direction.

Maintenant nous allons assigner ces types d'animations, aux étapes du Player.


Allez dans l'onglet "Actions". Pour rappel, dans le cas du Player :
l'étape 0 correspond à l'état immobile du Player
l'étape 1 correspond à l'état marche/court du Player
(Pour le Player, ces étapes sont codées en durs dans les scripts ASM du moteur de jeu)
Nous allons juste préciser pour chaque étape (état du Player)
Sélectionner l'Action step "0" et dans "Animation Type" choisir "Immobile"
Sélectionner l'Action step "1" et dans "Animation Type" choisir "Marche". Et sélectionner une vitesse d'animation, pour notre exemple, nous choisirons "4".
Et on ne touchera pas aux autres propriétés.

02_Player_05.png

Et voilà, lorsque le Player est immobile (aucun déplacement), il a afficher les animations de type "Immobile" et lorsqu'il se déplacera, il utilisera les animations de type "Marche".



ANIMATIONS - INPUTS SCRIPTS

Pour pouvoir faire fonctionner correctement nos animations, nous devons ajouter 1 script à notre projet.

Dans l'arborescence de NESMaker, sous "Scripts" et sélectionner "Inputs scripts". Puis dans la liste de droite, se déplacer jusqu'au dossier "UserScripts\AdventureGame_Base\MovementScripts" et double-cliquer sur le fichier "ChangeToIdleAnimation.asm" (note: "ChangeToWalkingAnimation.asm" ne semble plus nécessaire dans cette version).

Ce script servira à déclencher le type d'animation en fonction des appuis/relachements sur les boutons de la manette.



ANIMATIONS - INPUT EDITOR

Se rendre maintenant dans "Input Editor".
Dans la liste déroulante "Game State", sélectionner "MainGame" (c'est à dire en cours de jeu). Dans "Target", sélectionner "NULL" (toujours choisir NULL pour tous les scripts, car actuellement ce paramètre n'est pas géré).
Dans "script to run", sélectionner le script "ChangeToIdleAnimation.asm", sélectionner (à l'aide de la souris) le bouton concerné sur la manette et cliquer sur le bouton "Press-Hold-Release" pour qu'il affiche "Release".
Ensuite cliquer que "Add Script" pour associer le script (lorsqu'on relache le bouton).
La ligne correspondante apparaît dans la liste des commandes de contrôles assignées.

Effectuer la même chose pour les autres boutons (Left, Right, Top).

Note: Il ne semble plus nécessaire d'assigner le script "ChangeToWalkingAnimation".

Vous devriez au final avoir ceci (même si l'ordre des lignes n'a pas trop d'importance):
03_inputs_OK.png



Il n'y a plus qu'à tester... via le menu "Test > Export & Test".
Voilà, votre player devrait s'animer maintenant lorsqu'il se déplace.



ANIMATIONS - MONSTRES

Normalement, à ce stade, vous devriez avoir une petite idée concernant les animations des Monstres.
Cela fonctionne exactement de la même manière: animations pour différentes étapes de vos monstres (si les monstres vont se déplacer à droite ou à gauche, s'ils vont être immobiles, ...). Pas besoin de la partie INPUTS pour les monstres

Je ne détaillerai donc pas cette partie. Sauf si certains ont des soucis et voudraient des précisions.


>> La suite "ARME - PLAYER", ici http://nesmakers.com/viewtopic.php?p=3844#p3844
 

triste

New member
Nickel, je viens de tester la partie animation du player, c'est (encore) parfait !

dale_coop said:
C'est moi, ou j'ai l'impression que ton Player bloque sur le haut de tes arbres ? Le haut de tes arbres seraient bien solides ?
Si oui, serait-il possible que tu aies posé tes arbres sur ton écran, puis que tu te sois rendu compte que tu avais oublié de mettre tous les blocs de ton Arbre à "solide", et que tu aies donc effectué la modification après?
Dans ce cas, tu dois re-placer tous tes Arbres (car au moment tu pose un arbre dans ton écran, il dessine ton arbre avec ses propriétés de collision que ce dernier a au moment où tu le poses).

Si c'est ça, essaie de reposer ton arbre sur ton écran, et re-test (ou test sur un autre écran ;))

C'était bien ça, bien vu !
Gracias !
 

triste

New member
De nouveaux petits soucis, sur mon Overworld j'ai des espaces "cachés", est-ce normal ?



Aussi l'animation des montres ne dure que quelques secondes puis plante la rom (pas l'émulateur). J'ai fait une vidéo : https://vimeo.com/285848790
Parfois même des players apparaissent lorsque je change de screen puis plante la rom : https://vimeo.com/285850794

Mes excuses si je suis casse-pieds mais cela prouve que tes tutos sont très appréciés, demain je suis au taf j'aurai bien mois de question :).
 

dale_coop

Moderator
Staff member
1) Les "zones cachés" que tu indiques:
Il est vrai que j'en ai pas parlé.
C'est en réalité, la première colonne et/ou première ligne des écrans adjacents. Elles n'appartiennent pas à l'écran en cours.
Leur but, aider à visualiser où sont placés les éléments dans les autres écrans, pour pouvoir placer correctement les Tiles sur ton écran (surtout les solides).
Parce que le problème est que si tu mets un Arbre (tile solide) sur le bord de l'écran, lorsque ton Player arrives dans ton écran à cet endroit, ton Player restera bloqué entre les 2 écrans (ne pouvant pas entrer dans ton écran à cause de l'arbre qui le bloque à l'extérieur).
Donc si tu poses un Arbre (Tile solide) contre le bord droit de ton écran A, il faudra également que tu poses un Arbre (ou une pierre ou un mur... ce que tu veux de bloquant) sur le bord gauche de ton écran B (collé à l'Arbre de ton écran A), pour pas que le Player ne soit bloqué contre l'Arbre ;)

Voilà à quoi servent ces zones... à voir comment sont placés les Tiles sur les bords des écrans adjacents.

2) Tes plantages sont dûs à tes scripts de mouvements qui ne sont pas bons (c'est pas de ta faute ;))
Il y a des bugs dans ceux livrés avec NESMaker 4.0.0, du coup,
Il faut télécharger les scripts corrigés qui sont dispos ici: http://nesmakers.com/viewtopic.php?f=19&t=390
Et les mettre dans le dossier GameEngineData\Routines\UserScripts\BasicScripts\MovementScripts\ (et écraser ceux existant)
(A noter que dans la 4.0.2 qui sort cette semaine, tout ça sera déjà corrigé)
 

triste

New member
dale_coop said:
1) Les "zones cachés" que tu indiques:
Il est vrai que j'en ai pas parlé.
C'est en réalité, la première colonne et/ou première ligne des écrans adjacents. Elles n'appartiennent pas à l'écran en cours.
Leur but, aider à visualiser où sont placés les éléments dans les autres écrans, pour pouvoir placer correctement les Tiles sur ton écran (surtout les solides).
Parce que le problème est que si tu mets un Arbre (tile solide) sur le bord de l'écran, lorsque ton Player arrives dans ton écran à cet endroit, ton Player restera bloqué entre les 2 écrans (ne pouvant pas entrer dans ton écran à cause de l'arbre qui le bloque à l'extérieur).
Donc si tu poses un Arbre (Tile solide) contre le bord droit de ton écran A, il faudra également que tu poses un Arbre (ou une pierre ou un mur... ce que tu veux de bloquant) sur le bord gauche de ton écran B (collé à l'Arbre de ton écran A), pour pas que le Player ne soit bloqué contre l'Arbre ;)

Voilà à quoi servent ces zones... à voir comment sont placés les Tiles sur les bords des écrans adjacents.
Ok, merci de cette explication.

dale_coop said:
2) Tes plantages sont dûs à tes scripts de mouvements qui ne sont pas bons (c'est pas de ta faute ;))
Il y a des bugs dans ceux livrés avec NESMaker 4.0.0, du coup,
Il faut télécharger les scripts corrigés qui sont dispos ici: http://nesmakers.com/viewtopic.php?f=19&t=390
Et les mettre dans le dossier GameEngineData\Routines\UserScripts\BasicScripts\MovementScripts\ (et écraser ceux existant)
(A noter que dans la 4.0.2 qui sort cette semaine, tout ça sera déjà corrigé)
J'ai téléchargé les nouveaux scripts. Je les ai mis dans le dossier indiqué, ça a écrasé les existants. J'ai toujours les mêmes bugs.
J'ai la v4.0.1.
Je vais attendre la v4.0.2
 

dale_coop

Moderator
Staff member
Ok, sur les écrans qui plantent essaie d’enlever les monstres et se les remettre.
Pour enlever les monstres: faire un clic droit sur l’écran et choisir “Edit Monster Placements Details” puis tu cliques sur DISABLE pour les 4 emplacements.
Et tu remets ton monstre ;)

Peux tu partager des captures d’écran de ton input editor.
Tu as peut-être une erreur dans les scripts ?
 

triste

New member
dale_coop said:
Ok, sur les écrans qui plantent essaie d’enlever les monstres et se les remettre.
Pour enlever les monstres: faire un clic droit sur l’écran et choisir “Edit Monster Placements Details” puis tu cliques sur DISABLE pour les 4 emplacements.
Et tu remets ton monstre ;)
Je n'ai plus de freeze/plantage après avoir supprimé le monstre et placé un nouveau monstre, par contre j'ai toujours des players un peu partout lorsque je change de screen.





dale_coop said:
Peux tu partager des captures d’écran de ton input editor.
Tu as peut-être une erreur dans les scripts ?
 

dale_coop

Moderator
Staff member
Tes inputs m’ont l’air tout bon!
Une erreur de corruption de mémoire...
Est ce tu pourrais essayer ça:
http://nesmakers.com/viewtopic.php?f=19&t=353
 

triste

New member
dale_coop said:
Est ce tu pourrais essayer ça:
http://nesmakers.com/viewtopic.php?f=19&t=353
Je viens de tester,
En GameEngineData\MainASM.sm, j'ai placé ;; devant
Code:
JSR HandleFadeLevels 
JSR HandleFades
En GameEngineData\Routines\System\IncludeSystemFunctions.asm, j'ai placé ;; devant
Code:
.include "Routines\System\HandleFades.asm

J'ai les mêmes problèmes :




Une autre question : comment ou où a-t-on accès aux dates de sortie des futures releases ?


Merci encore.
 

dale_coop

Moderator
Staff member
Joe, Austin et Joshua post régulièrement dans le group FB de NESMakers et évoquent les délais (lorsque retard ou sorties prévues).
Initialement le planning était celui la (mais il a pris deux retard) :
Wed, Aug 8th: LAUNCH - tutorial on basics
Wed, Aug 15th: Adventure Tutorial
Wed, Aug 22nd: Platform Tutorial
Wed, Aug 29th: Horizontal Shooter Tutorial
Wed, Sept 5th: Brawler Tutorial
Wed, Sept 12th: Point and Click Tutorial
Wed, Sept 19th: "Puzzle Game" Tutorial
Wed, Sept 26h: Simple RPG Tutorial
Wed, Oct 3rd: NESmaker TOOL UPDATE
WED OCT 3rd-Nov 3rd: The first official NESmaker Game Development Competition.
 

dale_coop

Moderator
Staff member
Pour ton probleme, pourrais-tu partager une capture de le liste de tes scripts dans Inputs Scripts, stp ?
 

LAZARUS

New member
triste said:
Un PDF c'est une bonne idée, je vais essayer aussi.

Si tu veux faire un pdf facilement,utilise openoffice.Une fois tes pages créer avec les images,vas dans Fichier->exporter comme PDF.
 

dale_coop

Moderator
Staff member
triste said:
J'ai les mêmes problèmes

Une autre question que j'ai oublié de te poser, dans ton "overworld", où sont tes écrans ? (sur la première ligne ? ou première colonne ? Joe a mis un message sur FB l'autre jour indiquant qu'il y avait peut être un bug chez certains lors écrans sont sur la première ligne ou/ou colonne...)
 

triste

New member
dale_coop said:
Pour ton probleme, pourrais-tu partager une capture de le liste de tes scripts dans Inputs Scripts, stp ?
Je l'ai déjà fait plus haut mais la revoici :




dale_coop said:
Une autre question que j'ai oublié de te poser, dans ton "overworld", où sont tes écrans ? (sur la première ligne ? ou première colonne ? Joe a mis un message sur FB l'autre jour indiquant qu'il y avait peut être un bug chez certains lors écrans sont sur la première ligne ou/ou colonne...)
Voic mon Overworld :

 

dale_coop

Moderator
Staff member
Ah... donc essaie de supprimer les écran qui sont sur la premiere ligne de l'overworld. Et tests sur des écrans ailleurs (2eme ou 3eme ligne ?)
 

dale_coop

Moderator
Staff member
Tu as modifié des scripts ? Ajoutés des scripts dans « Scripts > Input scripts » qui n’étaient pas dans le tutoriel ?

Demain nouvelle version va sortir, tu pourras (devras) recommencer depuis le début (tu pourras réutiliser tes fichiers tilesets .bmp si tu veux)
 

Whiletrue

New member
Salut tout le monde,

J'ai suivi le tutoriel du live Facebook (pas encore en entier).
J'ai copié les scripts de mouvements, et aussi fixé le problème du Hud (Vector...).
J'ai un truc bizarre avec mon Player au niveau animation.
J'ai bien tout vérifié, tout est correct il me semble (par rapport au tutoriel).
Et pourtant, quand je bouge le payer, il lance l'animation walk
Quand je le stoppe l'animation walk continue.
Il ne repasse en idle que quand il touche un monstre.

J'ai 2 animations : Idle et Walking
Idle a une seule frame
Walking en a 2

Dans object detail :
J'ai 2 animation types :
Walk (avec Walking dans chaque direction)
et Stand (avec idle dans chaque direction)

Dans Actions
Action 0 - Stand - end action loop - end animation loop - animation speed 0
Action 1 - Walk - end action loop - end animation loop - animation speed 4

Haaaaa j'ai trouvé :)
En faisant le récapitulatif des inputs, j'avais mis les animations sur le target Player 1 et non sur NULL
Un petit bug sans doute :)
 
Top Bottom