Aller au contenu principal

FAQ FreeMinecraftModels

Si vous avez une question qui n'est pas listée ici, jetez un œil à la barre latérale pour voir si elle a une page dédiée dans le wiki !

Premiers pas

Comment installer et utiliser FreeMinecraftModels ?

Info

Installation :

  1. Téléchargez FreeMinecraftModels.jar et placez-le dans votre dossier plugins
  2. Redémarrez votre serveur pour générer les dossiers du plugin
  3. Exécutez /fmm setup pour le menu de configuration initiale / gestion de contenu
  4. Si vous utilisez les packs de contenu officiels, liez Nightbreak avec /nightbreaklogin <token>
  5. Utilisez /fmm setup ou /fmm downloadall pour le contenu officiel géré par Nightbreak
  6. Pour le contenu manuel, placez les fichiers .bbmodel dans ~/plugins/FreeMinecraftModels/imports/ et exécutez /fmm reload
  7. Trouvez le resource pack généré dans ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip

Distribution du Resource Pack :

Choisissez l'une de ces méthodes :

  • Option A (Recommandée) : Installez Resource Pack Manager pour une distribution automatique
  • Option B : Configurez manuellement via server.properties ou un service d'hébergement

Faire apparaître des modèles :

  • /fmm spawn static <id> - Fait apparaître un modèle décoratif temporaire
  • /fmm spawn dynamic <id> - Fait apparaître un modèle attaché à une entité
  • /fmm spawn prop <id> - Fait apparaître un modèle persistant dans le monde

Gestion :

  • /fmm - Ouvre le menu d'objets craftables (nécessite freeminecraftmodels.menu)
  • /fmm setup - Ouvre le menu de gestion de contenu / configuration initiale
  • /fmm recommendedplugins - Parcourt les plugins compagnons qui se marient bien avec FMM
  • /fmm downloadall - Télécharge la dernière mise à jour du plugin plus tout le contenu officiel accessible
  • /fmm downloadallcontent - Télécharge tout le contenu officiel accessible (contenu uniquement)
  • /fmm updatecontent - Met à jour le contenu officiel obsolète
  • /fmm downloadpluginupdate - Télécharge uniquement la dernière mise à jour du jar du plugin
  • /fmm reload - Recharge le plugin et convertit les nouveaux modèles
  • /fmm version - Affiche la version du plugin
  • /fmm stats - Affiche les statistiques de nombre d'entités

