[PYTHON] Convertir les données de maillage exportées de SpriteUV2 dans un format pouvant être importé par Spine

J'ai écrit un programme de conversion (python) comme le titre. Certaines parties ne sont pas bonnes, mais je vais les publier car il semble y avoir une demande maintenant.

suv2spine https://github.com/harayoki/suv2spine

Farce

SpriteUV2 a une excellente fonction d'intégration de plusieurs données Spine, mais il n'exporte pas les données de maillage qu'il a générées en tant que données pouvant être importées par Spine. (Pourquoi!) Eh bien, je pense que cela sera désormais pris en charge, mais lorsque je vérifie le contenu des données json à écrire à des fins générales, il est relativement proche du format de données pouvant être lu par Spine, il est donc possible d'effectuer un traitement de conversion avec un programme simple. Je peux le faire.

Le point à noter ici est que lors de la comparaison des deux données

C'est à peu près ça. Le dernier élément sera décrit plus tard.

Comment utiliser

 2017-05-01 0.07.43.png Tout d'abord, générez un maillage approprié avec SpriteUV2 et exportez-le en tant que données json avec les données d'atlas.

Téléchargez le script python sur github (https://github.com/harayoki/suv2spine/blob/master/suv2spine.py), donnez l'autorisation d'exécution, puis exécutez le processus de conversion.

./suv2spine hoge.json

hoge.json est un fichier json exporté par SpriteUV2. Ce processus produit un fichier converti appelé hoge_out.json. (Vous pouvez également spécifier le nom du fichier de sortie avec l'option -o. Pour d'autres options, reportez-vous au README sur le côté github.)

 2017-05-01 0.29.16.png Lancez Spine et sélectionnez ʻimport Data` dans le menu Spine.

 2017-05-01 0.28.11.png La boîte de dialogue d'importation s'affiche. Sélectionnez la sortie json du convertisseur et appuyez sur OK. Vous pouvez également ajuster la taille d'importation et spécifier le nom du squelette après l'importation ici. Maintenant, si vous souhaitez ajouter un squelette à votre projet actuel au lieu d'en créer un nouveau, décochez Nouveau projet.

 2017-05-01 0.28.51.png Un avertissement sera affiché dans une boîte de dialogue comme celle-ci ici, mais comme il s'agit de la spécification de ce programme de conversion, il est OK tel quel. Le contenu de l'avertissement est quelque chose comme "Il semble que les données du contour du maillage et de la ligne de séparation du maillage n'ont pas été exportées, donc elles seront recréées automatiquement".

 2017-05-01 0.37.15.png Le chargement est terminé comme ceci. Si l'image est hors de référence et que seule la forme du maillage est affichée, veuillez la redéfinir manuellement. Réinitialisez le chemin du dossier Images, mais sélectionnez le maillage pour modifier le chemin affiché.

Avertissement

Tout d'abord, ce convertisseur ne prend pas en charge la conversion de plusieurs maillages. Effectuez la conversion pour chaque maillage. (Si plusieurs maillages sont inclus dans les données d'exportation SpriteUV2, seul le premier sera converti.)

De plus, si vous chargez un maillage très fin, la forme du contour peut devenir étrange. Dans cet exemple également, la forme sur le côté gauche du tsuno de la tête est étrange.

 2017-05-01 0.44.10.png

Si cela se produit, je pense qu'il sera nécessaire d'ajuster le maillage du côté SpriteUV2 ou du côté Spine. De plus, bien que ce soit correct dans ce qui précède, l'écart entre les jambes était parfois reconnu comme faisant partie du maillage. Il peut être préférable de préparer l'image d'origine de sorte que les trous ne soient pas ouverts autant que possible lors de la configuration du maillage.

C'est la raison pour laquelle un tel problème se produit, mais du côté Spine, en plus de la liste de données de sommets, je m'attends à ce qu'il y ait une liste de données de sommets périphériques externes (coque) et de segment de ligne (arêtes) reliant les sommets. Cependant, il est difficile de reproduire les données du json que SpriteUV2 crache. Pour le moment, ce ne sont pas des données essentielles, mais des données qui peuvent être générées automatiquement par Spine (l'avertissement dans la boîte de dialogue précédente que cela sera fait), donc même dans ce cas cela fonctionnera comme ça, mais la génération automatique est Si cela ne fonctionne pas, il semble que la situation ci-dessus se produira.

Cela fait environ 10 ans que j'ai écrit du code Python décent, alors gardez un œil dessus. mm

à partir de maintenant

En premier lieu, ce serait bien si la fonction de génération automatique de maillage de Spine semble fonctionner, ou si SpriteUV2 prend en charge l'exportation de données Spine. Concernant cet outil, s'il y a une demande, il peut ou non prendre en charge la conversion de plusieurs maillages.

Recommended Posts

Convertir les données de maillage exportées de SpriteUV2 dans un format pouvant être importé par Spine
Convertir des images du SDK FlyCapture en un formulaire pouvant être utilisé avec openCV
Quantité d'entités pouvant être extraite des données de séries chronologiques
Comment créer une propriété de relations qui peuvent être prefetch_related par des conditions spécifiques
Un mécanisme pour appeler des méthodes Ruby à partir de Python qui peut être fait en 200 lignes
Implémentez un thread qui peut être suspendu en exploitant le rendement
[Diplômé de l'encombrement d'articles] J'ai essayé de développer un service qui peut répertorier les articles par objectif
Convertissez les données météorologiques au format GRIB2 qui ne peuvent pas être ouvertes avec pygrib en netCDF et visualisez-les
Puis-je être un data scientist?
[Python] Un programme qui trouve une paire qui peut être divisée par une valeur spécifiée
J'ai fait une simple minuterie qui peut être démarrée depuis le terminal
Convertir les données au format XML en données au format txt (yolov3)
Comment convertir facilement le format de Markdown
Notes pour créer des figures pouvant être publiées dans des revues avec matplotlib
Je souhaite créer une file d'attente prioritaire pouvant être mise à jour avec Python (2.7)
Regroupez le nombre d'étapes par jour à partir des données de santé iPhone pour créer un fichier CSV
Convertir les données au format json en txt (en utilisant yolo)
J'ai essayé de faire une application mémo qui peut être pomodoro, mais un enregistrement de réflexion
À partir d'un livre que le programmeur peut apprendre ... Conversion de caractères qui représentent des nombres en type entier