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 doivent faire est d'ajouter une ligne au fichier de configuration d'un PNJ ou d'un Boss Personnalisé lui indiquant quel Modèle personnalisé utiliser. Cependant, il est nécessaire de suivre les bonnes étapes avec Model Engine et Minecraft afin de rendre ce système pleinement fonctionnel, et celles-ci ne sont pas aussi faciles à appréhender.
Ce guide entrera dans les détails en ce qui concerne l'interfaçage avec Model Engine et Minecraft. Il ne vous dira pas comment utiliser Blockbench pour créer des boss personnalisés, ni n'entrera dans les détails sur le fonctionnement de Model Engine. Il existe déjà de nombreux guides expliquant comment faire cela ailleurs, et si vous voulez en savoir plus sur ces systèmes, vous serez mieux servi en consultant 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.
FreeMinecraftModels utilise désormais un os tag_ défini par l'auteur, comme tag_head, s'il existe, sinon une position au-dessus de la hitbox du modèle. L'ancrage permet de choisir la position, mais n'est plus obligatoire pour afficher un nom. FMM gère toute la plaque, y compris les lignes de nom et de rôle des PNJ EliteMobs. Les anciennes versions de FMM peuvent encore exiger un ancrage.
Prise en Charge de Bedrock (Geyser)
La capacité des joueurs Bedrock (se connectant via Geyser/Floodgate) à voir les modèles personnalisés dépend entièrement de votre plugin de modèles (ModelEngine ou FreeMinecraftModels) et de la configuration de votre resource pack, et non d'EliteMobs. EliteMobs détecte bien les clients Bedrock, mais il utilise cette information pour des choses comme le rendu des menus et le positionnement des nametags — il ne génère ni ne sert un modèle distinct compatible Bedrock. Référez-vous à la documentation de votre plugin de modèles pour la prise en charge des modèles Bedrock/Geyser.
Intégration de LibsDisguises
EliteMobs prend aussi en charge LibsDisguises comme alternative aux modèles personnalisés. Un modèle configuré et disponible est prioritaire sur un déguisement ; en l'absence de modèle utilisable sélectionné, le déguisement configuré peut être utilisé. Cette intégration synchronise la visibilité du nom.
Pour utiliser LibsDisguises, configurez le déguisement du boss/PNJ sans définir de champ customModel.
Modèles d'objets et armes magiques (FMM)
Utilisez fmmItemModel pour la présentation des objets FMM, avec weaponType: WANDS ou weaponType: STAVES pour une arme magique définie par son auteur. EliteMobs conserve le nom, le lore, les enchantements et le niveau. FMM fournit le modèle et, pour les armes magiques, la définition de l'attaque.
L'ancien pont scriptedItem reste disponible pour l'identité et l'affichage des objets. Il n'exécute plus de scripts Lua d'objets équipés, et FMM refuse les définitions d'objets contenant une liste scripts non vide. Ne le combinez pas avec une arme magique définie par son auteur.
# Example EliteMobs custom item config
material: IRON_SWORD
name: "&cFlame Blade"
enchantments:
- "FIRE_ASPECT,2"
scalability: scalable
fmmItemModel: flame_blade
L'objet ou le modèle FMM référencé doit exister. Un modèle de présentation manquant peut laisser le matériau vanilla visible avec un avertissement ; un weaponType explicite ne correspondant pas à une arme définie et disponible fait échouer la construction de l'objet. Consultez les armes magiques FMM et la configuration des objets personnalisés.
Exigences minimales
EliteMobs, une version compatible de FreeMinecraftModels ou une intégration ModelEngine*, Blockbench** et un pack de ressources Minecraft. L'intégration ModelEngine cible l'API R3 : EliteMobs ne la sélectionne que si ModelEngine est activé et que sa version contient R3. Une version majeure plus récente n'est pas automatiquement compatible.
* 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. Pas nécessaire si vous cherchez simplement à installer du contenu sans le modifier.
Si à la fois ModelEngine et FreeMinecraftModels sont installés, EliteMobs utilisera FreeMinecraftModels par défaut. Un seul plugin de modèles personnalisés sera actif à la fois.
Définir 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 est capable d'utiliser des Modèles personnalisés pour les PNJ et les Boss Personnalisés. Le processus pour le faire est le même pour les deux, et se déroule comme suit :
Étape 1. Configurer la config EliteMobs
Allez dans le fichier de configuration du Boss Personnalisé ou du PNJ que vous voulez modifier et ajoutez la ligne suivante :
customModel: modelname
Remplacez modelname par le nom de votre modèle. Le nom est le nom du fichier de Modèle personnalisé que vous utilisez. Par exemple, le fichier de Modèle personnalisé du Test Boss est showcase_boss.bbmodel. Ainsi, l'option de configuration devrait être
customModel: showcase_boss
Et c'est tout pour EliteMobs ! Maintenant, ça devient un peu plus délicat.
Étape 2. Générer les données de Model Engine
Les chemins suivants proviennent du guide d'importation archivé de ModelEngine. Suivez les instructions correspondant à votre version installée de ModelEngine.
- Placez votre fichier Blockbench de Modèle personnalisé (
.bbmodel) dans le répertoire(yourServer)/plugins/ModelEngine/blueprints. - Exécutez la commande de rechargement des modèles de votre version de ModelEngine ; le guide archivé utilise
/meg reload models. Vérifiez la présence du modèle dans le registre chargé et les erreurs en console.
Étape 3. Distribuer le Resource Pack
C'est possiblement la partie la plus délicate si vous cherchez à faire en sorte que votre serveur gère les téléchargements. Essayez de vérifier si le système fonctionne lorsque vous avez le resource pack sur votre client avant de chercher à le distribuer automatiquement !
- Allez dans le répertoire
(yourServer)/plugins/ModelEngine/resource packet créez un resource pack à partir de ces données ou ajoutez le dossierassetsqui s'y trouve auxassetsde votre resource pack- Pour un nouveau pack, placez
assetset unpack.mcmetavalide à la racine du ZIP. Utilisez des métadonnées compatibles avec votre client ; ne recopiez pas les anciens numéros de format des exemples archivés. 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.
- Pour un nouveau pack, placez
- Distribuez votre resource pack à vos joueurs. Seuls les joueurs qui ont le resource pack pourront voir les Modèles personnalisés, et cela aura l'air très étrange et cassé pour tous les autres. Si vous comptez en faire un usage intensif, vous pourriez vouloir forcer l'utilisation du resource pack.
- (Facultatif) Pour permettre aux joueurs de télécharger un resource pack à la connexion, vous devrez héberger le fichier quelque part en ligne et changer le champ
resource-pack=de server.properties pour qu'il pointe vers cette adresse.* - Pour les téléchargements automatiques, définissez
resource-pack-sha1=avec le SHA-1 du ZIP final. Calculez-le localement dans PowerShell avec(Get-FileHash -LiteralPath "pack.zip" -Algorithm SHA1).Hash.ToLowerInvariant()ou sous Linux avecsha1sum pack.zip. Copiez uniquement les 40 caractères du hash et actualisez-le à chaque modification du ZIP. - (Facultatif) Pour forcer les joueurs à utiliser les resource packs, utilisez l'option
require-resource-pack=truedans server.properties.*
- (Facultatif) Pour permettre aux joueurs de télécharger un resource pack à la connexion, vous devrez héberger le fichier quelque part en ligne et changer le champ
Si vous avez modifié server.properties, vous devrez redémarrer !
* Note : Il existe beaucoup de guides en ligne qui peuvent vous aider à faire fonctionner cela si ces instructions ne vous aident pas.
Fusionner les resource packs
Vous pouvez fusionner les packs manuellement ou utiliser ResourcePackManager pour le système de packs Nightbreak. Un outil externe tel que merge.elmakers peut combiner les ZIP, mais vous devez résoudre les conflits d'identifiants de modèle et vérifier le pack combiné dans le client cible.
Étape 4. Vérifier le modèle
Une fois le registre chargé et le pack correspondant appliqué au client, vérifiez le modèle sur un boss ou PNJ réel. Ces commandes doivent être exécutées par un joueur possédant la permission correspondante :
- Boss personnalisé :
/em spawn boss filename.yml—elitemobs.place.admin, apparition à l'endroit que vous regardez. - PNJ :
/em place npc filename.yml—elitemobs.place.npc, enregistre un placement permanent à votre position.
/em remove active ou désactive le mode suppression. Frappez la cible pour la supprimer, puis relancez la commande pour quitter ce mode. Supprimer ainsi un PNJ placé efface aussi son placement enregistré.
Créer et adapter des Modèles personnalisés pour EliteMobs
Utilisez un modèle pris en charge et correctement chargé par le fournisseur sélectionné. Sa compatibilité et les fonctions de modèle qu'il prend en charge restent applicables.
Cependant, en ce qui concerne les animations, l'utilisation de noms spécifiques pour les animations est requise pour garantir que les boss puissent utiliser les animations.
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
Utilisez les noms d'animation suivants pour les hooks automatiques fournis par EliteMobs.
idle
idle est le nom conventionnel de l'animation de repos. EliteMobs démarre un modèle ModelEngine dans son état de repos par défaut ; la sélection ultérieure des animations de repos et de mouvement appartient au fournisseur.
walk
walk est le nom conventionnel de l'animation de mouvement. EliteMobs ne la démarre pas explicitement lors de l'attachement du modèle ; sa sélection appartient à ModelEngine/FMM.
attack
Il existe trois types d'animations d'attaque :
attack
attack est le nom d'animation générique correct pour lorsqu'un boss attaque.
attack_melee
attack_melee remplace attack lorsqu'un boss personnalisé est la source directe d'un événement Bukkit de dégâts entre entités. L'animation est demandée pendant le traitement de l'événement, pas comme une préparation retardant le coup. Les événements déjà annulés sont ignorés ; un listener ultérieur peut encore annuler les dégâts. Utilisez une animation courte plutôt que de compter sur elle pour programmer les dégâts.
attack_ranged
attack_ranged remplace attack lorsqu'un événement d'apparition de projectile identifie un boss personnalisé comme tireur vivant. L'animation répond à l'apparition du projectile, sans retarder le tir jusqu'à sa fin. Les projectiles sans cette association de tireur ne déclenchent pas ce hook automatique.
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, se replie surattack - Si
attack_rangedn'est pas défini, se replie surattack - FMM vérifie que
attackexiste avant de la jouer ; l'adaptateur ModelEngine transmet ce nom de repli à son gestionnaire d'animations
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 les attaques de mêlée vs à distance.
damaged
EliteMobs n'enregistre pas de hook automatique pour damaged. La teinte de dégâts ou les autres réactions visuelles du fournisseur sont distinctes de la lecture de cette animation nommée.
death
Lors d'EliteMobDeathEvent, EliteMobs demande death sur le modèle d'un boss personnalisé si cette animation existe. La suppression et les changements de phase ne sont pas des événements de mort. La lecture et le nettoyage du modèle restent soumis au cycle de vie du fournisseur.
powers
Il n'existe pas de correspondance automatique entre les noms de pouvoirs et les noms d'animations du modèle.
Il n'y a pas de correspondance automatique, mais les deux systèmes de scripts peuvent lancer explicitement une animation par son nom :
- EliteScript : l'action
PLAY_ANIMATION, avec le nom de l'animation comme valeur. Elle résout chaque cible en boss personnalisé et joue l'animation sur son modèle. - Lua :
context.boss:play_model_animation("animation_name").
Dans les deux cas, rien ne se passe si le modèle n'a pas cette animation ou si le boss n'a pas de modèle personnalisé.
Importer des Modèles personnalisés depuis des donjons
Étape 1. Import normal
Lors de l'importation d'un dossier zippé de packager de donjon contenant des Modèles personnalisés, les Modèles personnalisés sont déplacés vers le plugin de modèles installé :
- FreeMinecraftModels installé — les modèles vont dans
(yourServer)/plugins/FreeMinecraftModels/models(ou l'ancien dossierModelss'il existe déjà), et les fichiers.bbmodelsont convertis en.fmmodelau passage. EliteMobs déclenche ensuite un événement d'installation de modèles afin que FMM reconstruise son registre de modèles. - ModelEngine seul installé — les modèles vont dans
(yourServer)/plugins/ModelEngine/blueprints. L'importateur commun actuel ne recharge pas ModelEngine automatiquement ; reconstruisez ses modèles et son pack avec la commande adaptée à cette version.
Après qu'un import lance une reconstruction des modèles FMM, EliteMobs attend l'état initialisé de FMM pendant 300 secondes maximum (cinq minutes). Un échec ou une désactivation de FMM, un délai dépassé ou une attente interrompue arrête l'initialisation d'EliteMobs avant le chargement de modèles et d'objets incomplets. Consultez les erreurs des deux plugins, résolvez le problème, puis redémarrez ; il ne s'agit pas d'un démarrage réussi omettant simplement quelques entités modélisées.
Étape 2. Resource Pack
Au démarrage, EliteMobs exporte son pack intégré dans (yourServer)/plugins/EliteMobs/resource_pack/em_rsp_defaults et enregistre .rsp_checksum dans le dossier parent. La copie est ignorée si les sommes intégrée et enregistrée correspondent et si em_rsp_defaults existe. Un changement de version ne force pas l'export ; la correspondance des sommes ne vérifie pas chaque fichier exporté pour détecter les modifications ou suppressions locales. Le remplacement utilise un échange de dossiers préparé à l'avance ; conservez vos modifications de pack en dehors de ce dossier généré.
Vous devrez fusionner ces fichiers de resource pack avec tous les fichiers de resource pack de Model Engine et distribuer le resource pack combiné à vos joueurs. Seuls les joueurs qui ont le resource pack pourront voir les Modèles personnalisés.
Dépannage
Problèmes courants :
-
Modèle non visible :
- Vérifiez que le registre du fournisseur sélectionné contient le modèle ; utilisez la commande de rechargement adaptée à ce fournisseur et à sa version
- Vérifiez que le resource pack est installé sur le client
- Vérifiez que
customModelcorrespond à l'identifiant enregistré, généralement le nom de fichier sans extension
-
Animations qui ne se 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 réglées en boucle si elles doivent se jouer une seule fois
- Testez chaque animation avec les commandes du fournisseur sélectionné
-
Les deux plugins installés :
- EliteMobs utilisera FreeMinecraftModels si les deux sont présents
- Il n'existe pas de sélection du fournisseur par modèle. Pour utiliser ModelEngine à la place, désactivez FreeMinecraftModels et utilisez une version R3 de ModelEngine
-
Le boss ou le PNJ n'a pas de nom visible (FMM) :
- Vérifiez d'abord
name, le réglagealwaysShowNamedu boss et le chargement du modèle. - FMM place désormais le nom au-dessus de la hitbox sans ancrage
tag_. Vérifiez la hauteur de la hitbox ou ajoutez un ancrage si le nom est mal placé. - Les modèles des PNJ sont rattachés lorsque FMM émet son événement de fin de rechargement. Consultez les avertissements si un modèle disparaît après un rechargement de FMM.
- Vérifiez d'abord