Fonctionnalités joueur :

  • /fmm disguise <modelID> [player] - Transforme votre apparence (ou celle d'un joueur cible) en un modèle personnalisé
  • /fmm undisguise [player] - Retire le déguisement d'un joueur
  • /fmm disguiselist - Liste tous les joueurs actuellement déguisés
  • /fmm itemify <model> <material> - Crée un objet plaçable qui fait apparaître le modèle spécifié
  • /fmm craftify <modelID> - Ouvre un éditeur de recette interactif pour créer une recette de craft pour un prop
  • /fmm shop - Ouvre la boutique de mobilier optionnelle adossée à Vault (uniquement lorsqu'activée dans shop_config.yml)
  • /fmm mount <modelID> - Fait apparaître un cheval chevauchable déguisé en modèle personnalisé (expérimental)

Débogage :

  • /fmm hitbox visualize [duration] - Visualise les hitboxes de modèle avec des particules (durée en ticks, défaut 100)
  • /fmm location - Rapporte les fournisseurs de protection / donjon enregistrés et les teste sur votre position actuelle
  • /fmm debug bedrock [on|off] - Bascule le flux de log verbeux [FMM-BedrockDebug] pour diagnostiquer le pipeline d'affichage Bedrock. Ce n'est pas une clé de config — se réinitialise sur OFF à chaque redémarrage
  • /fmm debug props [on|off] - Bascule le scan des props empilés : chaque chargement de chunk signale alors toute paire de props situés à moins de 0,1 bloc l'un de l'autre sous la forme STACKED PROPS DETECTED. Se réinitialise également sur OFF à chaque redémarrage
  • /fmm packetdebug [ticks] - Échantillonne la charge en paquets des entités modélisées pendant les [ticks] prochains ticks d'horloge de modèle (défaut 1, max 200) et rapporte les paquets/tick, la diffusion par spectateur, les spectateurs les plus lourds et une répartition par type de paquet

Administratif :

  • /fmm deleteall [radius] - Supprime toutes les entités modélisées chargées et les props (à utiliser avec précaution - pas de prompt de confirmation). Un [radius] optionnel réservé aux joueurs limite la suppression à ce rayon de blocs

Permissions :

  • freeminecraftmodels.* (défaut : OP) - Wildcard qui accorde freeminecraftmodels.admin, freeminecraftmodels.deleteall, freeminecraftmodels.disguise.self, freeminecraftmodels.disguise.others et freeminecraftmodels.bypassregionprotection. C'est aussi la permission littérale requise par /fmm reload, /fmm stats, /fmm spawn, /fmm itemify, /fmm craftify, /fmm mount, /fmm hitbox visualize, /fmm debug, /fmm packetdebug, /fmm location, /fmm setup, /fmm recommendedplugins, /fmm downloadall, /fmm downloadallcontent, /fmm updatecontent, /fmm downloadpluginupdate et /fmm forcereinstallcontent
  • freeminecraftmodels.admin (défaut : OP) - /fmm admin (le navigateur de contenu admin) et /fmm giveitem
  • freeminecraftmodels.disguise.self (défaut : OP) - Permet à un joueur de se déguiser/dé-déguiser uniquement lui-même
  • freeminecraftmodels.disguise.others (défaut : OP) - Autorise le déguisement/dé-déguisement ciblé et /fmm disguiselist
  • freeminecraftmodels.deleteall (défaut : OP) - Requis pour /fmm deleteall (enfant du wildcard)
  • freeminecraftmodels.bypassregionprotection (défaut : OP) - Placer/interagir avec les props partout où un autre plugin bloquerait le placement normal de blocs, même lorsque preventPropPlacementInProtectedRegions est activé
  • freeminecraftmodels.menu (défaut : true) - Permet à tous les joueurs d'ouvrir le navigateur d'objets craftables via /fmm
  • freeminecraftmodels.shop (défaut : true) - Permet à tous les joueurs d'ouvrir /fmm shop (toujours conditionné par l'activation de la boutique)
  • nightbreak.login (défaut : OP) - Enregistrée par MagmaCore, pas par plugin.yml. Requise par /nightbreaklogin et /nightbreaklogout

Les commandes sont OP uniquement par défaut sauf indication contraire. Accordez ces permissions aux joueurs non-OP si nécessaire.

Fonctionnalités et limites de modèle

Quelles sont les limites de taille et de rotation des modèles ?

Info

Limites de taille :

  • Maximum de la boîte englobante par os : 192x192x192 pixels de modèle (12x12x12 blocs en jeu) — mesuré sur tous les cubes d'un même os
  • FreeMinecraftModels utilise une mise à l'échelle interne 4x et décale l'origine du modèle pour s'adapter à la plage -16..+32 des resource packs Minecraft
  • Si un os dépasse la limite, FMM affiche un avertissement dans la console ; rétrécissez les cubes, rapprochez-les, ou divisez-les en plusieurs os
  • Les modèles entiers peuvent être plus grands que cela — seule la limite par os s'applique

Limites de rotation des cubes :

  • Minecraft 1.21.6 et plus récent : n'importe quel angle de cube fonctionne. FMM décompose l'angle en une transformation de base (0°, ±90°, ±180°, intégrée à la géométrie) plus un reste compris dans ±45°, que Minecraft moderne accepte avec une précision arbitraire
  • Minecraft 1.21.4 / 1.21.5 : le reste doit tomber sur une valeur que Minecraft accepte nativement (−45°, −22,5°, 0°, 22,5°, 45°), les angles autorisés sont donc 0°, ±22,5°, ±45°, ±67,5°, ±90°, ±112,5°, ±135°, ±157,5°, ±180° — tous les multiples de 22,5°
  • Rotation à axe unique uniquement, sur toutes les versions. Le convertisseur ne conserve que le dernier axe non nul du tableau de rotation du cube
  • Exemple : [22.5, 0, 0] fonctionne, mais [22.5, 0, 45] ne fait qu'une rotation partielle
  • Un angle que FMM ne peut pas décomposer est journalisé sous la forme Could not decompose rotation angle ... for model name <model> et appliqué brut, ce qui rend généralement mal

Rotation des os :

  • Les os supportent n'importe quel angle de rotation
  • Évitez les positions de repos par défaut de 90°, -90°, 180°, -180° (peut causer un comportement inattendu)
  • Rotation multi-axes supportée
  • Chaque os crée une entité séparée (considération de performance)

Note de performance :

Gardez le nombre d'os aussi bas que possible. Chaque os fait apparaître une entité séparée dans Minecraft, ce qui peut impacter les performances du serveur à grande échelle.

Quelles animations sont supportées ?

Info

FreeMinecraftModels lie cinq noms d'animation à des états d'exécution automatiques :

Animations d'état :

  • spawn — se joue une fois à la création du modèle, puis enchaîne sur idle
  • idle — boucle tant que l'entité est (presque) immobile
  • walk — boucle tant que la vélocité de l'entité est supérieure à 0.08
  • attack — se joue une fois, puis revient à idle
  • death — se joue une fois lors de la suppression via removeWithDeathAnimation()

Tout autre nom d'animation dans le modèle est une animation personnalisée : elle ne se déclenche jamais d'elle-même, mais peut être jouée par son nom depuis l'API ou depuis Lua.

À propos de jump

JUMP existe dans l'énumération AnimationStateType et l'état walk le demande bien lorsque l'entité quitte le sol, mais aucun état de saut n'est enregistré dans le gestionnaire d'animations : cette transition automatique ne fait donc actuellement rien. Une animation littéralement nommée jump fonctionne toujours si vous la déclenchez vous-même — elle passe simplement par le chemin des animations personnalisées, comme n'importe quel autre nom.

Comment ça fonctionne :

  • Créez des animations dans BlockBench en utilisant les noms en minuscules ci-dessus afin que FMM les lie automatiquement à l'état correspondant
  • Le plugin lit les keyframes d'animation depuis les fichiers .bbmodel à l'importation et les précalcule en images par tick
  • Les animations d'état se déclenchent automatiquement en fonction de l'état de l'entité
  • Les développeurs peuvent déclencher n'importe quelle animation programmatiquement en utilisant playAnimation(animationName, blend, loop) sur un ModeledEntity, ou context.prop:play_animation(name, blend, loop) depuis Lua

Les déguisements de joueurs sont différents :

Un modèle utilisé avec /fmm disguise exécute son propre contrôleur qui reconnaît cinq noms — attack, jump, sneak, walk, idle — dans cet ordre de priorité. sneak et jump ne font quelque chose que sur les déguisements. Un modèle de déguisement sans idle journalise un avertissement console et se fige sur la dernière image dès que rien d'autre n'est joué. Voir Déguisements des joueurs.

Voir Animations pour les modes de boucle, les types d'interpolation, le timing des keyframes et l'IK.

Cas spécial :

Les entités Evoker détectent les Evoker Fangs proches pour déclencher automatiquement les animations d'attaque.

Que sont les os virtuels et comment fonctionnent-ils ?

Info

Les os virtuels sont des os spéciaux avec des noms réservés qui ajoutent des fonctionnalités à vos modèles :

Os de hitbox :

  • Nom : hitbox (nom exact, insensible à la casse)
  • Crée des zones d'interaction et des boîtes de collision
  • Définit les limites de l'entité avec des valeurs x/z correspondantes
  • Doit être un os de premier niveau dans l'outliner — un os hitbox imbriqué dans un autre groupe est traité comme un os ordinaire
  • Doit contenir exactement un cube. Des cubes supplémentaires journalisent has more than one value defining a hitbox! Only the first cube will be used, et un os hitbox vide journalise has a hitbox bone but no hitbox cube!
  • Jamais animé, jamais rendu, et exclu de l'export de géométrie Bedrock

Os de nametag :

  • Préfixe : tag_
  • Affiche du texte au-dessus des modèles
  • Utilisé pour nommer les entités
  • Obligatoire. Un modèle sans os tag_ n'a aucune plaque de nom — setDisplayName sur celui-ci ne fait silencieusement rien, et le mob vanilla sous-jacent est masqué, sa propre plaque de nom ne peut donc pas s'afficher non plus. Voir Pourquoi mon modèle n'a-t-il pas de nom ?
  • L'os n'a besoin d'aucun cube ; c'est seulement un ancrage de position pour l'affichage de texte, généralement placé au-dessus de la tête

Os de rotation de tête :

  • Préfixe : h_
  • Tourne en fonction de la position de la tête du joueur/entité
  • Suit le mouvement de la tête automatiquement

Os cachés / structurels :

  • Préfixe : b_
  • Jamais rendus en jeu
  • Utilisez-les pour les os structurels, organisationnels ou purement descriptifs qui doivent tout de même participer à la hiérarchie du squelette sans produire de géométrie

Os de point de monture :

  • Préfixe : m_
  • Chaque os m_ devient une position de siège chevauchable sur le modèle, gérée par MountPointManager
  • Le siège suit l'os à travers les animations
  • Plusieurs os m_ créent plusieurs sièges
  • Exclus de l'export de géométrie Bedrock
  • Voir Que sont les os de point de monture ? ci-dessous

Utilisation :

Créez un os dans BlockBench avec l'un de ces noms spéciaux, et le plugin appliquera automatiquement la fonctionnalité correspondante.

FAQ de dépannage

Au lieu de modèles personnalisés, je ne vois que de l'armure de cheval.

Info

Si, au lieu de modèles personnalisés apparaissant dans votre jeu, vous ne voyez que de l'armure de cheval, le problème est très probablement que vous n'avez pas fusionné correctement le resource pack FMM avec votre resource pack préexistant.

MagmaGuy a développé un plugin appelé Resource Pack Manager (RSPM) qui peut fusionner automatiquement les resource packs pour vous. Vous pouvez le télécharger depuis Spigot ici.

Déposez simplement le fichier .jar de RSPM dans votre dossier plugins, et RSPM gérera tout. Il fusionnera tous les resource packs, les hébergera automatiquement et les distribuera aux joueurs lorsqu'ils se connecteront à votre serveur.

Pourquoi est-ce que je ne vois pas mon modèle après avoir ajouté le fichier .bbmodel ?

Info

Si votre modèle n'apparaît pas, vérifiez ces problèmes courants :

1. Oublié de recharger

Exécutez /fmm reload après avoir placé les fichiers .bbmodel dans le dossier imports. Cela convertit les modèles et génère le resource pack.

2. Resource pack non appliqué

Les joueurs doivent avoir le resource pack FMM actif pour voir les modèles.

  • Vérifiez ~/plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip pour le pack généré
  • Installez Resource Pack Manager pour une distribution automatique
  • OU distribuez manuellement via server.properties ou un service d'hébergement

3. Mauvais emplacement de fichier

Les fichiers .bbmodel pour les imports manuels doivent aller dans : ~/plugins/FreeMinecraftModels/imports/

Si vous utilisez les packs de contenu officiels à la place, utilisez /fmm setup ou /fmm downloadall plutôt que de déposer les fichiers manuellement.

4. Le modèle contient des erreurs

Vérifiez les logs de console pour les messages d'erreur durant /fmm reload. Les problèmes courants incluent des rotations non supportées, des modèles surdimensionnés ou des problèmes de texture.

5. Problème de fusion de resource pack

Si vous voyez de l'armure de cheval au lieu de modèles, les resource packs n'ont pas été correctement fusionnés. Utilisez Resource Pack Manager (RSPM) pour gérer la fusion automatiquement.

6. Collision d'identifiant de modèle

Recherchez [FMM Models] Rejected normalized model ID collision dans la console. Deux fichiers de modèles ou plus se normalisent vers le même identifiant, tous ont donc été rejetés. Voir Pourquoi mon modèle a-t-il été rejeté pour une collision d'identifiant ? ci-dessous.

Pourquoi mon modèle a-t-il été rejeté pour une collision d'identifiant ?

Info

FreeMinecraftModels normalise chaque nom de fichier de modèle avant de l'utiliser comme identifiant de modèle à l'exécution et comme nom de fichier dans le resource pack : il met le nom en minuscules, puis remplace chaque caractère hors de a-z, 0-9, ., _ et - par un underscore.

Cela signifie que tous ceux-ci se réduisent au même identifiant, my_table :

My Table.bbmodel
my table.bbmodel
my_table.bbmodel
MY_TABLE.bbmodel

Avant le début de la conversion, FMM balaie l'arborescence des modèles à la recherche de ces collisions. Lorsqu'il en trouve une, tous les fichiers en collision sont rejetés — pas seulement les surnuméraires — de sorte que vous n'obtenez jamais un résultat imprévisible du type « c'est le dernier chargé qui l'emporte ». La console affiche :

[FMM Models] Rejected normalized model ID collision '<id>'. These files normalize to the same ID: <paths>. Rename the files so every normalized model ID is unique; no colliding model was loaded.

La correction : renommez les fichiers pour que leurs identifiants normalisés diffèrent, puis exécutez /fmm reload. L'avertissement liste les chemins absolus exacts concernés.

Comment l'éviter : nommez les fichiers de modèles en minuscules avec des underscores dès le départ (stone_table.bbmodel). Le nom de fichier et l'identifiant de modèle sont alors identiques, et rien ne peut se normaliser sur autre chose de manière inattendue.

Les modèles rejetés sont ignorés partout — aucune sortie dans le pack Java, ni bundle d'entités personnalisées Bedrock.

Pourquoi mon modèle n'a-t-il pas de nom ?

Info

Parce que le modèle n'a pas d'os tag_. C'est la cause la plus fréquente de contenu livré avec des mobs sans nom.

Ce qui se passe :

  • FreeMinecraftModels ne crée un affichage de texte de plaque de nom que pour les os dont le nom commence par tag_
  • ModeledEntity.setDisplayName(...) parcourt les os de plaque de nom du modèle. Sans os tag_, cette liste est vide : l'appel réussit et ne fait rien — aucune erreur, aucun avertissement
  • Un modèle dynamique masque son entité vivante sous-jacente aux clients, la plaque de nom vanilla du mob ne peut donc pas prendre le relais

Le résultat : un plugin tel qu'EliteMobs définit correctement le nom du boss, l'appel API ne signale aucun problème, et les joueurs voient malgré tout un mob sans nom au-dessus de lui.

La correction :

  1. Ouvrez le modèle dans BlockBench
  2. Ajoutez un os (groupe) nommé tag_name positionné là où la plaque de nom doit flotter, généralement juste au-dessus de la tête
  3. Il n'a besoin d'aucun cube — ce n'est qu'un ancrage de position
  4. Ré-importez et exécutez /fmm reload

Plusieurs os tag_ sont autorisés ; chacun obtient son propre affichage de texte montrant le même nom.

Si la console affiche nametag bone did not spawn name tag, l'os a bien été reconnu mais son affichage de texte n'a pas pu apparaître — c'est un échec différent de l'absence totale d'os tag_.

ViaVersion peut entraîner un affichage incorrect des Resource Packs.

Info

ViaVersion peut causer des problèmes avec les resource packs, particulièrement lors de l'exécution d'un serveur sur une version inférieure à 1.21.4. Minecraft a introduit des changements dans la façon dont les resource packs sont gérés à partir de 1.21.4. Si vous exécutez un serveur sur une version comme 1.21.3 et utilisez ViaVersion pour permettre aux clients 1.21.4 de se connecter, ces clients peuvent rencontrer des problèmes d'affichage de certains contenus de resource pack, comme les modèles personnalisés de FMM (FreeMinecraftModels).

Cela se produit parce que le système de resource pack dans Minecraft a changé avec la mise à jour 1.21.4.

Note : C'est une limitation de Minecraft et ViaVersion, non spécifique à FreeMinecraftModels. La traduction de protocole de ViaVersion peut ne pas supporter complètement les changements de resource pack lors de l'exécution sur des versions de serveur inférieures à 1.21.4.

Pour résoudre cela, envisagez de mettre à jour votre serveur vers 1.21.4 ou plus récent, car cela assurera une meilleure compatibilité avec les fonctionnalités modernes de resource pack, y compris les modèles personnalisés FMM.

Pourquoi mes modèles causent-ils du lag ou des problèmes de performance ?

Info

Chaque os dans votre modèle BlockBench crée une entité séparée dans Minecraft. Les modèles avec beaucoup d'os peuvent impacter les performances du serveur.

Conseils d'optimisation :

  • Minimisez le nombre d'os dans vos modèles
  • Limitez le nombre de modèles apparaissant
  • Envisagez d'utiliser des modèles statiques au lieu de dynamiques lorsque les animations ne sont pas nécessaires
  • Évitez de faire apparaître de nombreux modèles à grand nombre d'os à proximité

Explication technique :

FreeMinecraftModels rend chaque os comme une entité Minecraft séparée. Un modèle avec 50 os fait apparaître 50 entités. À grande échelle, cela impacte les performances.

Bonnes pratiques :

  • Concevez des modèles avec moins d'os
  • Testez les performances avec des nombres d'apparition réalistes
  • Surveillez le TPS du serveur lors de l'ajout de nouveaux modèles

Comment le mesurer :

Exécutez /fmm packetdebug 20 en vous tenant dans la zone qui semble laguer. Il échantillonne les 20 prochains ticks d'horloge de modèle et rapporte les paquets logiques/tick, les paquets réellement délivrés par tick (en comptant la diffusion par spectateur), le pire joueur unique, une répartition par type de paquet et les spectateurs les plus lourds. Cela vous indique si le coût vient du nombre d'os, du nombre de spectateurs, ou des deux.

Optimisations de paquets intégrées :

Trois clés de config.yml contrôlent les optimisations côté paquets. Toutes utilisent par défaut le comportement optimisé — les réglages alternatifs existent pour le débogage, pas comme conseil de réglage :

  • skipUnchangedBoneUpdates (défaut true) — un os qui n'a ni bougé, ni tourné, ni changé d'échelle durant ce tick n'envoie rien. Les props statiques et les parties inertes des modèles ne coûtent presque rien
  • useDeltaMetadataPackets (défaut true) — le paquet de métadonnées par tick ne transporte que la transformation modifiée au lieu de re-sérialiser tout le bloc d'affichage d'item
  • maxModelsForProximityOverride (défaut 25) — les modèles à moins de 10 blocs sont normalement toujours affichés, en sautant le raytrace de ligne de vue pour éviter les apparitions brusques. Dès qu'un monde contient ce nombre de modèles chargés, cette surcharge est désactivée dans ce monde afin que l'élimination par occlusion s'exécute même de près. C'est la clé à examiner pour les hubs de PNJ à plusieurs étages où les joueurs devenaient spectateurs de modèles situés à d'autres étages

Voir Configuration pour les descriptions complètes.

Fonctionnalités avancées

Ai-je besoin de Resource Pack Manager (RSPM) ?

Info

Resource Pack Manager (RSPM) est optionnel mais fortement recommandé.

Ce que fait RSPM :

  • Fusionne automatiquement les resource packs de plusieurs plugins
  • Héberge les resource packs (pas besoin d'hébergement externe)
  • Distribue les packs aux joueurs automatiquement à la connexion
  • Élimine la configuration manuelle de resource pack

Sans RSPM :

Vous devez manuellement :

  • Fusionner le resource pack FMM avec tout resource pack serveur existant
  • Héberger le pack fusionné sur un service externe ou via server.properties
  • Configurer le serveur pour envoyer le pack aux joueurs
  • Mettre à jour le pack chaque fois que vous ajoutez de nouveaux modèles

Pourquoi utiliser RSPM :

La plupart des problèmes « armure de cheval au lieu de modèles » sont causés par une fusion incorrecte de resource pack. RSPM gère cela automatiquement.

Téléchargez RSPM : https://www.spigotmc.org/resources/resource-pack-manager.118574/

Développé par MagmaGuy, le même auteur que FreeMinecraftModels.

Puis-je utiliser FreeMinecraftModels dans mon propre plugin ?

Info

Oui, FreeMinecraftModels fournit une API pour les développeurs.

Intégration Maven/Gradle :

Dépôt : https://repo.magmaguy.com/releases

Artefact :

  • GroupId : com.magmaguy
  • ArtifactId : FreeMinecraftModels
  • Scope : provided (doit être installé sur le serveur, ne pas shade)

Classes API principales :

  • ModeledEntity (classe de base)
  • StaticEntity
  • DynamicEntity
  • PropEntity

Exemple d'utilisation :

StaticEntity staticEntity = StaticEntity.create(id, location);
if (staticEntity == null) {
Bukkit.getLogger().warning("Failed to create model");
return;
}
staticEntity.setRightClickCallback(...);
staticEntity.remove();

Important :

Ne shadez pas FreeMinecraftModels dans votre plugin. Il doit être installé séparément sur le serveur.

Pour une documentation API détaillée, voir le README officiel.

Comment déguiser un joueur en modèle personnalisé ?

Info

La commande /fmm disguise transforme l'apparence d'un joueur en n'importe quel modèle personnalisé.

Commandes :

/fmm disguise <modelID> [player]
/fmm undisguise [player]
/fmm disguiselist

Comment ça fonctionne :

  • Rend le joueur invisible aux autres joueurs
  • Superpose le modèle personnalisé sur la position du joueur
  • Le modèle suit les mouvements du joueur
  • Parfait pour les serveurs de roleplay ou les événements spéciaux

Exemples :

/fmm disguise dragon              # Vous déguiser vous-même
/fmm disguise dragon Steve # Déguiser un autre joueur
/fmm undisguise Steve # Dé-déguiser Steve
/fmm disguiselist # Lister tous ceux actuellement déguisés

Prérequis :

  • Auto-ciblage : freeminecraftmodels.disguise.self (défaut : OP)
  • Ciblage d'autres et /fmm disguiselist : freeminecraftmodels.disguise.others (défaut : OP)
  • La console peut exécuter la forme ciblée tant qu'un nom de joueur est fourni
  • modelID doit être un modèle converti valide dans votre dossier models
  • Les plugins tiers peuvent piloter les déguisements via la DisguiseAPI publique

Notes :

  • La hitbox du joueur reste inchangée (même boîte de collision)
  • Les autres joueurs voient le modèle personnalisé au lieu de votre skin de joueur
  • Déguiser à nouveau alors qu'il est déjà déguisé remplace proprement le déguisement précédent
  • L'invisibilité persiste à travers les seaux de lait et autres interactions qui suppriment les effets jusqu'à ce que le joueur soit dé-déguisé

Comment créer des objets de modèle plaçables ?

Info

La commande /fmm itemify crée des objets spéciaux que les joueurs peuvent utiliser pour placer des modèles dans le monde.

Commande :

/fmm itemify <model> <material>

Paramètres :

  • model - Tout ID de modèle valide depuis votre dossier models
  • material - Tout matériau Minecraft (STICK, PAPER, DIAMOND, etc.)

Exemple :

/fmm itemify lamp_post STICK

Ce qu'il crée :

  • Un objet personnalisé avec un nom d'affichage décoré or formaté (par ex. « ✦ Wolf ✦ »)
  • Du lore descriptif expliquant l'objet
  • L'objet est ajouté directement à votre inventaire
  • Clic droit pour placer le modèle en tant que prop

Cas d'utilisation :

  • Donner aux joueurs des objets pour décorer leurs constructions
  • Créer des « œufs de spawn » personnalisés pour le mobilier
  • Distribuer des modèles sans donner de permissions de construction
  • Kits de configuration pour la construction créative

Prérequis :

  • Permission : freeminecraftmodels.*
  • Le joueur doit être en jeu (pas la console)

Comment déboguer les hitboxes de modèle ?

Info

La commande /fmm hitbox visualize visualise les hitboxes de modèle avec des particules.

Commande :

/fmm hitbox visualize [duration]

Paramètres :

  • duration (optionnel) - Combien de temps montrer les hitboxes en ticks (défaut : 100, max : 1200)
  • 20 ticks = 1 seconde

Exemples :

/fmm hitbox visualize          # Montrer pendant 5 secondes
/fmm hitbox visualize 200 # Montrer pendant 10 secondes

Comment ça fonctionne :

  • Recherche les modèles dans un rayon de 10 blocs autour de vous
  • Affiche les limites de la oriented bounding box (OBB) avec des particules
  • Montre à la fois le modèle et ses limites de collision
  • Utile pour vérifier la taille et la rotation de hitbox

La collision des projectiles utilise un segment balayé depuis la position précédente du projectile jusqu'à sa position actuelle, si bien que des flèches rapides ne peuvent pas traverser des OBB fines entre deux ticks. Lorsqu'un segment intersecte plusieurs modèles, FMM achemine le coup du plus proche au plus lointain. Un projectile normal peut toucher une cible modélisée ; une flèche avec Perforation peut toucher pierce level + 1 cibles modélisées différentes sans que l'OBB et les hitboxes vanilla sous-jacentes ne comptent deux fois le même impact.

Quand utiliser :

  • Tester si les hitboxes correspondent aux modèles visuels
  • Déboguer les problèmes d'interaction
  • Vérifier les rotations de hitbox
  • Dépanner la détection de clic

Prérequis :

  • Permission : freeminecraftmodels.*

Note : Les hitboxes dans FMM tournent avec le modèle, contrairement aux AABBs Minecraft standard.

Puis-je créer des modèles personnalisés chevauchables ?

Info

Oui, utilisez la commande /fmm mount pour créer des modèles personnalisés chevauchables (fonctionnalité expérimentale).

Commande :

/fmm mount <modelID>

Ce qu'elle fait :

  • Fait apparaître un cheval à votre position
  • Déguise le cheval en votre modèle personnalisé
  • Apprivoise automatiquement le cheval et ajoute une selle
  • Vous fait chevaucher le cheval immédiatement

Exemple :

/fmm mount dragon

Prérequis :

  • Permission : freeminecraftmodels.*
  • ID de modèle valide

Notes importantes :

  • Cette fonctionnalité est marquée comme expérimentale
  • La vitesse et le comportement de mouvement correspondent à un cheval standard
  • La hitbox du cheval reste inchangée
  • Fonctionne mieux avec des modèles conçus pour les montures

Cas d'utilisation :

  • Montures personnalisées pour serveurs de roleplay
  • Transport spécial pour joueurs VIP
  • Créatures chevauchables uniques pour cartes d'aventure

Que sont les os de points de monture ?

Info

Les points de monture vous permettent de définir des positions chevauchables directement sur votre modèle en utilisant des os spécialement nommés.

Comment créer des points de monture :

Dans Blockbench, nommez n'importe quel os avec le préfixe m_ (par ex. m_seat, m_back). Chaque os m_ devient une position de siège sur le modèle où un joueur ou une entité peut être monté.

Comment ça fonctionne :

  • La position de monture suit l'emplacement de l'os, y compris les animations
  • Plusieurs os m_ créent plusieurs sièges
  • Les joueurs/entités peuvent être montés sur ces positions via l'API ou les scripts Lua

Test :

Utilisez /fmm mount <modelID> pour tester rapidement les points de monture sur un modèle.

Cas d'utilisation :

  • Véhicules multi-sièges (bateaux, voitures)
  • Créatures chevauchables avec positions de siège spécifiques
  • Animaux ou compagnons montés sur l'épaule

Objets personnalisés

Que sont les objets personnalisés ?

Info

Les objets personnalisés sont des modèles qui ont un champ material: défini dans leur fichier YML voisin, les transformant en objets tenables et équipables avec support de scripting Lua.

Différences clés par rapport aux objets de placement de prop :

  • Les objets personnalisés utilisent la clé PDC (PersistentDataContainer) fmm_item_id
  • Les objets de placement de prop (depuis /fmm itemify) utilisent la clé PDC model_id
  • Les objets personnalisés supportent 22 hooks de script Lua spécifiques aux objets (équiper, attaquer, consommer, etc.)
  • Les objets personnalisés peuvent avoir des enchantements, des noms personnalisés et du lore définis dans leur config YML

Comment créer un objet personnalisé :

  1. Créez un modèle .bbmodel dans Blockbench
  2. Créez un fichier YML voisin avec le même nom de base (par ex. magic_sword.yml à côté de magic_sword.bbmodel)
  3. Définissez le champ material: dans le YML à tout matériau Minecraft valide (par ex. material: DIAMOND_SWORD)
  4. Définissez optionnellement les champs name:, lore: et enchantments:
  5. Créez optionnellement un script Lua dans plugins/FreeMinecraftModels/scripts/ et référencez-le via le champ scripts:

Exemple YML :

isEnabled: true
material: DIAMOND_SWORD
name: "&6Flame Blade"
lore:
- "&7A legendary weapon"
- "&cBurns enemies on hit"
enchantments:
- "FIRE_ASPECT,2"
scripts:
- flame_blade.lua

Comment obtenir un objet personnalisé :

  • /fmm giveitem <id> (nécessite la permission freeminecraftmodels.admin)
  • Via le menu admin (/fmm admin)

Menus

Quels menus FMM fournit-il ?

Info

FreeMinecraftModels fournit deux menus en jeu pour parcourir et gérer le contenu.

Menu joueur — /fmm

  • Permission : freeminecraftmodels.menu (défaut : true, tous les joueurs peuvent l'utiliser)
  • N'affiche que les objets qui ont des recettes de craft définies
  • Cliquez sur un objet pour voir une vue détaillée avec un aperçu de grille de craft spatiale 3x3
  • Permet aux joueurs de découvrir et apprendre comment fabriquer des objets personnalisés

Menu admin — /fmm admin

  • Permission : freeminecraftmodels.admin (défaut : OP)
  • Navigateur de contenu complet affichant :
    • Les packs installés
    • Les dossiers de modèles non packagés
    • Les modèles au niveau racine
    • Les objets personnalisés (modèles avec material: défini)
  • Permet aux admins de donner des objets, prévisualiser des modèles et gérer le contenu

Modèles d'affichage

Que sont les modèles d'affichage ?

Info

Les modèles d'affichage permettent aux objets personnalisés d'afficher un modèle 3D dans l'inventaire et la main du joueur, au lieu de l'apparence par défaut du matériau.

Comment configurer un modèle d'affichage :

  1. Dans Blockbench, utilisez File > Export > Java Block/Item pour exporter un fichier de modèle .json
  2. Placez le fichier .json à côté du fichier .bbmodel avec le même nom de base (par ex. magic_sword.json à côté de magic_sword.bbmodel)
  3. Exécutez /fmm reload

Comment ça fonctionne :

  • Sur Minecraft 1.21.4+, l'objet s'affichera avec le modèle 3D personnalisé lorsqu'il est tenu ou vu dans l'inventaire
  • Les références de texture nues dans le JSON sont automatiquement réécrites vers les chemins du namespace FMM
  • Si aucun fichier .json n'existe, l'objet retombe sur l'apparence simple du matériau
  • Les versions de serveur plus anciennes ignorent silencieusement les modèles d'affichage

Prérequis :

  • Serveur exécutant Minecraft 1.21.4 ou plus récent
  • Un export Blockbench « Java Block/Item » valide (.json) placé à côté du fichier de modèle