Modèles personnalisés
EliteMobs prend en charge les modèles personnalisés via Model Engine et FreeMineCraftModels.
Avant-propos
Du point de vue d'EliteMobs, le système de modèles personnalisés est très simple, car la seule chose que les administrateurs ont à faire est d'ajouter une ligne au fichier de configuration d'un PNJ ou d'un Boss personnalisé pour lui indiquer quel modèle personnalisé utiliser. Cependant, il est nécessaire de suivre les bonnes étapes avec Model Engine et Minecraft pour que ce système soit pleinement fonctionnel, et celles-ci ne sont pas aussi faciles à appréhender.
Ce guide détaillera l'interface avec Model Engine et Minecraft. Il ne vous expliquera pas comment utiliser Blockbench pour créer des boss personnalisés, ni ne détaillera le fonctionnement de Model Engine. Il existe déjà de nombreux guides à ce sujet ailleurs, et si vous souhaitez en savoir plus sur ces systèmes, il vaut mieux consulter directement leur documentation.
FreeMineCraft Models
Si vous voulez apprendre comment utiliser FMM pour faire fonctionner vos modèles, vous pouvez consulter cette page wiki pour en savoir plus.
Intégration LibsDisguises
EliteMobs prend également en charge LibsDisguises comme alternative aux modèles personnalisés. Lorsque les modèles personnalisés ne sont pas configurés, EliteMobs peut utiliser LibsDisguises pour modifier l'apparence des entités. Cette intégration gère automatiquement la synchronisation de la visibilité des noms.
Pour utiliser LibsDisguises au lieu des modèles personnalisés, configurez les paramètres de déguisement de votre boss/PNJ sans spécifier de champ customModel.
Modèles d'objets scriptés (FMM)
Les objets personnalisés d'EliteMobs peuvent utiliser le système d'objets scriptés de FreeMinecraftModels pour un comportement avancé modèle + script Lua. Cela va au-delà des modèles personnalisés statiques — les objets scriptés peuvent réagir à l'équipement, l'attaque, le clic droit, et 19 autres événements d'objet via des scripts Lua.
Pour utiliser cela, définissez le champ scriptedItem dans la configuration de votre objet personnalisé sur l'ID d'objet FMM. EliteMobs gère le nom, le lore, les enchantements et le niveau ; FMM fournit le modèle 3D et le comportement du script.
# Exemple de configuration d'objet personnalisé EliteMobs
material: IRON_SWORD
name: "&cFlame Blade"
enchantments:
- "FIRE_ASPECT,2"
scalability: scalable
scriptedItem: flame_blade
Consultez le guide Premiers pas Lua FMM pour écrire des scripts d'objets, et le guide API FMM pour les détails d'intégration développeur.
Configuration requise
EliteMobs, Model Engine R3.0.0* ou ultérieur OU FreeMinecraftModels, Blockbench**, et un Resource Pack Minecraft.
* Ce plugin peut avoir d'autres dépendances. Consultez la documentation de leur côté.
** Nécessaire pour créer et modifier des modèles personnalisés. Non nécessaire si vous cherchez simplement à installer du contenu sans le modifier.
Si ModelEngine et FreeMinecraftModels sont tous deux installés, EliteMobs utilisera FreeMinecraftModels par défaut. Un seul plugin de modèle personnalisé sera actif à la fois.
Configurer manuellement un modèle personnalisé
Note : Ce guide suppose que vous disposez déjà d'un modèle personnalisé valide. Ceux-ci se présentent au format de fichier Blockbench (.bbmodel).
EliteMobs peut utiliser des modèles personnalisés pour les PNJ et les Boss personnalisés. Le processus est le même pour les deux, et se déroule comme suit :
Étape 1. Configuration d'EliteMobs
Allez dans le fichier de configuration du Boss personnalisé ou du PNJ que vous souhaitez modifier et ajoutez la ligne suivante :
customModel: modelname
Remplacez modelname par le nom de votre modèle. Le nom est celui du fichier de modèle personnalisé que vous utilisez. Par exemple, le fichier de modèle personnalisé du Boss de test est showcase_boss.bbmodel. L'option de configuration devrait donc être :
customModel: showcase_boss
Et c'est tout pour EliteMobs ! Maintenant, les choses se compliquent un peu.
Étape 2. Générer les données de Model Engine
Note : En cas de doute ou de problème, consultez le wiki de Model Engine ici.
- Placez votre fichier Blockbench de modèle personnalisé (
.bbmodel) dans le répertoire(votreServeur)/plugins/ModelEngine/blueprints. - Exécutez la commande
/meg reload. Si tout a fonctionné correctement, vous devriez obtenir un message indiquant[Model Engine] X models loaded, oùxest le nombre de modèles que vous avez enregistrés.
Étape 3. Distribution du Resource Pack
C'est sans doute la partie la plus délicate si vous souhaitez que votre serveur gère les téléchargements. Essayez de vérifier que le système fonctionne lorsque vous avez le resource pack sur votre client avant de chercher à le distribuer automatiquement !
- Allez dans le répertoire
(votreServeur)/plugins/ModelEngine/resource packet créez un resource pack à partir de ces données ou ajoutez le dossierassetsqui s'y trouve dans lesassetsde votre resource pack.- Si vous créez un nouveau resource pack, vous pouvez mettre les fichiers dans
resource packdans un fichier compressé, et ce sera un resource pack valide que vous pourrez distribuer. Plus d'infos. - Si vous avez déjà un resource pack, assurez-vous de ne pas écraser accidentellement des modèles existants. Plus d'infos.
- Si vous créez un nouveau resource pack, vous pouvez mettre les fichiers dans
- Distribuez votre resource pack à vos joueurs. Seuls les joueurs disposant du resource pack pourront voir les modèles personnalisés, et le rendu sera très étrange et cassé pour tous les autres. Si vous prévoyez d'utiliser intensivement ces modèles, vous voudrez peut-être forcer l'utilisation du resource pack.
- (Optionnel) Pour permettre aux joueurs de télécharger un resource pack à la connexion, vous devrez héberger le fichier en ligne et modifier le champ
resource-pack=dans server.properties pour pointer vers cette adresse.* - (Optionnel) Si vous modifiez les resource packs, vous voudrez utiliser l'option
resource-pack-sha1=pour que le serveur puisse vérifier si le resource pack du joueur doit être mis à jour. Pour générer cette valeur, téléchargez votre resource pack sur http://onlinemd5.com/ et assurez-vous de choisir l'option SHA1. Vous devrez le faire à chaque mise à jour de votre Resource Pack, sinon vos utilisateurs ne recevront pas la mise à jour.* - (Optionnel) Pour forcer les joueurs à utiliser les resource packs, utilisez l'option
require-resource-pack=truedans server.properties.*
- (Optionnel) Pour permettre aux joueurs de télécharger un resource pack à la connexion, vous devrez héberger le fichier en ligne et modifier le champ
Si vous avez modifié server.properties, vous devrez redémarrer !
* Note : Il existe de nombreux guides en ligne qui peuvent vous aider à faire fonctionner tout cela si ces instructions ne vous suffisent pas.
Fusionner les resource packs
Si vous avez besoin de fusionner vos resource packs, vous pouvez le faire manuellement. Mais nous recommandons d'utiliser un outil en ligne tel que merge.elmakers pour fusionner vos resource packs.
Étape 4. Espérer que ça fonctionne
En supposant que tout a été fait correctement, vous devriez maintenant pouvoir voir le modèle personnalisé sur votre boss ou PNJ. Vous pouvez les faire apparaître via les commandes :
- Boss personnalisé :
/em spawn boss filename.yml - PNJ :
/em place npc filename.yml
Vous pouvez ensuite les supprimer via la commande /em remove.
Créer et adapter des modèles personnalisés pour EliteMobs
EliteMobs peut utiliser tout modèle considéré comme valide par Model Engine, ce qui signifie qu'il y a peu de choses impossibles à réaliser.
Cependant, en ce qui concerne les animations, l'utilisation de noms spécifiques est requise pour garantir que les boss puissent les utiliser.
Ces noms d'animation sont ceux définis dans Blockbench dans l'onglet des animations. Vous pouvez les renommer à tout moment, ce qui signifie que vous pouvez adapter n'importe quel modèle existant pour qu'il fonctionne avec EliteMobs.
Animations
Veuillez noter que cette section est encore en expansion, car ce système est encore très récent. D'autres éléments y seront ajoutés au fur et à mesure des demandes de fonctionnalités.
idle
idle est le nom d'animation pour les entités qui ne sont pas en combat et ne se déplacent pas. EliteMobs initialise le modèle avec l'état idle mais ne remplace pas le système d'animation idle intégré de ModelEngine. Le modèle utilisera automatiquement cette animation via le comportement par défaut de ModelEngine/FMM.
walk
walk est le nom d'animation pour les entités en déplacement. EliteMobs initialise le modèle avec l'état walk mais ne remplace pas le système d'animation walk intégré de ModelEngine. Le modèle utilisera automatiquement cette animation via le comportement par défaut de ModelEngine/FMM.
attack
Il existe trois types d'animations d'attaque :
attack
attack est le nom d'animation générique correct lorsqu'un boss attaque.
attack_melee
attack_melee est le nom d'animation correct pour les attaques effectuées lorsqu'un Boss personnalisé attaque une entité en utilisant une attaque de mêlée vanilla de Minecraft. Remplace attack. Veuillez noter que l'animation est jouée après que les dégâts sont infligés. C'est malheureusement une limitation pour le moment. Par conséquent, essayez de rendre l'animation très rapide.
attack_ranged
attack_ranged est le nom d'animation correct pour les attaques effectuées lorsqu'un Boss personnalisé lance un projectile. Remplace attack. Veuillez noter que l'animation est jouée après que le projectile est tiré. C'est malheureusement une limitation pour le moment. Par conséquent, essayez de rendre l'animation très rapide.
Système de repli des animations
EliteMobs utilise un système de repli pour les animations d'attaque :
- Si
attack_meleen'est pas défini, il se rabat surattack - Si
attack_rangedn'est pas défini, il se rabat surattack - Si
attackn'est pas défini, aucune animation n'est jouée
Cela vous permet de créer une seule animation d'attaque qui fonctionne pour tous les types d'attaque, ou de créer des animations spécialisées pour la mêlée vs le combat à distance.
damaged
L'animation damaged n'est actuellement pas implémentée. Cette fonctionnalité est prévue pour une version future. Les modèles ne joueront pas automatiquement les animations de dégâts lorsqu'ils sont touchés.
death
death est le nom d'animation correct pour l'animation de mort. EliteMobs ne modifie pas le système d'animation idle par défaut utilisé par Model Engine.
powers
Les animations de pouvoirs ne sont PAS ENCORE IMPLÉMENTÉES. Cette fonctionnalité est prévue pour une version future.
Note : ce segment est encore en développement. Ce qui suit décrit les fonctionnalités telles qu'elles sont planifiées.
Chaque pouvoir dans EliteMobs peut avoir une animation qui lui est assignée. L'animation commence toujours lorsque le pouvoir est déclenché, et aucun autre déclencheur n'est actuellement fourni tout au long de l'utilisation du pouvoir. Certains pouvoirs, comme les invulnérabilités, ne feront rien car ils n'ont pas de déclencheurs et sont simplement des propriétés passives des boss.
Pour assigner une animation à un pouvoir, l'animation doit être nommée de la même manière que le fichier de pouvoir EliteMobs.
Par exemple, pour ajouter une animation au pouvoir zombie necronomicon, l'animation devrait s'appeler zombie_necronomicon.yml. Elle commencera à jouer dès que le pouvoir sera déclenché, et se terminera lorsque l'animation se termine si elle n'est pas configurée en boucle ou lorsque le pouvoir est terminé.
Importer des modèles personnalisés depuis des donjons
Étape 1. Import normal
Lors de l'importation d'un dossier compressé de dungeon packager contenant des modèles personnalisés, ceux-ci sont automatiquement déplacés vers (votreServeur)/plugins/ModelEngine/blueprints et Model Engine se recharge automatiquement pour générer le resource pack et les fichiers Model Engine correspondants.
Étape 2. Resource Pack
EliteMobs exporte automatiquement ses fichiers de resource pack intégrés dans le dossier (votreServeur)/plugins/EliteMobs/resource_pack au démarrage. Cet export utilise une comparaison de checksum pour éviter les copies inutiles, de sorte que les fichiers ne sont mis à jour que lorsque la version du plugin change.
Vous devrez fusionner ces fichiers de resource pack avec les fichiers de resource pack de Model Engine et distribuer le resource pack combiné à vos joueurs. Seuls les joueurs disposant du resource pack pourront voir les modèles personnalisés.
Dépannage
Problèmes courants :
-
Modèle non visible :
- Vérifiez que
/meg reloadmontre que votre modèle est chargé - Vérifiez que le resource pack est installé sur le client
- Assurez-vous que le nom customModel correspond au nom du fichier .bbmodel (sans extension)
- Vérifiez que
-
Animations qui ne jouent pas :
- Vérifiez que les noms d'animation dans Blockbench correspondent exactement aux noms documentés
- Vérifiez que les animations ne sont pas configurées en boucle si elles ne doivent jouer qu'une fois
- Testez les animations individuelles en utilisant les commandes de Model Engine
-
Les deux plugins installés :
- EliteMobs utilisera FreeMinecraftModels si les deux sont présents
- Pour forcer ModelEngine, désinstallez FreeMinecraftModels