Aller au contenu
Plaigon

Plaig4Anims, la solution idéale pour vos animations !

Recommended Posts

579224plaigongif1.gif
 
 
----------------------------PRÉSENTATION----------------------------
 
Plaig4Anims est une librairie éponyme, réalisée pour mc, closed-source à l'heure actuelle, débutée sous la 1.7.10 (actuellement en v1.0), permettant le chargement de modèles/animations 3D aux formats obj, mdl et md2 prochainement. Elle a été débutée début Novembre 2017 dans le but de réaliser le jeu Kingdom Hearts 2 dans Minecraft.
Passons désormais aux fonctionnalités de la lib...
 
 
----------------------------FONCTIONNALITÉS----------------------------
 
 
La libairie permet essentiellement le chargement de modèles 3D animés, mais pas que !
Voici une liste non-exhaustive de toutes les fonctionnalités qu'elle vous promet de remplir:
 
1° La vitesse d'exécution des frames composant l'animation est parfaitement ajustable, en fonction des fps ou selon une constante. La librairie permet la customisation du fichier MDL de manière à accélérer/ralentir certaines parties de l'animation (tout est géré via le parser).

2° La librairie permet de charger une animation, ou de la stopper à une certaine frame, pendant un certain délai. Il est également possible de commencer à une frame n1, puis de finir à une frame n2. En outre, le degrés d'interpolation (entre les frames) est parfaitement réglable (permettant un rendu saccadé ou au contraire linéaire).

3° Plaig4Anims inclut également un chargeur de modèles OBJ, fonctionnel mais qui sera refait pour la 2.0.

4° Plaig4Anims comporte un système de synchronisations inter-clients des données relatives aux animations (leur id et leur progression). De plus une persistance via NBT est activable ou non selon les désirs de l'utilisateur (une entité au combat n'a aucun intérêt à subir une persistance, tandis qu'une machine aura tout intérêt à la supporter).

5° La transition entre 2 animations différentes est facilitée par plusieurs fonctions, de plus, une classe utilitaire est présente pour déclencher des animations à des moments prédéfinies "idle", "attack", "walking" "jump" et "hurt". Ainsi ces actions n'auront pas à être détectées par l'utilisateur, leur "capture" et leur lecture sont automatisées par la librairie.

6° Une des récentes fonctionnalités est l'utilisation de 2 shaders LIGHT ou CUSTOM tout à fait personnalisables (position de la source lumineuse réglable, matrice de couleur modifiable, taux d'absorption de la lumière par le modèle/luminosité ambiante du rendu ajustable (de manière à adapter selon le daytime), de manière à observer un ombrage de Phong sur le rendu du modèle.

7° La dernière fonctionnalités est encore en WIP. Il s'agit du suivi de la hitbox par rapport au rendu de l'entité. Par ailleurs la v2.0 permettra d'utiliser un nouveau système de hitbox basé sur différents forme, non plus cubiques (sphère, cylindre et peut-être pyramide).
 
----------------------------PRISE EN MAIN----------------------------
Nouvelle section (26/02/2018)
 
Dans ce mini-tutoriel, nous aborderont uniquement l'insertion complète (lecture, gestion en mémoire et rendu) du modèle au format .mdl dans Minecraft.
De ce fait, j'exclurai la partie "Modélisation" sous 3ds Max. Voici néanmoins deux, trois conseils pour ceux qui s'y intéresseraient:
1) Si vous débutez dans la modélisation, sachez qu'il serait judicieux d'avoir quelques bases avec le software 3ds max (raccourcis claviers, modélisation avec un blueprint, scale/translate/rotate, connaissance des principaux modiifiers, etc...).
2) Une fois votre modèle finie, vous devrez export l'uv map, et la remplir. Voici le parfait tutoriel concernant cette tâche
3) C'est bon! Vous pouvez désormais vous applaudir, le plus dur vient d'être fait, il ne vous reste plus qu'à découper votre modèle, mais vous verrez c'est très facile !
Pour découper votre modèle, la solution la + simple sera de le rig, c'est-à-dire de lui créer son enveloppe squelettique. Ensuite vous devrez appliquer le processus de "finning", puis ensuite "attacher" le bone à sa mesh dans laquelle il est "caché", où pour faire court skin le modèle 3D. Ces 3 étapes sont d'une longueur relative à la "taille" du modèle. J'ai moi même appris par une suite de vidéos tutoriels, la première ici.
4) Une fois fait, le reste ne sera que du plaisir, à savoir animer le tout ! Voilà une petite vidéo vous montrant 2 types d'animation sur 3ds max. Enfin une vidéo bonus vous montrant l'animation par suivi de trajectoire. Petit bonus: je vous mets ici à disposition un steve tout prêt à être animer, c'est cadeau !
A quoi ressemble-t-il ?
1519645218716533721.png
 
