Problème modèle non adapté Backpack mod & Smart Moving



  • Salut
    J'ai pour mission de corriger un bug de rendu / modèle 3D qui survient lorsqu'on installe les mods backpack et smart moving. Pour être plus précis, comme le mod smart moving refait complétement le modèle / render du joueur à l'aide des API's Player API & Render Player API, certains mods se retrouvent incompatible, comme backpack mod, où l'on peut observer que le modèle du sac à dos censé être dans le dos du joueur ne l'est pas du tout lorsque le joueur plonge, vole en position horizontale, nage en profondeur, s'accroupit et rample, etc…De plus j'ai aussi remarqué que le sac à dos ne suivait pas les directions du joueur, en gros il ne bouge pas, il n'est orienté que vers une seule direction et ne bouge pas. Pour y remédier dans l'absolu, j'ai fait un petit GL11.glRotatef sur l'axe des Y avec comme valeur la rotationYaw du joueur, ça corrige un peu le bug, désormais le sac à dos s'oriente de la même manière que les autres shapes du modèle du joueur, mais le résultat n'est pas non plus parfait 😕
    Je vous laisse constater par vous mêmes sur ce gif :

    Voici mon dossier src, puisqu'il y a énormément de classes ^^' Il faut importer Player API et Render Player API
    Pour info : ma modif avec le GL11.glRotatef se situe à la ligne 150 de la classe SmartRenderModel, du package net.smart.render
    J'ai aussi fait quelque petites modifs mais rien de bien concrets vers les lignes ~350 de la classe SmartMovingModel (avec une boucle for)
    C'est tout ce que j'ai fait 😞
    Effectivement, j'ai beaucoup (énormément !) de mal avec les rendus, je n'y comprends pas toujours, même si j'essaie de faire de mon mieux. Voilà pourquoi je me retrouve ici à vous demander de l'aide x)
    Merci d'avance 😃
    Hé pssst, celui qui trouve la solution aura ma reconnaissance éternelle :3



  • Si le model est un extends de ModelBiped tu peut essayer ça :
    copyModelAngles(this.bipedBody, sac); (existe ne 1.8.9 mais je suis pas sûr que ça existe en 1.7.10)



  • D'où vient ta méthode copyModelAngles ? De Render Player API ? Je n'arrive pas à la trouver, et puis où souhaites-tu que je rajoutes ceci ? Et le ModelBackpack est bien extends de ModelBiped pour répond à ta question



  • @'Plaigon':

    D'où vient ta méthode copyModelAngles ? De Render Player API ? Je n'arrive pas à la trouver, et puis où souhaites-tu que je rajoutes ceci ? Et le ModelBackpack est bien extends de ModelBiped pour répond à ta question

    copyModelAngles viens de ModelBiped et je pensais modifier la class du model du BackPack et mettre la fonction dans setRotationAngles ( mais je viens de me dire que tu peut peut-être pas modifier cette class, si ?)



  • Cette méthode n'existe pas, en tout en 1.7.10. Je ne la trouve pas dans ModelBiped.java
    Ne peux-tu pas sinon (seulement si t'as le temps ^^'), download mes sources et regarder de + près ce qu'il en est, car c'est pas facile je trouve 😕



  • @'Plaigon':

    Cette méthode n'existe pas, en tout en 1.7.10. Je ne la trouve pas dans ModelBiped.java
    Ne peux-tu pas sinon (seulement si t'as le temps ^^'), download mes sources et regarder de + près ce qu'il en est, car c'est pas facile je trouve 😕

    Je verrai ça demain !



  • Alors, je pence qu'il faut modifier GL11.glRotatef (là où tu l'a mis : dans la class SmartRenderModel), de manière à avoir la même rotation que le corps du joueur. Je pensais à quelque chose comme :

    GL11.glRotatef(bipedBody.rotateAngleX, 1, 0, 0);
    GL11.glRotatef(bipedBody.rotateAngleY, 0, 1, 0);
    GL11.glRotatef(bipedBody.rotateAngleZ, 0, 0, 1);
    

    ( Je n'ai pas encore pu tester moi-même, je ne sais pas comment importer tout les mods/API nécessaires )



  • Je teste sa ce week end quand je rentrerai chez moi.
    Pour importer les mods, il te suffit juste de mettre dans un dossier libs de ta workspace, les mods Render Player API et Player API. Une fois fait, il te suffit juste d'exécuter gradlew eclipse