Objektereignisse Dokumentation (Bedrock)

Aus Minecraft Wiki
Wechseln zu: Navigation, Suche

Dies ist die Dokumentation zu Objektereignisse für Bedrock Edition 1.12.0.

Version: 1.12.0.28

Allgemeine Hinweise[Bearbeiten]

Dieses Dokument enthält Details zum Auslösen verschiedener Ereignisse über Objakt-JSON-Daten. Objektereignisse können sowohl in Verhaltens- als auch in Ressourcenpaketen enthalten sein. Verhaltenspakete verwenden dieselben Animationen und Animationscontroller, die in Ressourcenpaketen verwendet werden, allerdings mit einer anderen Methode in der Entität .json selbst, um die Animationen zu aktivieren.

Entitätsereignisse sind eine Möglichkeit, das Gameplay und Änderungen des Entitätsstatus in der Bedrock-Engine voranzutreiben. Diese Ereignisse können typischerweise Schrägstrichbefehle (nur Verhaltenspakete), Entitätsereignisse (z. B. erwachsen werden) und MoLang-Ausdrücke enthalten (z. B. die MoLang-Variable "variable.foo" für eine bestimmte Entität auf 3 setzen). Animationen und Animationscontroller bieten eine Methode zum Ansteuern von Zustandsautomaten und Zeitleisten für eine Entität. Beispielsweise könnte sich ein bestimmter Animationscontroller in einem bestimmten Zustand befinden und eine bestimmte Animation ausführen, und wir möchten, dass Ereignisse ausgelöst werden, wenn dieser Zustand betreten oder verlassen wird. Alternativ könnte eine "Animation" ausgeführt werden, und wir möchten Ereignisse während dieser Animation auslösen. Die Entity Event Timeline-Mechanik macht dies möglich.

Animationshinweise[Bearbeiten]

Entitätsereignisse treten in Animationen auf, die normalerweise auf dem Client (über Ressourcenpakete) auftreten, aber auch auf dem Server (über Verhaltenspakete). Da die Serverseite des Spiels keine visuellen Aspekte aufweist, können offensichtlich keine knochenbasierten Animationen auftreten. Eine traditionelle Animation ist jedoch im Grunde eine Zeitleiste von Ereignissen, wobei die Ereignisse Knochenpositionen für ein animiertes visuelles Rig sind, das die visuelle Form der Entität bewegt. Die Mechanismen für das Bedrock-Animationssystem sind Zustandsmaschinen (Animationscontroller) und Zeitleisten (Animationen). Diese Konzepte gelten direkt für das Auslösen von Ereignissen, sodass das Animationssystem (abzüglich der visuellen Aspekte) auf dem Server ausgeführt werden kann, um Entitätsereignisse zu steuern.

Um Entitätsereignisse auf dem Server (in einem Verhaltenspaket) zu verwenden, fügen Sie einem Verhaltenspaket Animationscontroller und Animationen wie einem Ressourcenpaket hinzu. Fügen Sie einem Abschnitt "Animationen" im Beschreibungsfeld einer Entität Animation und Animationscontroller hinzu. Diese Animationen und Animationscontroller werden auf dem Server so ausgeführt, als wären sie auf dem Client in einem Ressourcenpaket. Fügen Sie den Abschnitt "Skripte" mit einem Unterabschnitt "Animieren" hinzu, um anzugeben, welche Animationen / Animationscontroller ausgeführt werden sollen.

Für clientseitige Ereignisse (Ressourcenpakete) ist keine spezielle Einrichtung erforderlich, wie dies bei clientseitigen Entitäten normalerweise bereits der Fall ist Animationen und Animationscontroller vorhanden. Fügen Sie Ihre Ereignisse einfach dort hinzu, wo Sie sie benötigen, in Animationen oder Animationscontrollern.

{
  // Beispiel für das Schema für eine serverseitige Entität, die zum Ausführen von Animationen und Animationscontrollern geändert wurde
  "format_version": "1.8.0",
  "minecraft:entity": {
    "description": {
      "identifier": "minecraft:cat",
      ...
      "animations": {
        "anim1": "animation.anim1",
        "anim2": "animation.anim2",
        "anim_controller1": "controller.animation.test1",
        "anim_controller2": "controller.animation.test2"
      },
      "scripts": {
        // Beachten Sie, dass nur diese Animationen und Animationscontroller automatisch ausgeführt werden:
        "animate": [
          "anim1",
          "anim_controller1",
          ...
         ]
      }
      ...
    },
    ...
  },
  ...
}


