Rotation

Aus Starcraft Wiki

Wechseln zu: Navigation, Suche

Die Rotation in StarCraft II ist über zwei Vektoren definiert: Ein Forward Vector und ein Up Vector. Der Forward Vector definiert die Blickrichtung der Einheit, der Up Vector definiert wo oben ist, kann also die Drehung der Einheit um den Forward Vector beeinflussen.

Anleitung zum Einstellen der Rotation

Um die Rotation fest zu legen, muss man erst einen Rotations-Actor erstellen. Man wechselt also im Daten-Editor in die Actor-Ansicht und Erstellt dort via Data-Add Object ein neues Objekt. Als Typ wählt man dann die Site Operation Explicit Rotation. ("Forward Vector", "Up Vector" und "Variance Rotation" sind ebenfalls Site-Operations, die man für die Rotation verwenden kann). In der eben erstellten Site-Operation kann man nun mit den Feldern Forward Vector und Up Vector (siehe oben) die Rotation festlegen. Mit dem Feld "Actor - Is Local" legt man fest, ob die Rotation fest sein soll, oder sich der Blickrichtung der Einheit anpassen soll (local). Letzteres ist das, was man bei Einheiten meistens haben will, da die Einheit sonst nur in eine Richtung gucken kann. Es kann aber in Verbindung mit anderen Site-Operations (zum Beispiel SOpBankerBattlecruiser) zu Animationsfehlern kommen.

Nachdem man das Rotations-Objekt erstellt hat kann man es nun beim Actor der zu drehenden Einheit unter dem Feld "Hosting - Host Site Operations - Operations" eintragen. Wenn man die Einheit nun im Editor platziert sollte sie in der eigestellten Drehung dargestellt werden. Schon platzierte Einheiten nehmen die Drehung manchmal erst nach einem Neustart des Terrain-Editors an.


Rotation per Trigger ändern

Wenn man die Rotation per Trigger verändern will, so kann man hierfür eine Actor Message verwenden:

Rotate Actor to Deg

Options: Action
Return Type: (None)
Parameters
Actor = No Unit <Unit>
Angle = 0.0 <Real>
Angle from XY = 0.0 <Real>
Grammar Text: Rotate Actor to Deg(Actor, Angle, Angle from XY)
Hint Text: (None)
Custom Script Code
Local Variables
ForwardX = 0 <Integer>
ForwardY = 0 <Integer>
UpX = 0 <Integer>
UpY = 0 <Integer>
Actions
Actor - Send actor message (SetRotation (* ((Cos(Angle)))) (* ((Sin(Angle)))) (Sin(Angle from XY)) 0 0 1.0) to main actor of unit Actor

Quelle: Grogian bei sc2mapster.com