2D-animaties maken in eenheid

Om 2D-animaties te maken in Unity kunnen ontwikkelaars het ingebouwde animatievenster en de Unity Animator-component gebruiken. Hier vindt u een stapsgewijze handleiding om aan de slag te gaan.

Het project opzetten

  • Open Unity en maak een nieuw 2D-project of open een bestaand project.
  • Als u een nieuw project start, stelt u de projectsjabloon in als 2D.

Sprite-middelen importeren

  • De sprites kunnen binnen Unity worden gemaakt met behulp van de Sprite Editor of worden geïmporteerd uit externe afbeeldingsbestanden zoals PNG of JPEG.
  • Om sprites binnen Unity te maken, ga naar het menu Assets, selecteer Maken en kies Sprite of Sprite Renderer. Het is dan mogelijk om de sprite-illustraties te tekenen of te importeren.

Sprite-animatie configureren

  • Zodra de sprites gereed zijn, selecteert u het sprite-item in het projectvenster.
  • Zorg ervoor dat in het infovenster het Textuurtype is ingesteld op 'Sprite (2D and UI)'. Als dit niet het geval is, wijzigt u dit in 'Sprite (2D and UI)'.
  • Klik op het sprite-element in het projectvenster om het in de Sprite-editor te openen.
  • Gebruik de Sprite-editor om de afzonderlijke frames van de animatie te definiëren. De sprite kan indien nodig in meerdere subafbeeldingen worden opgesplitst. De editor maakt het ook mogelijk om het draaipunt voor elk frame te wijzigen om de positie van de sprite te bepalen.
  • Sla de wijzigingen op die u in de Sprite-editor hebt aangebracht.

Animaties maken met behulp van het animatievenster

  • Ga naar 'Window -> Animation' om het animatievenster te openen.
  • Klik in het animatievenster op de knop Maken om een ​​nieuwe animatieclip te maken.
  • Selecteer de animatieclip in het projectvenster en de eigenschappen ervan verschijnen in het infovenster.
  • In het Inspector-venster is het mogelijk de lengte, de bemonsteringsfrequentie en andere eigenschappen van de animatieclip in te stellen.
  • Om keyframes te maken, verplaatst u de afspeelkop in het animatievenster naar een specifieke tijd en wijzigt u de eigenschappen van de sprite (bijvoorbeeld positie, schaal, rotatie, etc.) in het scène- of hiërarchievenster.
  • Voeg op verschillende tijdstippen keyframes toe om een ​​vloeiende animatie te creëren. Unity interpoleert automatisch de waarden tussen de sleutelframes.

De animator instellen

  • Selecteer het sprite-object in het venster Scène of Hiërarchie.
  • Klik in het infovenster op de knop Component toevoegen en zoek naar "Animator" om de Animator-component aan het object toe te voegen.
  • Klik op de knop Maken in de Animator-component om een ​​nieuw Animator Controller-middel te maken.
  • Wijs de nieuw gemaakte Animator Controller toe aan het veld Controller van de Animator-component.

De animatorcontroller configureren

  • Dubbelklik op het nieuw gemaakte item Animator Controller om het in het Animator-venster te openen.
  • In het Animator-venster bevindt zich een Animator Controller-grafiek, die de stroom van animaties weergeeft.
  • Klik met de rechtermuisknop in het Animator-venster en selecteer 'Create State -> From New Clip' of 'From Sprite Renderer' om animatiestatussen te maken.
  • Sleep de eerder gemaakte animatiefragmenten in het animatievenster naar de respectievelijke animatiestatussen.
  • Creëer overgangen tussen animatiestatussen door op een staat te klikken en de pijl naar een andere staat te slepen. Het is mogelijk om de voorwaarden voor de transitie aan te passen, zoals tijd, parameterwaarden of gebeurtenissen.
  • Het is mogelijk om parameters toe te voegen om de overgangen te besturen, zoals bools, ints of triggers. Er kan bijvoorbeeld een bool-parameter zijn met de naam "IsRunning" die een overgang activeert van een inactieve animatiestatus naar een actieve animatiestatus.

De animaties afspelen

  • Selecteer het sprite-object in het venster Scène of Hiërarchie.
  • Sleep in de Animator-component in het Inspector-venster het gemaakte Animator Controller-middel naar het veld Controller.
  • Druk op de knop Afspelen in het animatievenster om de animaties te testen en een voorbeeld ervan te bekijken.

Animaties programmatisch besturen

  • Voor het programmatisch besturen van animaties is toegang tot de Animator-component vereist vanuit het script.
  • Maak in het script een variabele van het type Animator en gebruik 'GetComponent<Animator>()' om een ​​verwijzing te krijgen naar de Animator-component die aan het sprite-object is gekoppeld.
  • Het is vervolgens mogelijk om de functies en eigenschappen van de Animator te gebruiken om overgangen te activeren, parameterwaarden in te stellen of het afspelen van de animaties te regelen. Als u bijvoorbeeld de animator.SetBool("IsRunning", true) aanroept, wordt de lopende animatie geactiveerd.
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;
    }
}

Conclusie

Dit is een basisoverzicht van het maken van 2D-animaties in Unity met behulp van de ingebouwde tools. Unity ondersteunt ook meer geavanceerde technieken, zoals het gebruik van sprite-sheets, inverse kinematica (IK) en scripting van aangepast animatie-gedrag. Verken deze opties op basis van de specifieke vereisten en de complexiteit van de animaties in kwestie.

Voorgestelde artikelen
Hoe u een terrein in eenheid kunt creëren
Een Ludo-spel maken in eenheid
Een Screamer-spel maken in Unity
Ontdek de toegangspoort tot grenzeloze creativiteit met eenheid
Een inleiding tot procedurele generatie in eenheid
Hoe je een overlevingsspel in eenheid maakt
Point-and-Click-spellen maken in Unity