Tworzenie animacji 2D w Unity
Aby utworzyć animacje 2D w Unity, programiści mogą użyć wbudowanego okna animacji i komponentu Unity Animator. Oto przewodnik krok po kroku, jak zacząć.
Konfiguracja projektu
- Otwórz Unity i utwórz nowy projekt 2D lub otwórz istniejący.
- Jeśli rozpoczynasz nowy projekt, ustaw szablon projektu jako 2D.
Importowanie zasobów Sprite
- Duszki można utworzyć w Unity za pomocą Edytora Sprite lub zaimportować z zewnętrznych plików graficznych, takich jak PNG lub JPEG.
- Aby utworzyć duszki w Unity, przejdź do menu Assets, wybierz opcję Utwórz i wybierz Sprite lub Sprite Renderer. Można wtedy narysować lub zaimportować grafikę duszka.
Konfigurowanie animacji Sprite
- Gdy duszki będą gotowe, wybierz zasób duszka w oknie Projektu.
- Upewnij się, że w oknie Inspektora typ tekstury jest ustawiony na 'Sprite (2D and UI)'. Jeśli nie, zmień go na 'Sprite (2D and UI)'.
- Kliknij zasób duszka w oknie Projektu, aby otworzyć go w Edytorze Sprite.
- Użyj Edytora Sprite, aby zdefiniować poszczególne klatki animacji. W razie potrzeby duszka można podzielić na wiele obrazów podrzędnych. Edytor umożliwia również modyfikację punktu obrotu każdej klatki, aby kontrolować położenie duszka.
- Zapisz zmiany wprowadzone w Edytorze Sprite.
Tworzenie animacji przy użyciu okna animacji
- Aby otworzyć okno animacji, przejdź do 'Window -> Animation'.
- W oknie Animacja kliknij przycisk Utwórz, aby utworzyć nowy klip animacji.
- Wybierz klip animacyjny w oknie Projektu, a jego właściwości pojawią się w oknie Inspektora.
- W oknie Inspektora można ustawić długość klipu animacji, częstotliwość próbkowania i inne właściwości.
- Aby utworzyć klatki kluczowe, przesuń głowicę odtwarzania w oknie Animacja na określony czas i zmodyfikuj właściwości duszka (np. położenie, skalę, obrót itp.) w oknie Scena lub Hierarchia.
- Dodawaj klatki kluczowe w różnych momentach, aby uzyskać płynną animację. Unity automatycznie interpoluje wartości pomiędzy klatkami kluczowymi.
Konfigurowanie animatora
- Wybierz obiekt duszka w oknie Scena lub Hierarchia.
- W oknie Inspektora kliknij przycisk Dodaj Komponent i wyszukaj "Animator", aby dodać komponent Animator do obiektu.
- Kliknij przycisk Utwórz w komponencie Animator, aby utworzyć nowy zasób Animator Controller.
- Przypisz nowo utworzony Kontroler Animatora do pola Kontroler komponentu Animator.
Konfigurowanie kontrolera animatora
- Kliknij dwukrotnie nowo utworzony zasób Animator Controller, aby otworzyć go w oknie Animatora.
- W oknie Animatora znajduje się wykres Kontrolera Animatora, który przedstawia przepływ animacji.
- Kliknij prawym przyciskiem myszy w oknie Animatora i wybierz 'Create State -> From New Clip' lub 'From Sprite Renderer', aby utworzyć stany animacji.
- Przeciągnij i upuść wcześniej utworzone klipy animacyjne w oknie Animacja na odpowiednie stany animacji.
- Twórz przejścia pomiędzy stanami animacji, klikając stan i przeciągając strzałkę do innego stanu. Możliwe jest dostosowanie warunków przejścia, takich jak czas, wartości parametrów lub zdarzenia.
- Możliwe jest dodanie parametrów sterujących przejściami, takich jak boole, int lub wyzwalacze. Na przykład może istnieć parametr bool o nazwie "IsRunning", który wyzwala przejście ze stanu animacji bezczynności do stanu animacji działającej.
Odtwarzanie animacji
- Wybierz obiekt duszka w oknie Scena lub Hierarchia.
- W komponencie Animator w oknie Inspektora przeciągnij utworzony zasób Animator Controller na pole Kontroler.
- Naciśnij przycisk Play w oknie Animacja, aby przetestować i wyświetlić podgląd animacji.
Programowe kontrolowanie animacji
- Programowe sterowanie animacjami wymaga dostępu do komponentu Animator z skryptu.
- W skrypcie utwórz zmienną typu Animator i użyj 'GetComponent<Animator>()', aby uzyskać odwołanie do komponentu Animator dołączonego do obiektu sprite.
- Można następnie użyć funkcji i właściwości Animatora do wyzwalania przejść, ustawiania wartości parametrów lub sterowania odtwarzaniem animacji. Na przykład wywołanie animator.SetBool("IsRunning", true) spowoduje uruchomienie uruchomionej animacji.
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;
}
}
Wniosek
To jest podstawowy przegląd tworzenia animacji 2D w Unity przy użyciu wbudowanych narzędzi. Unity obsługuje także bardziej zaawansowane techniki, takie jak używanie arkuszy ikonek, kinematyka odwrotna (IK) i niestandardowa animacja skryptów behaviours. Przeglądaj te opcje w oparciu o konkretne wymagania i złożoność danych animacji.