Sondage : Seriez vous intéressé par la release et la publication du code source ?
Ce sondage est fermé.
Oui
100.00%
11 100.00%
Non
0%
0 0%
Total 11 vote(s) 100%
* Vous avez voté pour cette proposition. [Voir les résultats]

Plaig4Anims, la solution idéale pour vos animations !
Note de ce sujet :
  • Moyenne : 5 (2 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
[Image: 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 3D au format obj, puis d'animations au format mdl (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 talentueux graphiste très sympatique, sans qui cette librairie n'aurait jamais pu revêtir ce magnifique logo !
- steinert1801 (alis Sven), habile développeur germanique, qui par son soutient, a permis l'implémentation de son incroyable et délicieuse Shader API
- ThinMatrix pour son excellente pédagogie à travers sa super suite de tutos sur OpenGL
- Yanis qui fut mon ami, mon confident, celui qui m'a redonné du courage, dans les pires moments de détresse du développement, merci à lui <3
- 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ÉCHARGEMENT



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 des groupes de textures pour les animations de textures.
- Support du format md2, pour des modèles dont les textures ne seront plus sur une palette à 8 bit


BUGS A FIX/TODO LIST


- Économiser la mémoire allouée à une instance de modèle animé, car jugé encore trop coûteuse
- Accélérer la lecture (par la librairie) d'un fichier mdl
- 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 talon d’Achille  Pleurs)
J'ai mis en place un petit sondage, 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 Clin d'oeil
Répondre
#2
Whaaa, c'est un projet énorme et impressionnant.
Je pense que beaucoup ici seront intéressé de voir cette bibliothèque publiée ^^
Répondre
#3
J'adore  Surpris les vidéos rendent tellement bien ! Après faut voir l'opti, j'espère que ça passe.
Répondre
#4
Merci des retours.
Oui, l'optimisation reste un point à travailler, comme le mentionne la section "Upcoming features".
Répondre
#5
Wha c'est génial et ça serait vraiment bien utile ^^
Gg et vivement le passage en 1.8+ Clin d'oeil
Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.
N'hésitez pas à m'envoyer des idées de tuto, je compte en faire 1 un de ces jours.

Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.
Répondre
#6
Cela mériterai aussi un post sur Minecraft Forum. Sourire
Répondre
#7
WOAW.

Voilà un parfait remplaçant à la CS API !
Du très très beau travail l'ami !
Si je t'ai filé un coup de main n'oublie pas le + / -
Par contre évite les demandes d'aides en MP, tu sera sympa'

La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

[img=0x0]https://github.com/Leviathan-Studio/CraftStudioAPI/raw/master/images/cs-api.png[/img]
Répondre
#8
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.
Répondre
#9
Je ne te savais pas aussi compétent Plaigon, en tout cas moi cette API me fait les yeux, c'est très exactement mon domaine d'activité alors je ne peux que te remercier pour la qualité du travail accomplis et à venir
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)