Zeige Ergebnis 1 bis 7 von 7
  1. #1
    Maps Benutzerbild von Küken
    Registriert seit
    Jul 2007
    Beiträge
    451
    Likes
    0

    [Data] Kettenblitz

    Inhaltsverzeichnis
    1. Einleitung
    2. Voraussetzungen
    3. Pro&Contra
    4. As Simple As Possible
      1. Prinzip
      2. Step By Step
    5. Der Standard
      1. Prinzip
      2. Step By Step
    6. Die Testmap
    7. Q&A
    8. Credits


    1: Einleitung

    In diesem Tutorial beschreibe ich verschiedene Möglichkeiten, mit dem Dateneditor eine Fähigkeit zu erstellen, die von Ziel zu Ziel springt und die einzelnen Ziele mit einem Strahl verbindet; allgemein bekannt als ein Kettenblitz.



    Es gibt bereits verschiedene Tutorials zu dem Thema auf anderen Webseiten, zum Beispiel Dynamic Beam Chains von ProzaicMuze oder Recursive Chain Lightning von Flaffen, deren Methoden ich mich auch zum Teil bediene; allerdings haben wir noch kein deutsches Tutorial hier auf der Seite.

    Außerdem haben ProzaicMuze und ich eine neue Methode gefunden, die im Vergleich zu den vorher genannten Methoden das Erstellen eines Kettenblitzes stark vereinfachen kann und sogar noch einige Probleme mit diesen Methoden behebt bzw umgeht.

    Anmerkung: Ich benutze den englischen Editor und werde daher größtenteils englische Editorausdrücke verwenden.

    Wenn nicht näher spezifiziert, drückt für die ID eines Objekts immer auf den Suggest - Button und lasst die Einstellung für das Based On - Feld unverändert.


    2: Voraussetzungen

    • etwas Erfahrung im Dateneditor allgemein könnte hilfreich sein, man sollte aber auch ohne zurechtkommen
    • Starcraft 2


    3: Pro & Contra

    Hier eine Zusammenstellung der mir bekannten Vor- und Nachteile der benutzen Methode im Vergleich zu den oben genannten bekannten Methoden, einen Kettenblitz zu erstellen.

    Pro:
    • Verhältnismäßig wenig Aufwand
    • Benötigt wesentlich weniger Objekte
    • Vermeidet einige Bugs, wie zum Beispiel beim Tod der getroffenen Einheiten
    • Kann ohne Probleme von mehreren Einheiten gleichzeitig angewandt werden (Mui)


    Contra:
    • Mir sind bisher keine Nachteile bekannt



    4: As simple as possible

    Das hier wird ein Beispiel für einen Kettenblitz mit sehr niedrigem Aufwand. Es wird quasi nur ein Spell mit Flächenschaden, der all seine getroffenen Ziele mit einem Blitz verknüpft. Er kann sehr schnell realisiert werden, zeigt jedoch nicht das Verhalten eines typischen Kettenblitzes.
    Ziele werden nur in einem Bereich rund um die Zieleinheit gesucht; es gibt keine Verzögerung nach jedem Sprung und keine Limitierung der Sprünge. Es werden einfach alle Einheiten im Zielgebiet getroffen; der Kettenblitz macht nur rein visuell einen Unterschied.

    Einen etwas komplexeren Kettenblitz findest du in Punkt 5.

    4.1: Prinzip

    Da der Spell einfach nur Flächenschaden austeilen soll, brauchen wir eigentlich nur 2 Effekte: Einen Search - Effekt und einen Damage - Effekt. Ich benutze für alle meine Spells gern noch einen zusätzlichen Initialeffekt vom Typ Create Persistent, damit ich später sehr einfach bestimmte Werte des Spells modifizieren kann (zb Channelzeit einfügen, mehrfach casten etc etc); das ist aber Geschmackssache, den könnt ihr im Prinzip auch weglassen.

    Dann brauchen wir noch einen Action - Actor, der unseren Beam erzeugt. Das Besondere ist hier; dass wir das Launch Request - Feld benutzen, um den Beam jeweils am Endpunkt des vorherigen Beams starten zu lassen.

    4.2: Step by Step

    Effects

    Neuer Effekt, Name Easy Chain Lightning Damage, Typ Damage
    • Combat: Amount -> 20


    Neuer Effekt, Name Easy Chain Lightning Search, Typ Search Area
    • Search: Areas + -> neuer Eintrag, Radius -> 0.3, Effekt -> Easy Chain Lightning Damage
    • Search: Search Filters -> bei Ally und Player die Haken entfernen.
    • Setzt außerdem folgende Felder auf Excluded:
      • Dead
      • Hidden
      • Invulnerable
      • Item
      • Missile
      • Stasis
    • Target: Target Sorts + -> füge TSRandom hinzu


    Neuer Effekt, Name Easy Chain Lightning Initial, Typ Create Persistent
    • Effect: Period Count -> 1
    • Effect: Periodic Effects + -> Easy Chain Lightning Search hinzufügen
    • Target: Location + -> Target Unit


    Buttons

    Neuer Button, Name Easy Chain Lightning
    • Ändere das Icon und den Tooltip nach belieben.


    Abilities

    Neue Fähigkeit, Name Easy Chain Lightning, Typ Effect - Target
    • Ability: Commands + Default Button -> Easy Chain Lightning
    • Ability: Target Filters + ->bei Ally und Player die Haken entfernen.
    • Setzt außerdem folgende Felder auf Excluded:
      • Dead
      • Hidden
      • Invulnerable
      • Item
      • Missile
      • Stasis
    • Effect: Effect + -> Easy Chain Lightning Initial
    • Stats: Range + -> 6


    Actors
    Neuer Actor, Name Easy Chain Lightning Attack, Type Action, basierend auf Generic Attack
    • Attack Effect token -> Easy Chain Lightning Damage
    • Art: Beam -> Interceptor Attack Beam
    • Target: Launch Request + Subject -> _ImpactGuide


    Units

    Wähle die gewünschte Einheit aus
    • Ability: Abilities + -> füge Easy Chain Lightning hinzu
    • Ability: Command Card
    • Easy Chain Lightning - Button auf freiem Platz einfügen
    • Command Type -> Ability Command
    • Ability -> Easy Chain Lightning



    Jetzt könnt ihr noch nach Belieben Verbesserungen vornehmen, zB eine Einschlaggrafik oder einen Sound hinzufügen, den Caster eine Spellanimation abspielen lassen oder ähnliches.


    5: Der Standard

    Dieser Spell soll eine genaue Nachbildung eines Kettenblitzes darstellen, wie er zB vom Far Seer in Warcraft 3 erlernt werden kann. Im Vergleich zu unserem ersten Spell weist dieser einige Unterschiede auf, wie zum Beispiel die begrenzte Anzahl getroffener Ziele, der Delay nach jedem Jump und die Möglichkeit, auch Gegner außerhalb des anfänglichen Wirkungsbereiches zu treffen, falls der Blitz entsprechend springt.

    Das wird schon etwas komplexer zu realisieren und erfordert einige zusätzliche Objekte.



    5.1: Prinzip

    Wir werden, aufbauend auf dem vorherigen Spell, wieder einen entsprechend konfigurierten Action - Actor verwenden. Allerdings benötigen wir für die weiteren Mechaniken einige Änderungen:

    • Es wird immer nur ein Ziel gleichzeitig getroffen: Wir werden den Search - Effekt entsprechend konfigurieren.

    • Nach jedem Sprung gibt es eine kurze Verzögerung: Dafür werden wir einen zusätzlichen Create Persistent - Effekt benutzen.

    • Es soll keine Einheit mehrfach getroffen werden: Hier können wir einfach Marker an bereits getroffenen Zielen anbringen und diese vor dem nächsten Ziel abfragen.

    • Sprünge sollen bei der aktuellen Zieleinheit das nächste Ziel suchen, nicht bei dem ersten anvisierten Ziel: Das erreichen wir durch entsprechende Anordnung und Konfiguration der Effekte.

    • Die Anzahl der Sprünge bzw der getroffenen Ziele soll begrenzt sein: Das werden wir realisieren, indem ein Behavior bei jedem Sprung auf dem Caster angebracht wird. Dieses Behavior stackt, um die Anzahl der Sprünge zu zählen. Bei einer bestimmten Menge Stacks wird der Blitz abgebrochen.
      In dieses Behavior könnte man bei Bedarf auch die Schadensreduzierung für jeden weiteren Jump einbauen, das lasse ich jetzt bewusst weg.
    • Es gibt dadurch noch ein Problem, wenn der Caster stirbt. Natürlich können dann die Behaviors nicht mehr angebracht werden, somit würde der Blitz unbegrenzt weiterspringen, so lang er Ziele hat und der Caster tot ist. Das muss noch behoben werden, ich hab mich bisher aber noch für keine Methode entschieden.



    5.2: Step by Step

    Behaviors

    Neues Behavior, Name Standard Chain Lightning Counter, Typ Buff
    • Behavior: Buff Flags + -> Haken bei Refresh Stack
    • Stats: Duration -> 0.3125
    • Stats: Flags -> Haken bei Hidden
    • Stats: Maximum Stack Count -> 15


    Validators

    Neuer Validator, Name Standard Chain Lightning Check, Typ Unit Compare Behavior Count
    • Validator: Behavior -> Standard Chain Lightning Counter
    • Validator: Compare -> Less Than
    • Validator: Unit -> Caster
    • Validator: Value -> 15

    Effects

    Neuer Effekt, Name Standard Chain Lightning Apply, Typ Apply Behavior
    • Behavior: Behavior -> Standard Chain Lightning Counter
    • Unit: Unit -> Caster


    Neuer Effekt, Name Standard Chain Lightning Damage, Typ Damage
    • Combat: Amount -> 20


    Neuer Effekt, Name Standard Chain Lightning Impact, Typ Set
    • Effect: Effects -> füge Standard Chain Lightning Damage und Standard Chain Lightning Apply hinzu
    • Effect: Validators + -> füge No Markers hinzu




    Neuer Effekt, Name Standard Chain Lightning Search, Typ Search Area
    • Search: Areas + -> neuer Eintrag, Radius -> 0.3, Effekt -> Standard Chain Lightning Impact
    • Search: Maximum Count -> 1
    • Search: Search Filters -> bei Ally und Player die Haken entfernen.
    • Setzt außerdem folgende Felder auf Excluded:
      • Dead
      • Hidden
      • Invulnerable
      • Item
      • Missile
      • Stasis
    • Target: Target Sorts + -> füge TSDistanceToTarget hinzu


    Neuer Effekt, Name Standard Chain Lightning Persistent, Typ Create Persistent
    • Effect: Period Count -> 1
    • Effect: Period Duration -> 0.25
    • Effect: Periodic Effects + -> Standard Chain Lightning Search hinzufügen
    • Effect: Validators -> Standard Chain Lightning Check
    • Target: Location + -> Target Unit


    Neuer Effekt, Name Standard Chain Lightning Initial, Typ Create Persistent
    • Effect: Period Count -> 1
    • Effect: Periodic Effects + -> Standard Chain Lightning Impact hinzufügen
    • Target: Location + -> Target Unit
    • Target: Marker + -> Haken bei Match Flags -> Id


    Wähle Standard Chain Lightning Impact aus
    • Effect: Effects -> füge Standard Chain Lightning Persistent hinzu


    Buttons

    Neuer Button, Name Standard Chain Lightning
    • Ändere das Icon und den Tooltip nach belieben.


    Abilities

    Neue Fähigkeit, Name Standard Chain Lightning, Typ Effect - Target
    • Ability: Commands + Default Button -> Standard Chain Lightning
    • Ability: Target Filters + ->bei Ally und Player die Haken entfernen.
    • Setzt außerdem folgende Felder auf Excluded:
      • Dead
      • Hidden
      • Invulnerable
      • Item
      • Missile
      • Stasis
    • Effect: Effect + -> Standard Chain Lightning Initial
    • Stats: Range + -> 6


    Actors

    Neuer Actor, Name Standard Chain Lightning Attack, Type Action, basierend auf Generic Attack
    • Attack Effect token -> Standard Chain Lightning Damage
    • Art: Beam -> Archon Attack Beam
    • Target: Launch Request + Subject -> _ImpactGuide


    Units

    Wähle die gewünschte Einheit aus
    • Ability: Abilities + -> füge Standard Chain Lightning hinzu
    • Ability: Command Card
    • Standard Chain Lightning - Button auf freiem Platz einfügen
    • Command Type -> Ability Command
    • Ability -> Standard Chain Lightning

    Und wieder könnt ihr die Assets und Animationen nach euren Wünschen verändern


    6: Die Testmap




    In der Testmap findet ihr beide Spells in ihrer fertigen Version. Alle Objekte sind so benannt, wie in den Step By Step Anweisungen beschrieben; zusätzliche Objekte besitzen ein "Test" - Prefix und dienen dementsprechend nur zu Testzwecken.




    7: Q&A

    Wenn ihr Fragen habt, zögert nicht, sie zu stellen. Ich werde, wenn möglich, alle wichtigen Fragen mit Antworten hier übernehmen.

    Zitat Zitat von Sanktoras Beitrag anzeigen
    1. Könntest du das mit den Markern noch etwas genauer erklären? Mir ist dieses Konzept völlig neu. Ich habe zwar verstanden, wofür man sie verwendet, nicht aber, wie genau man sie konfigurieren muss (was soll z. B. "Match Flags -> Id"?).
    Marker bieten eine Möglichkeit, Einheiten, die durch bestimmte Effekte getroffen werden, zu markieren. Sie haben keine weiteren Eigenschaften; sie können durch mehrfaches Anwenden eines Effektes mehrfach gestackt werden und du kannst die Anzahl dieser Stacks per Validator abfragen oder mit einem Target Sort nach der Anzahl der Stacks sortieren.

    Du kannst sie dir wie ein Behavior vorstellen, was du auf die Gegner stackst und später wieder abfragst.

    Marker werden hauptsächlich so eingesetzt, wie ich das hier gemacht habe; man benutzt eine Waffe oder einen Effekt, der konfiguriert ist, Marker anzubringen. Dann überprüft man in einem späteren Effekt mithilfe des No Markers - Validators, ob das Ziel bereits markiert wurde.

    Markers funktionieren seltsamerweise nicht immer wie erwartet, nach Möglichkeit würde ich die Marker immer durch einen Create Persistent - Effekt oder eine Waffe anbringen, die funktionieren recht zuverlässig.

    Den Unterschied zwischen Match Flags und Mismatch Flags kann ich dir nicht erklären; es wird üblicherweise nur ersteres benutzt.

    Die unterschiedlichen Flags spezifizieren, wer oder was genau den Marker anbringt. Wenn du zB hier Casting Player auswählst, wird vom Spieler ein Marker platziert, dementsprechend würde ein zweiter Kettenblitz von einem anderen Spieler diesen Marker auch anerkennen und somit bereits getroffene Ziele des ersten Kettenblitzes nicht mehr treffen.
    Casting Unit sollte dann klar sein, Id bezieht sich auf die interne ID des Objektes, das die Marker anbringt; sie ist exklusiv für die aktuelle Instanz des Spells. Entsprechende Marker interferieren also in keinster Weise mit anderen Instanzen des gleichen Spells.
    Link benutzt den String, der weiter oben angegeben wird, als globale Referenz; alle Marker mit diesem Link werden beachtet. So kannst du unterschiedliche Spells die gleichen Marker benutzen lassen.

    Zitat Zitat von Sanktoras Beitrag anzeigen
    was macht die Eigenschaft "Target: Launch Request" allgemein
    Nach meinem Verständnis sucht das Target: Launch Request - Feld, wenn spezifiziert, nach einem Actor im aktuellen Scope mit den Eigenschaften, die du einstellst und benutzt diesen dann als Launch - Punkt. Wenn es einen entsprechenden Actor findet, ignoriert es sämtliche andere Einstellungen für den Punkt (wie die Launch Attachment Query oder die Launch Site Operations). Wenn es keinen findet, wird ganz normal die Launch Attachment Query benutzt.

    Zitat Zitat von Sanktoras Beitrag anzeigen
    was ist "_ImpactGuide"?
    _ImpactGuide ist der vordefinierte Alias für den Impact Site actor, der jedes Mal erstellt wird, wenn ein Action-Actor einen Impact auslöst. Der Site Actor definiert den exakten Punkt des Einschlags und kann über diesen Alias angesteuert werden.

    Du kannst diesen Alias übrigens auch ändern, im Target: Impact Guide Alias - Feld des Action Actors.


    Diese beiden Sachen mache ich mir zunutze, ich suche per Launch Request nach einem bereits vorhandenen Impact Guide; wenn noch keiner da ist, wird einfach die Launch Attachment Query benutzt, der Blitz startet an der Waffe des Casters, oder wie auch immer du ihn konfigurierst. Nach dem ersten Jump ist aber dann bereits ein Impact Guide vorhanden, der dann automatisch als Startpunkt für den nächsten Jump genommen wird. Dieser wird für jeden weiteren Jump neu überschrieben, das sorgt dann für den Kettenblitz.

    Das Ganze ist dabei intelligent genug, nur Impact Guides für die aktuelle Instanz des Spells zu beachten, keine anderen Impact Guides von unabhängigen Action Actors oder ähnliches.



    8: Credits

    Credits gehen an die bereits erwähnten ProzaicMuze und Fullen für ihre englischsprachigen Tutorials zu diesem Thema.
    Geändert von Küken (05. April 2012 um 20:02 Uhr)
    There's no spark.
    No light in the dark.


  2. #2
    Benutzerbild von Sanktoras
    Registriert seit
    Jan 2011
    Ort
    Berlin
    Beiträge
    178
    Likes
    1
    Hi Kueken,
    wieder mal ein sehr gutes Tutorial.

    Zwei Fragen habe ich allerdings noch:
    1. Könntest du das mit den Markern noch etwas genauer erklären? Mir ist dieses Konzept völlig neu. Ich habe zwar verstanden, wofür man sie verwendet, nicht aber, wie genau man sie konfigurieren muss (was soll z. B. "Match Flags -> Id"?).
    2. Wie genau funktioniert "Target: Launch Request + Subject -> _ImpactGuide" beim Aktuer? D. h. was macht die Eigenschaft "Target: Launch Request" allgemein und was ist "_ImpactGuide"?.

    Wäre nett, wenn du mir die beiden Fragen beantworten könntest. Ich ziehe es gewöhnlich vor, auch die Hintergründe hinter etwas zu verstehen

    MfG Sanktoras

  3. #3
    Maps Benutzerbild von Küken
    Registriert seit
    Jul 2007
    Beiträge
    451
    Likes
    0
    Zitat Zitat von Sanktoras Beitrag anzeigen
    1. Könntest du das mit den Markern noch etwas genauer erklären? Mir ist dieses Konzept völlig neu. Ich habe zwar verstanden, wofür man sie verwendet, nicht aber, wie genau man sie konfigurieren muss (was soll z. B. "Match Flags -> Id"?).
    Marker bieten eine Möglichkeit, Einheiten, die durch bestimmte Effekte getroffen werden, zu markieren. Sie haben keine weiteren Eigenschaften; sie können durch mehrfaches Anwenden eines Effektes mehrfach gestackt werden und du kannst die Anzahl dieser Stacks per Validator abfragen oder mit einem Target Sort nach der Anzahl der Stacks sortieren.

    Du kannst sie dir wie ein Behavior vorstellen, was du auf die Gegner stackst und später wieder abfragst.

    Marker werden hauptsächlich so eingesetzt, wie ich das hier gemacht habe; man benutzt eine Waffe oder einen Effekt, der konfiguriert ist, Marker anzubringen. Dann überprüft man in einem späteren Effekt mithilfe des No Markers - Validators, ob das Ziel bereits markiert wurde.

    Markers funktionieren seltsamerweise nicht immer wie erwartet, nach Möglichkeit würde ich die Marker immer durch einen Create Persistent - Effekt oder eine Waffe anbringen, die funktionieren recht zuverlässig.

    Den Unterschied zwischen Match Flags und Mismatch Flags kann ich dir nicht erklären; es wird üblicherweise nur ersteres benutzt.

    Die unterschiedlichen Flags spezifizieren, wer oder was genau den Marker anbringt. Wenn du zB hier Casting Player auswählst, wird vom Spieler ein Marker platziert, dementsprechend würde ein zweiter Kettenblitz von einem anderen Spieler diesen Marker auch anerkennen und somit bereits getroffene Ziele des ersten Kettenblitzes nicht mehr treffen.
    Casting Unit sollte dann klar sein, Id bezieht sich auf die interne ID des Objektes, dass die Marker anbringt, sie ist exklusiv für die aktuelle Instanz des Spells. Entsprechende Marker interferieren also in keinster Weise mit anderen Instanzen des gleichen Spells.
    Link benutzt den String, der weiter oben angegeben wird als globale Referenz; alle Marker mit diesem Link werden beachtet. So kannst du unterschiedliche Spells die gleichen Marker benutzen lassen.

    Ganz schön lang geworden, muss ich wohl auch mal nen Guide drüber machen xD.
    Hilft dir das weiter?

    was macht die Eigenschaft "Target: Launch Request" allgemein
    Nach meinem Verständnis sucht das Target: Launch Request - Feld, wenn spezifiziert, nach einem Actor im aktuellen Scope mit den Eigenschaften, die du einstellst und benutzt diesen dann als Launch - Punkt. Wenn es einen entsprechenden Actor findet, ignoriert es sämtliche andere Einstellungen für den Punkt (wie die Launch Attachment Query oder die Launch Site Operations). Wenn es keinen findet, wird ganz normal die Launch Attachment Query benutzt.

    was ist "_ImpactGuide"?
    _ImpactGuide ist der vordefinierte Alias für den Impact Site actor, der jedes Mal erstellt wird, wenn ein Action-Actor einen Impact auslöst. Der Site Actor definiert den exakten Punkt des Einschlags und kann über diesen Alias angesteuert werden.

    Du kannst diesen Alias übrigens auch ändern, im Target: Impact Guide Alias - Feld des Action Actors.


    Diese beiden Sachen mache ich mir zunutze, ich suche per Launch Request nach einem bereits vorhandenen Impact Guide; wenn noch keiner da ist, wird einfach die Launch Attachment Query benutzt, der Blitz startet an der Waffe des Casters, oder wie auch immer du ihn konfigurierst. Nach dem ersten Jump ist aber dann bereits ein Impact Guide vorhanden, der dann automatisch als Startpunkt für den nächsten Jump genommen wird. Dieser wird für jeden weiteren Jump neu überschrieben, das sorgt dann für den Kettenblitz.

    Das Ganze ist dabei intelligent genug, nur Impact Guides für die aktuelle Instanz des Spells zu beachten, keine anderen Impact Guides von unabhängigen Action Actors oder ähnliches.
    There's no spark.
    No light in the dark.

  4. #4
    Benutzerbild von Sanktoras
    Registriert seit
    Jan 2011
    Ort
    Berlin
    Beiträge
    178
    Likes
    1
    Vielen Dank für die Erklärungen. Es hat sehr geholfen.

  5. #5
    Benutzerbild von SpeedMaster22
    Registriert seit
    Apr 2011
    Ort
    NRW
    Beiträge
    271
    Likes
    0
    Gutes Tutorial aber was anderes hab ich bei dir auch nicht erwartet. ^^
    Immer wieder erstaunlich was mann doch alles mit dem Data-Editor machen kann.

  6. #6
    Benutzerbild von Santispi
    Registriert seit
    Aug 2017
    Beiträge
    34
    Likes
    1
    Der Aufwand ist wirklich nicht so groß, gutes Tutorial.

  7. #7
    Benutzerbild von Cocktail
    Registriert seit
    Sep 2017
    Ort
    Meßkirch
    Beiträge
    1
    Likes
    0
    Zitat Zitat von Santispi Beitrag anzeigen
    Der Aufwand ist wirklich nicht so groß, gutes Tutorial.
    Genau. Bis jetzt ist es eines der besten, das ich irgendwann getroffen habe. Tolles Arbeit
    Sei immer so wie Du willst

Forumregeln

  • Es ist dir nicht erlaubt, neue Themen zu verfassen.
  • Es ist dir nicht erlaubt, auf Beiträge zu antworten.
  • Es ist dir nicht erlaubt, Anhänge hochzuladen.
  • Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
  •