Events[Bearbeiten]


Ereignisse bestehen aus drei Kategorien, die alle durch eine Zeichenfolge dargestellt werden:
- Entitätsereignisse
- Schrägstrichbefehle
- MoLang-Ausdrücke

Im Detail:

Entitätsereignisse : Nur serverseitig (Verhaltenspakete). Derzeit unterstützen wir Entitätsereignisse nur für sich selbst. Diese haben die Form "@s Ereignis". Dies sind Ereignisse, die im Ereignisabschnitt der Entitätsdefinitionsdatei deklariert sind. In der Datei cat.json beispielsweise bewirkt das Ereignis "minecraft: ageable_grow_up", dass das Kätzchen erwachsen wird. Dies würde die Form von "@s minecraft: ageable_grow_up" annehmen.

Schrägstrichbefehle: Nur serverseitig (Verhaltenspakete). Jeder Schrägstrichbefehl kann aufgerufen werden, z. B. "/ Particle Minecraft: example_smoke_puff ~ ~ ~". Die angenommene Entität für den Schrägstrichbefehl ist die aufrufende Entität, daher erzeugt dieser spezielle Schrägstrichbefehl einen Rauchstoßeffekt am Standort des Objektes.

MoLang-Ausdrücke: Hiermit wird ein MoLang-Ausdruck ausgeführt. Die Hauptverwendung besteht darin, MoLang-Variablen festzulegen, die später verwendet werden können. Beispielsweise könnte ein Zustandsübergang eine bestimmte MoLang-Variable betrachten, und dieser Ausdruck könnte diese Variable ändern. Ein Partikeleffekt auf das Objekt kann aufgrund von MoLang-Variablen, die der Effekt für Farbtöne verwendet, die Farbe ändern. Eine Animation zum Bewegen eines Arms verwendet möglicherweise eine MoLang-Variable, die von einem Animationsereignis festgelegt wurde.

// Objektereignis (nur Verhaltenspakete), setzen Sie den bestimmten Ereignisnamen nach das @s
"@s minecraft:entity_event"

// Schrägstrichbefehl (nur Verhaltenspakete), kann ein beliebiger serverseitiger Schrägstrichbefehl sein
// wird von dem Objekt aufgerufen, sodass ein Teleport beispielsweise die Entität standardmäßig teleportiert
"/tell @a this is a message"

// MoLang-Ausdrücke, führt einen Molang-Ausdruck für die Entität aus
"variable.something_to_set = 3;"


Animations Controller Events[Bearbeiten]


Animations-Controller können Ereignisse beim Ein- oder Ausstieg aus einem Status auslösen. Ereignisse, die bei der Statuseingabe ausgelöst werden sollen, befinden sich im Abschnitt "on_entry", Ereignisse beim Beenden im Abschnitt "on_exit".

{
  "format_version": "1.8.0",
  "animation_controllers": {
    "controller.animation.test": {
      "states": {
        "default": {
          "on_entry": [
            "event1", // Beachten Sie, dass diese Ereignisse ein beliebiges Ereignis, ein Schrägstrichbefehl, ein MoLang oder ein Entitätsereignis sein können
            "event2",
            "event3"
          ],
          "on_exit": [
            "event1",
            "event2"
          ]
        }
      }
    }
  }
}

Animations Events[Bearbeiten]

Animationen können eine Zeitleiste haben, die Ereignissen gewidmet ist. Der Abschnitt "Zeitleiste" enthält die Liste der Ereigniszeitleisten. Im Folgenden finden Sie verschiedene Beispiele, bei denen bestimmte Zeiten ein einzelnes Ereignis oder eine Reihe von Ereignissen auslösen können:

{
  "format_version": "1.8.0",
  "animations": {
    "animation.test_events": {
      "timeline": {
        "2.0": "@s minecraft:entity_born",
        "4.0": [ "@s minecraft:ageable_grow_up" ]
      },
      "animation_length": 5.0
    },
    "animation.test_molang": {
      "timeline": {
        "0.0": "variable.pop_smoke = 1; variable.pop_bubbles = 0;",
        "3.0": [
          "variable.pop_smoke = 0;",
          "variable.pop_bubbles = 1;"
        ]
      }
    },
    "animation.test_commands": {
      "timeline": {
        "1.0": "/tell @a timeline command1",
        "2.0": [
          "/tell @a timeline command 2.1",
          "/tell @a timeline command 2.2"
        ],
        "3.0": [ "/tell @a command 3" ]
      }
    }
  }
}

See also[Bearbeiten]