Einführung in das Thema Verhaltenspakete
Bevor du dein erstes Add-On für Minecraft: Bedrock Edition erstellst, musst du ein Paket für deine benutzerdefinierten Inhalte erstellen. Es gibt zwei Arten von Paketen, die du erstellen kannst: Ressourcen- und Verhaltenspakete. Ein Verhaltenspaket ist eine Ordnerstruktur mit Dateien, die das Verhalten von Objekten, Beute-Drops, Spawn-Regeln, Gegenständen, Rezepten und Handelstabellen steuern. In diesem Tutorial wird beschrieben, wie Verhaltenspakete erstellt werden und wie einem Kuh-Objekt im Spiel Verhaltensweisen hinzugefügt werden, um es angriffslustig zu machen.
In diesem Tutorial wird Folgendes beschrieben:
- Die Möglichkeit zur Änderung des Verhaltens eines Objekts in Minecraft: Bedrock Edition
- Die Vorgehensweise zum Verknüpfen eines Verhaltenspakets mit einem Ressourcenpaket
Voraussetzungen
Es wird empfohlen, vor Beginn dieses Tutorials Folgendes abzuschließen:
Erstellen des Verhaltenspakets
Ein Verhaltenspaket enthält Dateien, mit denen Ersteller (wie du!) Spielmechanik-Verhaltensweisen von Objekten innerhalb von Minecraft hinzufügen, entfernen oder verändern können. Die Verhaltensdatei eines Objekts sorgt dafür, dass das Objekt bestimmte Aktionen ausführt, also beispielsweise ein Huhn einem Spieler folgt, der Körner in der Hand hält.
Damit Minecraft deine Verhaltensdateien findet und verwenden kann, musst du die Ordner und Dateien in einer bestimmten Struktur einrichten. In diesem Tutorial erfährst du, wie du diesen Ordner und die Dateistruktur erstellen kannst.
Ordner erstellen
In diesem Abschnitt erstellst du einen Ordner namens My_BEHAVIOR_Pack. Du kannst den Ordner auch anders nennen. Den Namen dieses Ordners kannst du beliebig wählen, doch die Namen der anderen Ordner müssen genau so lauten, wie in diesem Tutorial angegeben, damit Minecraft weiß, wo es suchen soll.
- Öffne den Ordner com.mojang.
- Öffne den Ordner development_behavior_packs.
- Erstelle innerhalb des Ordners „development_behavior_packs“ einen neuen Ordner und nenne diesen My_BEHAVIOR_Pack.
- Öffne den Ordner My_BEHAVIOR_Pack.
Paketlistendatei erstellen
Um ein Verhaltenspaket in Minecraft laden zu können, musst du eine Paketlistendatei erstellen. Die Paketlistendatei für das Verhaltenspaket ähnelt der Datei, die für das Ressourcenpaket erstellt wurde, enthält jedoch zwei zusätzliche Abschnitte.
- modules: Definiert das Paket, damit Minecraft weiß, wie es auf die Welt angewendet werden soll. Verhaltenspakete verwenden den Typ data.
- dependencies: Erstellt eine Verknüpfung zwischen Verhaltenspaketen und Ressourcenpaketen, um eigens erstellte Texturen und visuelle Elemente zu Minecraft hinzuzufügen.
- Erstelle ein neues Dokument in deinem Ordner My_BEHAVIOR_Pack und nenne es manifest.json.
- Die Dateierweiterung muss von .txt in .json geändert werden. Wenn im Explorer-Fenster keine Dateierweiterungen angezeigt werden, kannst du die Dateinamenerweiterungen auf der Registerkarte „Ansicht“ aktivieren.
- Doppelklicke auf die Datei manifest.json, um sie in einem Texteditor zu öffnen.
- Kopiere den folgenden Code und füge ihn in deine Datei ein.
{
"format_version": 2,
"header": {
"description": "My attack cow behavior pack Add-On!",
"name": "My Behavior Pack",
"uuid":"",
"version": [1, 0, 0],
"min_engine_version": [1, 16, 0]
},
"modules":
[
{
"description": "My First Add-On!",
"type": "data",
"uuid": "",
"version": [1, 0, 0]
}
],
"dependencies": [
{
"uuid":"UUID from the header section of manifest.json in My_RESOURCE_Pack",
"version":[1,0,0]
}
]
}
UUIDs eingeben
Ähnlich wie bei der Paketlistendatei des Ressourcenpakets musst du zwei verschiedene UUIDs für die Kopfzeilen- und Modulabschnitte deiner Paketlistendatei generieren. UUIDs erhältst du von einem Online-Generator wie https://www.uuidgenerator.net/.
- Kopiere eine UUID und füge sie in den Kopfzeilenabschnitt ein. Damit die UUID korrekt gelesen werden kann, muss sie zwischen den Anführungszeichen ("") in das Feld
"uuid"
eingefügt werden. - Aktualisiere die Webseite, um eine neue UUID zur Verwendung im Modulabschnitt zu generieren.
- Kopiere die neue UUID und füge sie im Modulabschnitt zwischen den Anführungszeichen in das Feld
"uuid"
ein.
Abhängigkeit erstellen
In der Datei manifest.json des Verhaltenspakets gibt es einen dritten Abschnitt namens „dependencies“ (Abhängigkeiten). Dieser Abschnitt wird verwendet, um eine Verknüpfung zwischen einem Ressourcenpaket und einem Verhaltenspaket herzustellen. Diese Verknüpfung wird erstellt, wenn die UUID im Kopfzeilenabschnitt der Datei manifest.json des Ressourcenpakets mit der UUID im Abschnitt „dependencies“ der Datei manifest.json des Verhaltenspakets identisch ist. Um ein Verhaltenspaket zu verwenden, benötigst du kein Ressourcenpaket, und um ein Ressourcenpaket zu verwenden, benötigst du kein Verhaltenspaket. Wenn du beide Pakete hast, kannst du diese Lösung nutzen, um beide miteinander zu verknüpfen. Wenn du dann ein Verhaltenspaket in eine Welt lädst, wird das verknüpfte Ressourcenpaket automatisch geladen und aktiviert.
- Öffne die Datei manifest.json im Ordner My_RESOURCE_Pack innerhalb des Ordners development_resource_packs.
- Kopiere die UUID aus dem Abschnitt header (Kopfzeile) der Datei manifest.json des Ressourcenpakets.
- Wechsle zur Datei manifest.json im Ordner *My_BEHAVIOR_Pack innerhalb des Ordners development_behavior_packs.
- Füge die UUID in das Feld „uuid“ im Abschnitt „dependencies“ (Abhängigkeiten) ein. Vergewissere dich, dass die Angaben in Anführungszeichen exakt übereinstimmen.
- Speichere die Datei manifest.json des Verhaltenspakets.
Ordner „Entities“ (Objekte) erstellen und Kuh hinzufügen
Das Verhalten jedes Objekts wird in der zugehörigen JSON-Datei definiert, die Teil des Codes für die Ausführung von Minecraft ist. Du wirst eine neue Verhaltensdatei für eine Kuh erstellen, die Minecraft anstelle der gewöhnlichen „vanilla“-Datei verwenden wird.
- Erstelle im Ordner My_BEHAVIOR_Pack einen Ordner und nenne diesen entities (Objekte).
- Erstelle eine Textdatei im Ordner entities und nenne diese cow.json.
- Kopiere den folgenden Code und füge ihn in deine Datei cow.json ein. Wenn du die Datei gespeichert hast, kannst du loslegen!
Hinweis
Dies ist die gesamte bearbeitete Datei cow.json. Sie ist groß, denn Kühe haben viel zu tun!
{
"format_version": "1.16.0",
"minecraft:entity": {
"description": {
"identifier": "minecraft:cow",
"is_spawnable": true,
"is_summonable": true,
"is_experimental": false
},
"component_groups": {
"minecraft:cow_baby": {
"minecraft:is_baby": {},
"minecraft:scale": {
"value": 0.5
},
"minecraft:ageable": {
"duration": 1200,
"feed_items": "wheat",
"grow_up": {
"event": "minecraft:ageable_grow_up",
"target": "self"
}
},
"minecraft:behavior.follow_parent": {
"priority": 6,
"speed_multiplier": 1.1
}
},
"minecraft:cow_adult": {
"minecraft:experience_reward": {
"on_bred": "Math.Random(1,7)",
"on_death": "query.last_hit_by_player ? Math.Random(1,3) : 0"
},
"minecraft:loot": {
"table": "loot_tables/entities/cow.json"
},
"minecraft:behavior.breed": {
"priority": 3,
"speed_multiplier": 1.0
},
"minecraft:breedable": {
"require_tame": false,
"breed_items": "wheat",
"breeds_with": {
"mate_type": "minecraft:cow",
"baby_type": "minecraft:cow",
"breed_event": {
"event": "minecraft:entity_born",
"target": "baby"
}
}
},
"minecraft:interact": {
"interactions": [
{
"on_interact": {
"filters": {
"all_of": [
{
"test": "is_family",
"subject": "other",
"value": "player"
},
{
"test": "has_equipment",
"domain": "hand",
"subject": "other",
"value": "bucket:0"
}
]
}
},
"use_item": true,
"transform_to_item": "bucket:1",
"play_sounds": "milk",
"interact_text": "action.interact.milk"
}
]
}
}
},
"components": {
"minecraft:is_hidden_when_invisible": {},
"minecraft:type_family": {
"family": [
"cow",
"mob"
]
},
"minecraft:breathable": {
"total_supply": 15,
"suffocate_time": 0
},
"minecraft:navigation.walk": {
"can_path_over_water": true,
"avoid_water": true,
"avoid_damage_blocks": true
},
"minecraft:movement.basic": {},
"minecraft:jump.static": {},
"minecraft:can_climb": {},
"minecraft:collision_box": {
"width": 0.9,
"height": 1.3
},
"minecraft:nameable": {},
"minecraft:health": {
"value": 10,
"max": 10
},
"minecraft:hurt_on_condition": {
"damage_conditions": [
{
"filters": {
"test": "in_lava",
"subject": "self",
"operator": "==",
"value": true
},
"cause": "lava",
"damage_per_tick": 4
}
]
},
"minecraft:movement": {
"value": 0.25
},
"minecraft:despawn": {
"despawn_from_distance": {}
},
"minecraft:behavior.float": {
"priority": 0
},
"minecraft:behavior.panic": {
"priority": 1,
"speed_multiplier": 1.25
},
"minecraft:behavior.mount_pathing": {
"priority": 2,
"speed_multiplier": 1.5,
"target_dist": 0.0,
"track_target": true
},
"minecraft:behavior.breed": {
"priority": 3,
"speed_multiplier": 1.0
},
"minecraft:behavior.tempt": {
"priority": 4,
"speed_multiplier": 1.25,
"items": [
"wheat"
]
},
"minecraft:behavior.follow_parent": {
"priority": 5,
"speed_multiplier": 1.1
},
"minecraft:behavior.random_stroll": {
"priority": 6,
"speed_multiplier": 0.8
},
"minecraft:behavior.look_at_player": {
"priority": 7,
"look_distance": 6.0,
"probability": 0.02
},
"minecraft:behavior.random_look_around": {
"priority": 9
},
"minecraft:leashable": {
"soft_distance": 4.0,
"hard_distance": 6.0,
"max_distance": 10.0
},
"minecraft:balloonable": {},
"minecraft:rideable": {
"seat_count": 1,
"family_types": [
"zombie"
],
"seats": {
"position": [
0.0,
1.105,
0.0
]
}
},
"minecraft:physics": {},
"minecraft:pushable": {
"is_pushable": true,
"is_pushable_by_piston": true
},
"minecraft:conditional_bandwidth_optimization": {},
"minecraft:behavior.nearest_attackable_target": {
"priority": 2,
"must_see": true,
"reselect_targets": true,
"within_radius": 25.0,
"entity_types": [
{
"filters": {
"test": "is_family",
"subject": "other",
"value": "player"
},
"max_dist": 32
}
]
},
"minecraft:behavior.melee_attack": {
"priority": 3
},
"minecraft:attack": {
"damage": 3
}
},
"events": {
"minecraft:entity_spawned": {
"randomize": [
{
"weight": 95,
"trigger": "minecraft:spawn_adult"
},
{
"weight": 5,
"add": {
"component_groups": [
"minecraft:cow_baby"
]
}
}
]
},
"minecraft:entity_born": {
"add": {
"component_groups": [
"minecraft:cow_baby"
]
}
},
"minecraft:entity_transformed": {
"remove": {},
"add": {
"component_groups": [
"minecraft:cow_adult"
]
}
},
"minecraft:ageable_grow_up": {
"remove": {
"component_groups": [
"minecraft:cow_baby"
]
},
"add": {
"component_groups": [
"minecraft:cow_adult"
]
}
},
"minecraft:spawn_adult": {
"add": {
"component_groups": [
"minecraft:cow_adult"
]
}
}
}
}
}
Testen des Pakets
Jetzt, da das Verhaltenspaket sowohl eine Paketlistendatei als auch ein Kuh-Objekt enthält, ist es an der Zeit, Minecraft zu starten und dein neues Add-On zu testen. Wie schon im Tutorial für das Ressourcenpaket erläutert, funktioniert das Paket-Stacking auch für Verhaltenspakete. Dies bedeutet, dass beim Laden von Inhalten zuerst Vanilla-Inhalte geladen werden, gefolgt von eventuellen Add-Ons. Da alle Kühe über die Verhaltensdatei cow.json gesteuert werden, werden alle Kühe, die in deiner Welt spawnen, das neue Verhalten aufweisen.
- Starte Minecraft und wähle Spielen aus.
- Wähle Neue Welt erstellen aus.
- Scrolle unter Einstellungen nach unten zum Abschnitt Add-Ons.
- Klicke auf Verhaltenspakete, um alle verfügbaren Pakete anzuzeigen.
- Klicke auf das Dropdown-Menü MY PACKS, um es zu öffnen.
- Wähle My BEHAVIOR Pack aus und klicke auf Aktivieren, um das Verhaltenspaket der Welt hinzuzufügen.
- Klicke auf Erstellen, um deine Welt zu erstellen.
- Finde eine Kuh.
Problembehandlung
Probleme mit Verhaltenspaketen? Die Behandlung von Problemen ist ein normaler Bestandteil jedes Entwicklungsprozesses. Hier einige Anhaltspunkte für die Problembehandlung eines Verhaltenspakets.
Verhaltenspaket wird nicht in Minecraft angezeigt
Wenn dein Ressourcenpaket nicht im Add-Ons-Abschnitt aufgeführt ist, ist mit deiner Datei manifest.json
etwas schiefgelaufen. Fangen wir dort an.
- Sind im Kopfzeilen- und Modulabschnitt von
manifest.json
zwei verschiedene UUIDs angegeben? Weitere Informationen findest du im Abschnitt UUID. - Hast du Dateierweiterungen und -pfade aktiviert?
manifest.json
Vielleicht heißt die Datei nicht nurmanifest.json
. Wenn im Explorer-Fenster keine Dateierweiterungen angezeigt werden, kannst du Dateinamenerweiterungen auf der Registerkarte Ansicht aktivieren. - Prüfe die geschweiften und eckigen JSON-Klammern. Möglicherweise sind JSON-Linting-Tools hilfreich.
- Bei einem Problem mit einem aktiven Verhaltenspaket wird unter „Verhaltenspakete“ im Add-Ons-Abschnitt ein rotes Ausrufezeichen angezeigt.
- Das Verhaltenspaket enthält weitere Informationen. Möglicherweise wird auf eine fehlende Abhängigkeit hingewiesen oder eine Diagnose anderer Probleme durchgeführt.
Die Verhaltenspakete werden angezeigt, die Inhalte funktionieren nicht
- Prüfe, ob sich der Ordner
entities
an der richtigen Stelle befindet und sein Name richtig geschrieben ist. Prüfe dann alle Schreibweisen voncow
. - Vergewissere dich, dass die UUID im Abschnitt
dependencies
einem vorhandenen Ressourcenpaket entspricht (und dass dieses auch funktioniert). - Verschiebe dein Paket an höhere Position als andere Pakete, um sicherzugehen, dass dein Verhaltenspaket zuerst geladen wird. Paket-Stacking kann dazu führen, dass deine Änderungen nicht angezeigt werden.
Wie geht es weiter?
Nachdem du nun ein Verhaltenspaket in Aktion erlebt hast, kannst du dich eingehender mit der Verhaltensweise und den weiteren Verwendungsmöglichkeiten von Verhaltenspaketen befassen.
Wenn du dir Beispiele für unveränderte Ressourcen- und Verhaltensdateien ansehen möchtest, schau dir das Minecraft Vanilla-Ressourcenpaket und das Vanilla-Verhaltenspaket an.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für