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).
 
 
----------------------------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----------------------------
 
 
Spoiler

A 50000 poce blo je donne lien pour télécharger !

200000 poce blos en fait...

 

 

----------------------------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 3

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

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

×