Benutzerdefinierte Modelle
EliteMobs unterstützt benutzerdefinierte Modelle über Model Engine und FreeMineCraftModels.
Vorwort
Aus Sicht von EliteMobs ist das System der benutzerdefinierten Modelle sehr einfach, da Admins lediglich eine Zeile zur Konfigurationsdatei eines NPCs oder Custom Bosses hinzufügen müssen, die festlegt, welches benutzerdefinierte Modell verwendet werden soll. Es ist jedoch notwendig, mit Model Engine und Minecraft die richtigen Schritte zu unternehmen, um dieses System voll funktionsfähig zu machen, und diese sind nicht ganz so leicht zugänglich.
Diese Anleitung geht ins Detail, soweit es die Anbindung an Model Engine und Minecraft betrifft. Sie erklärt dir nicht, wie du Blockbench verwendest, um Custom Bosses zu erstellen, und geht auch nicht im Detail darauf ein, wie Model Engine funktioniert. Es gibt bereits zahlreiche Anleitungen dazu an anderer Stelle, und wenn du mehr über diese Systeme erfahren möchtest, bist du besser bedient, wenn du direkt deren Dokumentation ansiehst.
FreeMineCraft Models
Wenn du lernen möchtest, wie du FMM verwenden kannst, um deine Modelle zum Laufen zu bringen, kannst du dir diese Wiki-Seite ansehen, um mehr zu erfahren.
Bedrock-Unterstützung (Geyser)
Ob Bedrock-Spieler (die sich über Geyser/Floodgate verbinden) benutzerdefinierte Modelle sehen können, hängt vollständig von deinem Modell-Plugin (ModelEngine oder FreeMinecraftModels) und deiner Ressourcenpaket-Einrichtung ab, nicht von EliteMobs. EliteMobs erkennt zwar Bedrock-Clients, verwendet diese Information jedoch für Dinge wie das Rendern von Menüs und die Positionierung von Namensschildern — es generiert oder liefert kein separates Bedrock-kompatibles Modell. Informationen zur Bedrock-/Geyser-Modellunterstützung findest du in der Dokumentation deines Modell-Plugins.
LibsDisguises-Integration
EliteMobs unterstützt außerdem LibsDisguises als Alternative zu benutzerdefinierten Modellen. Wenn keine benutzerdefinierten Modelle konfiguriert sind, kann EliteMobs LibsDisguises verwenden, um das Aussehen von Entitäten zu ändern. Diese Integration übernimmt die Synchronisierung der Namenssichtbarkeit automatisch.
Um LibsDisguises anstelle von benutzerdefinierten Modellen zu verwenden, konfiguriere die Verkleidungseinstellungen deines Bosses/NPCs, ohne ein customModel-Feld anzugeben.
Gescriptete Item-Modelle (FMM)
Benutzerdefinierte EliteMobs-Items können das System gescripteter Items von FreeMinecraftModels für fortgeschrittenes Modell- + Lua-Skript-Verhalten verwenden. Dies geht über statische benutzerdefinierte Modelle hinaus — gescriptete Items können über Lua-Skripte auf Ausrüsten, Angreifen, Rechtsklicken und viele andere Item-Events reagieren (FMM stellt insgesamt 22 Item-Skript-Hooks bereit).
Um dies zu verwenden, setze das Feld scriptedItem in deiner benutzerdefinierten Item-Konfiguration auf die FMM-Item-ID. EliteMobs übernimmt Name, Lore, Verzauberungen und Level; FMM stellt das 3D-Modell und das Skriptverhalten bereit.
# Example EliteMobs custom item config
material: IRON_SWORD
name: "&cFlame Blade"
enchantments:
- "FIRE_ASPECT,2"
scalability: scalable
scriptedItem: flame_blade
Lies die Anleitung FMM Lua – Erste Schritte zum Schreiben von Item-Skripten und die FMM-API-Anleitung für Details zur Entwickler-Integration.
Mindestanforderungen
EliteMobs, Model Engine R3.0.0* oder neuer ODER FreeMinecraftModels, Blockbench**, und ein Minecraft-Ressourcenpaket.
* Dieses Plugin kann weitere Abhängigkeiten haben. Prüfe die Dokumentation auf deren Seite.
** Notwendig zum Erstellen und Bearbeiten von benutzerdefinierten Modellen. Nicht notwendig, wenn du Inhalte lediglich installieren möchtest, ohne sie zu verändern.
Wenn sowohl ModelEngine als auch FreeMinecraftModels installiert sind, verwendet EliteMobs standardmäßig FreeMinecraftModels. Es ist immer nur ein Plugin für benutzerdefinierte Modelle gleichzeitig aktiv.
Ein benutzerdefiniertes Modell manuell festlegen
Hinweis: Diese Anleitung setzt voraus, dass du bereits ein gültiges benutzerdefiniertes Modell hast. Diese liegen in Blockbench-Dateiformaten (.bbmodel) vor.
EliteMobs kann benutzerdefinierte Modelle für NPCs und Custom Bosses verwenden. Der Vorgang dafür ist für beide gleich und lautet wie folgt:
Schritt 1. Die EliteMobs-Konfiguration einstellen
Gehe zur Konfigurationsdatei des Custom Bosses oder NPCs, den du ändern möchtest, und füge die folgende Zeile hinzu:
customModel: modelname
Ersetze modelname durch den Namen deines Modells. Der Name ist der Name der benutzerdefinierten Modelldatei, die du verwendest. Zum Beispiel ist die benutzerdefinierte Modelldatei des Test Bosses showcase_boss.bbmodel. Die Konfigurationsoption sollte also lauten
customModel: showcase_boss
Und das war's für EliteMobs! Jetzt wird es etwas kniffliger.
Schritt 2. Die Model-Engine-Daten generieren
Hinweis: Im Zweifelsfall oder bei Problemen findest du das Model-Engine-Wiki hier.
- Lege deine benutzerdefinierte Modell-Blockbench-Datei (
.bbmodel) in das Verzeichnis(yourServer)/plugins/ModelEngine/blueprints. - Führe den Befehl
/meg reloadaus. Wenn alles korrekt funktioniert hat, solltest du eine Meldung erhalten, die[Model Engine] X models loadedlautet, wobeixdie Anzahl der registrierten Modelle ist.
Schritt 3. Das Ressourcenpaket verteilen
Dies ist möglicherweise der kniffligste Teil, wenn du möchtest, dass dein Server die Downloads verwaltet. Versuche zu prüfen, ob das System funktioniert, wenn du das Ressourcenpaket auf deinem Client hast, bevor du dich mit der automatischen Verteilung beschäftigst!
- Gehe zum Verzeichnis
(yourServer)/plugins/ModelEngine/resource packund erstelle mit diesen Daten ein Ressourcenpaket oder füge den darin enthaltenen Ordnerassetszu denassetsdeines Ressourcenpakets hinzu- Wenn du ein neues Ressourcenpaket erstellst, kannst du die Dateien aus
resource packin eine ZIP-Datei packen, und das ist dann ein gültiges Ressourcenpaket, das du verteilen kannst. Weitere Infos. - Wenn du bereits ein Ressourcenpaket hast, stelle sicher, dass du nicht versehentlich vorhandene Modelle überschreibst. Weitere Infos.
- Wenn du ein neues Ressourcenpaket erstellst, kannst du die Dateien aus
- Verteile dein Ressourcenpaket an deine Spieler. Nur Spieler, die das Ressourcenpaket haben, können die benutzerdefinierten Modelle sehen, und für alle anderen wird es sehr seltsam und kaputt aussehen. Wenn du beabsichtigst, diese intensiv zu nutzen, solltest du die Verwendung des Ressourcenpakets vielleicht erzwingen.
- (Optional) Damit Spieler beim Anmelden ein Ressourcenpaket herunterladen können, musst du die Datei irgendwo online hosten und das Feld
resource-pack=in der server.properties auf diese Adresse verweisen lassen.* - (Optional) Wenn du die Ressourcenpakete veränderst, solltest du die Option
resource-pack-sha1=verwenden, damit der Server prüfen kann, ob das Ressourcenpaket des Spielers aktualisiert werden muss. Um diesen Wert zu generieren, lade dein Ressourcenpaket auf http://onlinemd5.com/ hoch und stelle sicher, dass du die SHA1-Option wählst. Du musst dies jedes Mal tun, wenn du dein Ressourcenpaket aktualisierst, sonst erhalten deine Nutzer das Update nicht.* - (Optional) Um Spieler zur Verwendung von Ressourcenpaketen zu zwingen, verwende die Option
require-resource-pack=truein der server.properties.*
- (Optional) Damit Spieler beim Anmelden ein Ressourcenpaket herunterladen können, musst du die Datei irgendwo online hosten und das Feld
Wenn du die server.properties geändert hast, musst du neu starten!
* Hinweis: Es gibt viele Anleitungen online, die dir helfen können, dies zum Laufen zu bringen, falls diese Anweisungen dir nicht weiterhelfen.
Ressourcenpakete zusammenführen
Solltest du deine Ressourcenpakete zusammenführen müssen, kannst du dies manuell tun. Wir empfehlen jedoch, ein Online-Tool wie merge.elmakers zu verwenden, um deine Ressourcenpakete zusammenzuführen.
Schritt 4. Hoffen, dass es funktioniert
Vorausgesetzt, alles wurde korrekt erledigt, solltest du nun das benutzerdefinierte Modell auf deinem Boss oder NPC sehen können. Du kannst sie über die folgenden Befehle spawnen:
- Custom Boss:
/em spawn boss filename.yml - NPC:
/em place npc filename.yml
Du kannst sie anschließend über den Befehl /em remove entfernen.
Benutzerdefinierte Modelle für EliteMobs erstellen und anpassen
EliteMobs kann jedes Modell verwenden, das von Model Engine als gültig betrachtet wird, was bedeutet, dass es nicht viel gibt, was damit nicht möglich ist.
Wenn es jedoch um Animationen geht, ist die Verwendung bestimmter Namen für die Animationen erforderlich, um zu gewährleisten, dass die Bosse die Animationen verwenden können.
Diese Animationsnamen sind diejenigen, die in Blockbench im Animations-Tab festgelegt werden. Du kannst sie jederzeit umbenennen, was bedeutet, dass du jedes vorhandene Modell nachträglich an EliteMobs anpassen kannst.
Animationen
Bitte beachte, dass dieser Abschnitt noch erweitert wird, da dieses System noch sehr neu ist. Es wird mehr hinzugefügt, sobald Funktionswünsche eintreffen.
idle
idle ist der Animationsname für Entitäten, die nicht im Kampf sind und sich nicht bewegen. EliteMobs initialisiert das Modell mit dem Idle-Zustand, überschreibt jedoch nicht das integrierte Idle-Animationssystem von ModelEngine. Das Modell verwendet diese Animation automatisch über das Standardverhalten von ModelEngine/FMM.
walk
walk ist der Animationsname für Entitäten, die sich bewegen. EliteMobs initialisiert das Modell mit dem Walk-Zustand, überschreibt jedoch nicht das integrierte Walk-Animationssystem von ModelEngine. Das Modell verwendet diese Animation automatisch über das Standardverhalten von ModelEngine/FMM.
attack
Es gibt drei Arten von Angriffsanimationen:
attack
attack ist der korrekte generische Animationsname für den Fall, dass ein Boss angreift.
attack_melee
attack_melee ist der korrekte Animationsname für Angriffe, die ausgeführt werden, wenn ein Custom Boss eine Entität mit einem Vanilla-Minecraft-Nahkampfangriff angreift. Überschreibt attack. Bitte beachte, dass die Animation nach dem Verursachen des Schadens abgespielt wird. Dies ist leider vorerst eine Einschränkung. Versuche daher, die Animation sehr schnell zu gestalten.
attack_ranged
attack_ranged ist der korrekte Animationsname für Angriffe, die ausgeführt werden, wenn ein Custom Boss eine Projektil-Entität spawnt. Überschreibt attack. Bitte beachte, dass die Animation nach dem Abfeuern des Projektils abgespielt wird. Dies ist leider vorerst eine Einschränkung. Versuche daher, die Animation sehr schnell zu gestalten.
Animations-Fallback-System
EliteMobs verwendet ein Fallback-System für Angriffsanimationen:
- Wenn
attack_meleenicht definiert ist, wird aufattackzurückgegriffen - Wenn
attack_rangednicht definiert ist, wird aufattackzurückgegriffen - Wenn
attacknicht definiert ist, wird keine Animation abgespielt
Dies ermöglicht es dir, eine einzelne Angriffsanimation zu erstellen, die für alle Angriffsarten funktioniert, oder spezialisierte Animationen für Nahkampf- gegenüber Fernkampfangriffen zu erstellen.
damaged
Die damaged-Animation ist derzeit nicht implementiert. Diese Funktion ist für ein zukünftiges Release geplant. Modelle spielen bei Treffern nicht automatisch damaged-Animationen ab.
death
death ist der korrekte Animationsname für die Todesanimation. EliteMobs verändert nicht das standardmäßige Idle-Animationssystem, das Model Engine verwendet.
powers
Power-Animationen sind NOCH NICHT IMPLEMENTIERT. Diese Funktion ist für ein zukünftiges Release geplant.
Hinweis: Dieser Abschnitt befindet sich noch in der Entwicklung. Im Folgenden sind die Funktionen so beschrieben, wie sie geplant sind.
Jeder Power in EliteMobs kann eine zugewiesene Animation haben. Die Animation startet immer, wenn der Power ausgelöst wird, und während der Verwendung des Powers werden derzeit keine weiteren Auslöser bereitgestellt. Einige Powers, wie die Unverwundbarkeiten, bewirken nichts, da sie keine Auslöser haben und lediglich passive Eigenschaften der Bosse sind.
Um einem Power eine Animation zuzuweisen, muss die Animation genauso benannt sein wie die EliteMobs-Power-Datei.
Um zum Beispiel dem Power zombie_necronomicon eine Animation hinzuzufügen, sollte die Animation zombie_necronomicon.yml heißen. Sie beginnt abzuspielen, sobald der Power ausgelöst wird, und endet, wenn die Animation endet (falls sie nicht auf Schleife eingestellt ist) oder wenn der Power abgeschlossen ist.
Benutzerdefinierte Modelle aus Dungeons importieren
Schritt 1. Normaler Import
Beim Importieren eines gezippten Dungeon-Packager-Ordners, der benutzerdefinierte Modelle enthält, werden die benutzerdefinierten Modelle automatisch nach (yourServer)/plugins/ModelEngine/blueprints verschoben, und Model Engine lädt automatisch neu, um das entsprechende Ressourcenpaket und die Model-Engine-Dateien zu generieren.
Schritt 2. Ressourcenpaket
EliteMobs exportiert beim Start automatisch seine integrierten Ressourcenpaket-Dateien in den Ordner (yourServer)/plugins/EliteMobs/resource_pack. Dieser Export verwendet einen Prüfsummenvergleich, um unnötiges Kopieren zu vermeiden, sodass die Dateien nur dann aktualisiert werden, wenn sich die Plugin-Version ändert.
Du musst diese Ressourcenpaket-Dateien mit allen Model-Engine-Ressourcenpaket-Dateien zusammenführen und das kombinierte Ressourcenpaket an deine Spieler verteilen. Nur Spieler, die das Ressourcenpaket haben, können die benutzerdefinierten Modelle sehen.
Fehlerbehebung
Häufige Probleme:
-
Modell nicht sichtbar:
- Stelle sicher, dass
/meg reloaddein geladenes Modell anzeigt - Prüfe, ob das Ressourcenpaket auf dem Client installiert ist
- Stelle sicher, dass der customModel-Name mit dem .bbmodel-Dateinamen übereinstimmt (ohne Erweiterung)
- Stelle sicher, dass
-
Animationen werden nicht abgespielt:
- Stelle sicher, dass die Animationsnamen in Blockbench genau mit den dokumentierten Namen übereinstimmen
- Prüfe, ob Animationen nicht auf Schleife eingestellt sind, wenn sie einmal abgespielt werden sollen
- Teste einzelne Animationen mit den Model-Engine-Befehlen
-
Beide Plugins installiert:
- EliteMobs verwendet FreeMinecraftModels, wenn beide vorhanden sind
- Um ModelEngine zu erzwingen, deinstalliere FreeMinecraftModels