RenderPlayer custom



  • Bonjour 🙂 ,

    dans le cadre d'un mod, j'aimerai pouvoir modifier la texture du joueur et le modèle joueur lorsqu'un effet de potion est actif sur lui (Un peu comme hulk lorsqu'il s'énerve ^^). J'ai regardé un peu dans le RenderPlayer et ModelBiped et j'imagine que c'est là dedans qu'il va falloir que je bidouille (mais je sais pas trop comment).

    Dois-je utiliser un event du type RenderPlayerEvent ?
    Et, est-ce possible de carrément faire un RenderPlayer custom qui hérite du RenderPlayer, et de l'instancier quand un joueur boit la potion ?

    Merci pour les pistes que vous pourriez me donner  😄



  • Je sais pas si c'est très légal, car normalement tu n'as pas le droit de détourner les serveurs de skins alors changer la texture du joueur doit être considéré pareil.

    Soit t'utilises le RenderPlayerEvent pour dessiner quelque chose en plus ou alors tu peux rajouter un layer (comme pour les chapeaux ou les choses dans le genre)



  • Sinon t'as Render Player API. Si tu la trouves plus facile que l'event, à toi de voir 😃



  • Je ne pense pas que ça ne soit pas légal du temps que le skin ne reste pas 3 ans et que le gars a un compte premium car ça reviens pareil que de changer de skin 5 sec et de remettre alncien



  • Oh, vous pensez que le CLUF de mojang empêche de changer la texture du joueur ? (Temporairement vu qu'il s'agit d'un effet potion).

    Je me suis posé la question de Render Player API mais, j'ai peur de la compatibilité avec Optifine (peut être à tort ^^), et pour le layer, il ne faut pas modifier le modèle joueur ? (Dans le constructeur de ModelBiped).



  • Tu n'as pas besoin de changer le model du joueur, tu as juste à dessiner un model par dessus ou changer la texture


  • Moddeurs confirmés Rédacteurs Administrateurs

    @Tout le monde
    Il ne cherche pas à détourner le serveur de skin, c'est juste modifier le modèle d'un joueur suite à un effet de potion. Cela ne cause aucun soucis.

    Personnellement je passerai par l'event RenderPlayerEvent.Pre
    Tu peux cancel ce dernier, le rendu ne sera plus effectué. Ensuite libre à toi de réécrire le code de rendu avec un autre modèle. Mais ce n'est pas simple.



  • Merci pour vos conseils  🙂

    Du coup, j'ai fait quelques tests, et j'ai bien quelques soucis ^^
    Je suis passé par le RenderPlayerEvent.pre, et j'ai utilisé ObfuscationReflectionHelper pour changer le modèle joueur (ModelBiped) par mon modèle custom (qui hérite de ModelBiped dans RendererLivingEntity.
    Y a quelques petits soucis par contre, notamment avec la texture que je sais pas comment changer et avec l'item tenu en main, qui reste statique au lieu de suivre le mouvement de celle-ci (j'ai essayé de trouver où c'était géré, mais la recherche à été infructueuse).


  • Moddeurs confirmés Rédacteurs Administrateurs

    Pour la texture un truc pas très propre mais qui devrait fonctionner est de bind cette dernière dans la fonction render du modèle (avant les nomDuMorceau.render(..); ).

    Pour le mouvement de l'item, je ne sais pas.



  • J'ai réussi à corriger le pb de l'item qui ne suit pas le mouvement des bras en faisant hériter mon modèle custom de ModelBiped.

    Par contre, comme mon modèle custom est plus grand que le modèle joueur classique, la position de l'item dans l'espace (désormais en mouvement en fonction du mouvement des bras) reste à la même place, et donc flotte dans le vite.
    Je ne trouve pas du tout où est géré le rendu de l'item en vue 3ème personne, et comment le déplacer vers le haut pour qu'il soit tenu dans la main du nouveau modèle.

    Si vous avez une piste, je suis preneur. 🙂

    Merciiiii


  • Correcteurs

    Tu trouveras ta réponse dans les tutos sur les rendus 3D qui sont sur le forum.



  • @'Toutoune1008':

    Tu trouveras ta réponse dans les tutos sur les rendus 3D qui sont sur le forum.

    D'accord, merci 🙂

    Du coup, j'ai pu regarder et j'ai trouvé la solution.

    C'est résolu !


Log in to reply