Erstellen von 2D-Animationen in Unity

Um 2D-Animationen in Unity zu erstellen, können Entwickler das integrierte Animationsfenster und die Unity Animator-Komponente verwenden. Hier finden Sie eine Schritt-für-Schritt-Anleitung für den Einstieg.

Einrichten des Projekts

  • Öffnen Sie Unity und erstellen ein neues 2D-Projekt oder öffnen Sie ein vorhandenes.
  • Wenn Sie ein neues Projekt starten, legen Sie die Vorlage des Projekts auf 2D fest.

Sprite-Assets importieren

  • Die Sprites können innerhalb von Unity mit dem Sprite-Editor erstellt oder aus externen Bilddateien wie PNG oder JPEG importiert werden.
  • Um Sprites in Unity zu erstellen, gehen Sie zum Menü Assets, wählen Sie „Erstellen“ und wählen Sie entweder „Sprite“ oder „Sprite Renderer“. Anschließend ist es möglich, die Sprite-Grafik zu zeichnen oder zu importieren.

Konfigurieren der Sprite-Animation

  • Sobald die Sprites fertig sind, wählen Sie das Sprite-Asset im Projektfenster aus.
  • Stellen Sie im Inspektorfenster sicher, dass der Texturtyp auf 'Sprite (2D and UI)' eingestellt ist. Wenn nicht, ändern Sie es in 'Sprite (2D and UI)'.
  • Klicken Sie im Projektfenster auf das Sprite-Asset, um es im Sprite-Editor zu öffnen.
  • Verwenden Sie den Sprite-Editor, um die einzelnen Frames der Animation zu definieren. Das Sprite kann bei Bedarf in mehrere Unterbilder aufgeteilt werden. Der Editor ermöglicht auch die Änderung des Drehpunkts für jeden Frame, um die Position des Sprites zu steuern.
  • Speichern Sie die im Sprite-Editor vorgenommenen Änderungen.

Erstellen von Animationen mithilfe des Animationsfensters

  • Um das Animationsfenster zu öffnen, gehen Sie zu 'Window -> Animation'.
  • Klicken Sie im Animationsfenster auf die Schaltfläche „Erstellen“, um einen neuen Animationsclip zu erstellen.
  • Wählen Sie den Animationsclip im Projektfenster aus und seine Eigenschaften werden im Inspektorfenster angezeigt.
  • Im Inspektorfenster können Sie die Länge, die Abtastrate und andere Eigenschaften des Animationsclips festlegen.
  • Um Keyframes zu erstellen, bewegen Sie den Abspielkopf im Animationsfenster auf eine bestimmte Zeit und ändern Sie die Eigenschaften des Sprites (z. B. Position, Skalierung, Drehung usw.) im Szenen- oder Hierarchiefenster.
  • Fügen Sie Keyframes zu unterschiedlichen Zeitpunkten hinzu, um eine flüssige Animation zu erstellen. Unity interpoliert automatisch die Werte zwischen den Keyframes.

Einrichten des Animators

  • Wählen Sie das Sprite-Objekt im Szenen- oder Hierarchiefenster aus.
  • Klicken Sie im Inspektorfenster auf die Schaltfläche Komponente hinzufügen und suchen Sie nach "Animator", um die Animator-Komponente zum Objekt hinzuzufügen.
  • Klicken Sie in der Animator-Komponente auf die Schaltfläche „Erstellen“, um ein neues Animator-Controller-Asset zu erstellen.
  • Weisen Sie den neu erstellten Animator-Controller dem Controller-Feld der Animator-Komponente zu.