5) Une fois votre animation complètement finie, vous exporterez le modèle au format fbx. Et vous placerez ce dernier + ses textures associées dans un même dossier.
6) Enfin, la dernière étape avant la partie "code" sera de convertir le modèle du format .fbx vers .mdl. Pour ce faire vous téléchargerez noesis, que je vous mets à dispositionici, puis vous découvrirez par vous-même, c'est très intuitif ! Vous aurez sûrement un souci d'orientation du modèle une fois convertie, pas d'inquiétude, Noesis met à disposition une petite centaine de commande, tel que "rotate x y z", comme le montre ce screen:
15196453911114373393.png
 
7) Une petite étape alternative, où je vous propose de télécharger ce petit software nommé "qme31", qui vous permet de charger vos animations .mdl, afin de vous assurer qu'elles sont prêtes à être rendue ! De plus, vous pourrez afficher les caractéristiques de votre modèle, en allant sur l'onglet View, puis model properties. La fenêtre ressemblera à ceci, s'offrant une organisation en plusieurs catégories (bounds, skin, eye position, etc...):
15196450711535781148.png
 
Voici son lien de téléchargement
 
[PARTIE CODE EN RÉDACTION...]
 
----------------------------REMERCIEMENTS----------------------------
 
 
Un grand merci aux quelques personnes m'ayant aidé de loin ou de près:
- elias54, administrateur de MFF et graphiste talentueux et très sympathique, sans qui cette librairie n'aurait jamais pu revêtir ce magnifique logo !
- Yanis, jeune développeur, qui par ses nombreux "Oooowaayyyeuuuu suuupèèèèrrreeeuuhhh GGGGG t'hés tro fooorrtt, j'pôrais l'avhhoirre quaaan ele sortiraaa stp ?!" m'a toujours permis d'aller de l'avant, et de ne rien lâcher  :P 
- steinert1801 (alis Sven), habile développeur germanique, qui par son soutient, a permis l'implémentation de son incroyable et délicieuse Shader API parmi Plaig4Anims
- ThinMatrix pour son excellente pédagogie à travers sa super suite de tutos sur OpenGL
- Enfin un très très grand merci à David Henry, pour son excellent tutoriel sur le format MDL, sans qui rien de tout cela n'aurait pu se réaliser !
 
 
----------------------------VIDÉOS----------------------------
 
 
v0.1:
 
 
 
v0.2
 
 
 
v0.8:
 
 
 
----------------------------CHANGELOG----------------------------
 
 
v0.1: Version initale, lecture du fichier MDL puis rendu partiel du modèle (uniquement les triangles)
v0.2: Version ultérieure + avancée par l'implémentation temporaire des Vertices Lists
v0.2.5: Version + récente tout autant élaborée par l'arrivée du rendu des vecteurs normaux par Normals Lists
v0.3: Abandon du rendu par Verts/Norms/Text Coords Lists  pour un rendu bien + puissant avec le Tessellator
v0.3.1: Version + sophistiqué par l'ajout du supporty de plusieurs modèles rendus en même temps
v0.3.2: Petit soucis de taille grandisssante du modèle fixé, dû à la transition d'animations mal gérée
v0.5: Implémentation de la Shader API
v0.7: Synchronisation inter-clients fonctionnelle et persistance NBT réglable à souhait, puis transition d'animations facilitée implémentée
v0.8: Ajout de la variable uniform brightness, permettant de varier la luminosité absorbée par le rendu du modèle
v1.0: Version actuelle, portage du système d'incrémentation des animations des # entités du monde, du client vers le serveur (Meilleure sync, moins d'efforts au client, taux d'interpolation server-side désormais)
 
 
----------------------------TÉLÉCHARGEMENTS----------------------------
 
 

 

 

