Animationen können in deinen Roblox-Spielen ein äußerst nützliches Werkzeug sein, denn sie können Charaktere zum Leben erwecken oder dem Spieler visuelles Feedback geben. Ein Videospiel lässt sich am besten als »interaktives Erlebnis« beschreiben und du musst es dem Spieler ermöglichen, auf so viele Arten wie möglich mit der Spielwelt zu interagieren, indem du mit den verfügbaren Mitteln die verschiedenen Sinne ansprichst.
Genau wie bei Filmen sind es vor allem die Sinne Sehen und Hören, auf die ein Entwickler mit einem Spiel Einfluss nehmen kann. Daher kannst du Animationen – und andere visuelle oder akustische Hinweise – verwenden, um Emotionen, Aktionen und mehr auszulösen. In vielen Fällen ist eine Animation von Hand die beste Methode, solche Effekte zu erzielen, etwa durch das Verhalten eines Charakters oder durch vorgegebene Bewegungen. Wir erklären dir hier die Grundlagen der Programmierung von Animationen.
Position und Rotation
Die beste Methode, deine Spielwelt zum Leben zu erwecken, ist die Animation der darin befindlichen Objekte. Schaltflächen sollten sich bewegen, wenn sie betätigt werden, Türen sollten sich öffnen und Monster sollten versuchen, auf dich einzuschlagen.
Um Objekte in einem Spiel zu bewegen, werden zwei wichtige Eigenschaften verwendet, auf die via Code zugegriffen wird: Position und Rotation (Drehung). Wie du in der Abbildung siehst, verfügen alle Parts in einem Spiel über Werte für die Position und die Orientierung der X-, Y- und Z-Achse.

In der nächster Abbildung ist erkennbar, dass die X-Achse (rot) und die Z-Achse (blau) in einer Ebene liegen, während die Y-Achse (grün) von oben nach unten verläuft.

Die Informationen über diese Werte sind in einem Datentyp gespeichert, der als CFrame bezeichnet wird, was eine Abkürzung für coordinate frame ist. Eine Möglichkeit, die Werte für Rotation und Position zu ändern, besteht darin, einen neuen CFrame mit den gewünschten Koordinaten und der dazugehörigen Rotation bereitzustellen. Das Format für das Erstellen eines neuen CFrame lautet: CFrame.new(X, Y, Z), wobei X, Y und Z Variablen oder Zahlen sind.
Bewegen eines Objekts von Punkt A nach Punkt B
Es kommt ziemlich häufig vor, dass man einen Part ein kleines Stück von seiner aktuellen Position fortbewegen möchte. Unten siehst du eine große rote Schaltfläche (links), die sich ein kleines Stück nach unten bewegt und grün wird, wenn man sie anklickt (rechts).

Einrichten des Modells für die Schaltfläche
Um eine Schaltfläche zu erstellen, mit der Spieler interagieren können, benötigst du separate Parts für die Schaltfläche selbst und ihren Sockel. Damit die Schaltfläche funktioniert, musst du ein Script in Kombination mit einem ClickDetector-Objekt verwenden, um zu erkennen, dass die Schaltfläche angeklickt wurde. ClickDetectors sind plattformunabhängig, funktionieren also auf Mobilgeräten, PCs und Macs.
1. Erstelle eine Schaltfläche und einen Sockel, in dem sie versinken kann. Vergewissere dich, dass die Schaltfläche ein einzelner Part ist, denn Modelle werden etwas anders gehandhabt.
2. Füge der Schaltfläche einen ClickDetector und ein Script hinzu, um erkennen zu können, ob der Spieler die Schaltfläche angeklickt hat.

3. Füge den folgenden Code hinzu. Der Code in onClick() wird ausgeführt, wenn die Schaltfläche angeklickt wird.
local button = script.Parent
local clickDetector = button.ClickDetector
local function onClick()
print("Schaltfläche wurde angeklickt")
end
clickDetector.MouseClick:Connect(onClick)
Einrichten eines neuen CFrames
Nun betrachten wir den aktuellen CFrame der Schaltfläche und fügen ihr einen neuen hinzu, wenn der Spieler klickt. Zunächst musst du jedoch feststellen, in welche Richtung der Part bewegt werden soll. Da der Part sich relativ zu seiner eigenen Position bewegt, kannst du die Werkzeuge für lokale Verschiebung/Rotation verwenden.
Neben der unteren rechten Ecke des ausgewählten Objekts sollte ein L angezeigt werden. Sollte das nicht der Fall sein, musst du (Strg)+(L) oder +(L) drücken, um den Modus zu wechseln.

Im folgenden Beispiel soll sich der Part in Richtung der Y-Achse bewegen.
1. Lege fest, entlang welcher Achse sich der Part bewegen soll. Vergewissere dich, dass du die Werkzeuge für lokale Transformationen verwendest.
2. Füge nach der print-Anweisung die hervorgehobene Codezeile ein, um auf den aktuellen CFrame zuzugreifen und mit CFrame.new einzustellen, wie weit du den Part verschieben möchtest. In diesem Beispiel wird der Part um -0.4 Studs entlang der Y-Achse bewegt.
local function onClick()
print("Schaltfläche wurde angeklickt")
button.CFrame = button.CFrame * CFrame.new(0, -0.4, 0)
end
3. Starte einen Spieltest. Eventuell musst du mit den Werten experimentieren, damit sich die Schaltfläche wie gewünscht bewegt.

Dieser Artikel ist ein Auszug aus dem Buch „Games mit Roblox. Der offizielle Roblox Guide.“ Alle Infos zum Buch, das Inhaltsverzeichnis und eine kostenlose Leseprobe findet ihr bei uns im Shop.