Konfigurieren des Animator-Controllers

  • Doppelklicken Sie auf das neu erstellte Asset Animator Controller, um es im Animator-Fenster zu öffnen.
  • Im Animator-Fenster gibt es ein Animator-Controller-Diagramm, das den Animationsfluss darstellt.
  • Klicken Sie mit der rechten Maustaste in das Animator-Fenster und wählen Sie 'Create State -> From New Clip' oder 'From Sprite Renderer', um Animationszustände zu erstellen.
  • Ziehen Sie die zuvor erstellten Animationsclips im Animationsfenster per Drag & Drop auf die jeweiligen Animationszustände.
  • Erstellen Sie Übergänge zwischen Animationszuständen, indem Sie auf einen Zustand klicken und den Pfeil in einen anderen Zustand ziehen. Es ist möglich, die Übergangsbedingungen wie Zeit, Parameterwerte oder Ereignisse anzupassen.
  • Es ist möglich, Parameter hinzuzufügen, um die Übergänge zu steuern, z. B. Bools, Ints oder Trigger. Beispielsweise kann es einen Bool-Parameter namens "IsRunning" geben, der einen Übergang von einem Leerlauf-Animationszustand zu einem laufenden Animationszustand auslöst.

Abspielen der Animationen

  • Wählen Sie das Sprite-Objekt im Szenen- oder Hierarchiefenster aus.
  • Ziehen Sie in der Animator-Komponente im Inspektorfenster das erstellte Animator-Controller-Asset auf das Controller-Feld.
  • Klicken Sie im Animationsfenster auf die Schaltfläche Play, um die Animationen zu testen und in der Vorschau anzuzeigen.

Animationen programmgesteuert steuern

  • Für die programmgesteuerte Steuerung von Animationen ist der Zugriff auf die Animator-Komponente über das script erforderlich.
  • Erstellen Sie im Skript eine Variable vom Typ Animator und verwenden Sie 'GetComponent<Animator>()', um einen Verweis auf die Animator-Komponente abzurufen, die an das Sprite-Objekt angehängt ist.
  • Anschließend ist es möglich, die Funktionen und Eigenschaften des Animators zu verwenden, um Übergänge auszulösen, Parameterwerte festzulegen oder die Wiedergabe der Animationen zu steuern. Wenn Sie beispielsweise animator.SetBool("IsRunning", true) aufrufen, wird die laufende Animation ausgelöst.
using UnityEngine;

public class AnimationController : MonoBehaviour
{
    private Animator animator;

    private void Start()
    {
        // Get a reference to the Animator component
        animator = GetComponent<Animator>();
    }

    private void Update()
    {
        // Check for input or condition to trigger animations
        if (Input.GetKeyDown(KeyCode.Space))
        {
            // Trigger a jump animation
            animator.SetTrigger("Jump");
        }

        float moveInput = Input.GetAxis("Horizontal");
        animator.SetFloat("Speed", Mathf.Abs(moveInput));

        // Check if the character is grounded
        bool isGrounded = IsGrounded();

        // Set the "IsGrounded" parameter in the Animator
        animator.SetBool("IsGrounded", isGrounded);

        if (isGrounded && Input.GetKeyDown(KeyCode.C))
        {
            // Trigger a crouch animation
            animator.SetBool("IsCrouching", true);
        }

        if (isGrounded && Input.GetKeyUp(KeyCode.C))
        {
            // Stop the crouch animation
            animator.SetBool("IsCrouching", false);
        }
    }

    private bool IsGrounded()
    {
        // Implement your own logic to check if the character is grounded
        // For example, you can use raycasting or collision detection
        // and return true if the character is touching the ground
        // and false otherwise.
        return false;
    }
}

Abschluss

Dies ist ein grundlegender Überblick über die Erstellung von 2D-Animationen in Unity mit den integrierten Tools. Unity unterstützt auch fortgeschrittenere Techniken wie die Verwendung von Sprite Sheets, inverser Kinematik (IK) und die Erstellung von Skripten für benutzerdefinierte Animationen Verhalten. Erkunden Sie diese Optionen basierend auf den spezifischen Anforderungen und der Komplexität der jeweiligen Animationen.

Empfohlene Artikel
Erstellen eines mobilen Horrorspiels in Unity
So erstellen Sie ein Handyspiel in Unity
So erstellen Sie Gelände in Unity
Erstellen eines Ludo-Spiels in Unity
So erstellen Sie ein Quizspiel in Unity
So erstellen Sie ein 2D-Spiel wie Super Mario in Unity
So erstellen Sie ein Überlebensspiel in Unity