----------------------------UPCOMING FEATURES----------------------------
 
 
- Loader OBJ à refaire (qui supportera les .obj accompagnés de leur fichier mtl)
- Support des flags Quake (rocket, grenade, gif, rotate, random, etc...)
- Support du format md2, pour des modèles dont les textures ne seront plus sur une palette à 8 bit
- MàJ 1.8+ à effectuer, afin de profiter d'une optimisation par les VBOs/FBOs, et non plus uniquement des Display Lists
- Optimiser en ne dessinant que les triangles vus par l'utilisateur, optimiser en dessinant avec les Vertices Indices (+ GL_TRIANGLES_FAN/GL_TRIANGLES_STRIP) et optimiser en éviter les tours de boucles inutiles selon le nombre d'entités rendus à l'écran de l'utilisateur, et non plus selon les entités présentes dans le WorldClient de l'utilisateur
 
 
----------------------------CONCLUSION----------------------------
 
 
Voilà c'est tout pour la présentation de ma première librairie. J'espère que ce topic aura été suffisamment clair et bien rédigé (la mise en forme s'est révélé être mon tendon d’Achille  :'()
J'ai mis en place un petit sondage sur ce topic-ci, qui me permettra de savoir si bon nombre de personnes sont intéressées par la release et le repo github, dans le cas contraire, celle-ci restera closed-source sous une certaine license.
Si vous avez d'autres remarques constructives, n'hésitez pas à laisser un commentaire, j'y répondrai dès que possible ;)
Modifié par Plaigon
  • Like 5

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous ! Rapide message pour vous avertir que la v2.0 sortira, sauf imprévu(s), début février. Elle regroupera à la fois optimisation, gain de consommation de RAM par les modèles chargés et lecture + rapide du fichier binaire.
Alors n'oubliez pas, si d'ici là le sondage atteint les 20 réponses positives, alors je compléterai la rubrique "Téléchargement". Merci de votre attention portée et bonne soirée/journée.

Modifié par Plaigon
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci de ton retour positif !

La 2.0 sortira d'ici 1 ou 2 semaines, elle sera probablement released au public et closed source sous une certaine license.

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour, bonsoir chers lecteurs,
rapide message pour vous signaler une update du post initial.
La vidéo tuto sortira d'ici 1 ou 2 semaines, avec la v2.0, en attendant la v1.0 vous permettra tout de même d'importer des .mdl, n'hésitez pas à poser vos questions, j'y répondrai =)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites
----------------------------PRISE EN MAIN----------------------------
Nouvelle section (26/02/2018)
 
Dans ce mini-tutoriel, nous aborderont uniquement l'insertion complète (lecture, gestion en mémoire et rendu) du modèle au format .mdl dans Minecraft.
De ce fait, j'exclurai la partie "Modélisation" sous 3ds Max. Voici néanmoins deux, trois conseils pour ceux qui s'y intéresseraient:
1) Si vous débutez dans la modélisation, sachez qu'il serait judicieux d'avoir quelques bases avec le software 3ds max (raccourcis claviers, modélisation avec un blueprint, scale/translate/rotate, connaissance des principaux modiifiers, etc...).
2) Une fois votre modèle finie, vous devrez export l'uv map, et la remplir. Voici le parfait tutoriel concernant cette tâche
3) C'est bon! Vous pouvez désormais vous applaudir, le plus dur vient d'être fait, il ne vous reste plus qu'à découper votre modèle, mais vous verrez c'est très facile !
Pour découper votre modèle, la solution la + simple sera de le rig, c'est-à-dire de lui créer son enveloppe squelettique. Ensuite vous devrez appliquer le processus de "finning", puis ensuite "attacher" le bone à sa mesh dans laquelle il est "caché", où pour faire court skin le modèle 3D. Ces 3 étapes sont d'une longueur relative à la "taille" du modèle. J'ai moi même appris par une suite de vidéos tutoriels, la première ici.
4) Une fois fait, le reste ne sera que du plaisir, à savoir animer le tout ! Voilà une petite vidéo vous montrant 2 types d'animation sur 3ds max. Enfin une vidéo bonus vous montrant l'animation par suivi de trajectoire. Petit bonus: je vous mets ici à disposition un steve tout prêt à être animer, c'est cadeau !
A quoi ressemble-t-il ?
1519645218716533721.png
 
5) Une fois votre animation complètement finie, vous exporterez le modèle au format fbx. Et vous placerez ce dernier + ses textures associées dans un même dossier.
6) Enfin, la dernière étape avant la partie "code" sera de convertir le modèle du format .fbx vers .mdl. Pour ce faire vous téléchargerez noesis, que je vous mets à dispositionici, puis vous découvrirez par vous-même, c'est très intuitif ! Vous aurez sûrement un souci d'orientation du modèle une fois convertie, pas d'inquiétude, Noesis met à disposition une petite centaine de commande, tel que "rotate x y z", comme le montre ce screen:
15196453911114373393.png
 
7) Une petite étape alternative, où je vous propose de télécharger ce petit software nommé "qme31", qui vous permet de charger vos animations .mdl, afin de vous assurer qu'elles sont prêtes à être rendue ! De plus, vous pourrez afficher les caractéristiques de votre modèle, en allant sur l'onglet View, puis model properties. La fenêtre ressemblera à ceci, s'offrant une organisation en plusieurs catégories (bounds, skin, eye position, etc...):
15196450711535781148.png
 
Voici son lien de téléchargement
 
[PARTIE CODE EN RÉDACTION...]
 

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 1 heure, Plaigon a dit :

Bonjour à tous et à toutes, nouvelle annonce, les sources sont désormais disponibles à cette adresse de téléchargement

Pourquoi pas sur github ? Car peut être que des gens voudraient contribuer (après ce n'est peut être pas ce que tu veux). Sinon c'est super de rendre ça open source !

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×