Travailler en direct dans la fenêtre Aseprite de l'utilisateur
Le serveur MCP aseprite a deux modes, choisis par appel :
- Direct (Live) : Aseprite est en cours d'exécution avec l'extension Aseprite MCP Live, qui se connecte au serveur. Chaque outil exécute son script dans cette fenêtre, sur le sprite ouvert, et le canevas se redessine immédiatement.
- Batch : aucune fenêtre connectée. Chaque outil démarre un Aseprite caché, modifie le fichier sur le disque et se ferme. Une fenêtre ouverte n'affichera les modifications qu'après une réouverture du fichier.
Commencer chaque session avec live_status
| Résultat | Que faire |
|---|---|
connecté; onglet actif : <chemin> + sauvegardé | Utiliser ce chemin comme filename pour chaque outil. |
... NON SAUVEGARDÉ | Demander où le sauvegarder, puis save_active_sprite("<dossier>/<nom>.aseprite") et utiliser ce chemin. |
connecté; aucun sprite ouvert | create_canvas ouvre un nouvel onglet dans la fenêtre. |
Aseprite n'est pas connecté ... | Prévenir l'utilisateur. Travailler en mode batch uniquement s'il est d'accord. |
Toujours dessiner dans le fichier que l'utilisateur a ouvert (strict)
Chaque dessin va dans l'onglet ouvert de l'utilisateur : le sprite actif signalé par live_status. Ne jamais placer le travail dans un fichier séparé.
- Ne jamais créer un second sprite. Ne pas appeler
create_canvas, et ne jamais utiliserSprite(w, h)dansrun_lua_script, tant que l'utilisateur a un onglet ouvert. Utilisercreate_canvasuniquement quandlive_statusindique qu'aucun sprite n'est ouvert. En Lua, éditerapp.activeSprite. - Si le canevas est trop petit, redimensionner ce même fichier. Par exemple, si l'onglet ouvert fait 64×64 et que la scène nécessite 160×112, appeler
resize_canvas(<fichier ouvert>, 160, 112)sur celui-ci, puis dessiner. Faire de même pour le nombre d'images : ajouter des images à ce fichier avecadd_frames. - Un canevas qui contient déjà des œuvres doit être demandé d'abord.
resize_canvasredimensionne les pixels existants, donc sur un onglet vide, le redimensionner directement ; lorsque l'onglet contient déjà de l'art, demander à l'utilisateur avant de redimensionner. - Si l'onglet n'est pas sauvegardé, le sauvegarder avec
save_active_sprite(demander où), puis continuer à travailler dans ce fichier. Le sauvegarder n'est pas une raison d'en démarrer un autre. - Si le mode direct n'est pas connecté, s'arrêter et prévenir l'utilisateur. Ne pas basculer vers un nouveau fichier sur le disque sauf si l'utilisateur le demande explicitement.
L'extension s'installe dans Aseprite la première fois que le serveur démarre. Aseprite doit alors être redémarré une fois, et lors de la première utilisation, il demande si le script peut se connecter au réseau ou écrire des fichiers. L'utilisateur doit autoriser cela dans Aseprite. Ne jamais cliquer sur ces invites à sa place.
Pendant le dessin en direct
- Un appel d'outil = une étape annulable. L'utilisateur peut appuyer sur Ctrl+Z pour annuler exactement une de vos étapes, alors dites-lui quand cela peut aider.
- Travailler par passes visibles (silhouette, puis aplats, ombrage, détails, animation) afin que l'utilisateur voie le morceau se construire, et dire ce que fait chaque passe.
- Une petite chose par appel. La fenêtre ne se redessine qu'au retour d'un appel, donc un script qui peint toute la scène s'affiche d'un coup. Chaque appel doit ajouter un objet, un calque, une passe d'ombrage ou une image. Écrire un script, l'exécuter, puis écrire le suivant. Ne jamais écrire tous les scripts d'abord et les exécuter à la fin.
- Privilégier les outils dédiés (
draw_rows,draw_rectangle_at,draw_ellipse_at,fill_area_at, ...). Chacun d'eux est une étape visible unique. - En mode direct,
run_lua_scriptrefuse les scripts de plus de 40 lignes de code. Garder les fonctions d'aide courtes, car chaque script doit les redéfinir lui-même. - Une scène de 64×64 nécessite généralement 10 à 25 appels. C'est normal : l'utilisateur regarde la construction.
- Privilégier les outils dédiés (
- Chaque étape est sauvegardée dans le fichier, ce qui maintient
view_spriteet les outils d'export synchronisés. Ceux-ci lisent toujours le fichier sauvegardé via un Aseprite caché. - L'utilisateur peut aussi éditer. Vérifier avec
view_spriteouread_rowsavant de redessiner une zone, et ne pas écraser ses modifications sans demander. - Ne pas changer sa vue. Éviter de changer d'onglet, d'image ou de calque dans la fenêtre sauf si la tâche l'exige.
Dépannage
- Un outil expire avec "Une boîte de dialogue est peut-être ouverte". Aseprite attend une invite, comme une demande d'autorisation. Demander à l'utilisateur d'y répondre.
- Les modifications n'apparaissent pas dans la fenêtre. Exécuter
live_status. Chaque appel réclame d'abord le lien direct à toute autre session Claude qui le détient, donc s'il indique toujours non connecté, Aseprite a été ouvert avant l'installation de l'extension et nécessite un redémarrage. S'arrêter et prévenir l'utilisateur ; ne pas continuer à dessiner dans le fichier sur le disque. - Ne jamais lancer Aseprite vous-même. Ne pas ouvrir le fichier dans une nouvelle fenêtre avec une commande shell. Deux fenêtres sur le même fichier se désynchronisent, et les scripts ne vont que vers la fenêtre qui s'est connectée en dernier. Si l'onglet ouvert est obsolète, demander à l'utilisateur d'utiliser Fichier → Revenir.
- Des onglets titrés comme le sprite apparaissent et se ferment. C'est normal : certains outils d'analyse travaillent sur une copie temporaire, qui est ensuite fermée.