Jak malować za pomocą układu cząstek w Unity

Unity Silnik, znany ze swojego różnorodnego i dynamicznego zestawu narzędzi, oferuje niezliczone sposoby tworzenia wciągających wrażeń. Wśród nich wyróżnia się Particle System jako wszechstronne narzędzie do efektów wizualnych, od symulacji deszczu i dymu po tworzenie skomplikowanych animacji. Mniej zbadanym zastosowaniem tego systemu jest malowanie w scenie Unity. W tym samouczku przedstawiono innowacyjną aplikację systemu cząstek do symulacji działania malowania na powierzchniach w Unity.

Warunki wstępne

1. Konfiguracja sceny

  • Uruchom Unity i utwórz nowy projekt 3D (jeśli jeszcze tego nie zrobiłeś)
  • W oknie Hierarchia kliknij prawym przyciskiem myszy i wybierz Obiekt 3D -> 'Plane'. To będzie działać jak płótno.
  • Aby zachować spójność, dostosuj położenie płaszczyzny do (0, 0, 0).

2. Tworzenie układu cząstek

  • Kliknij prawym przyciskiem myszy w oknie Hierarchia i wybierz 'Effects' -> 'Particle System'.
  • Zmień nazwę układu cząstek na "ParticlePainter".
  • Umieść obiekt "ParticlePainter" nieco nad płaszczyzną.

3. Konfigurowanie układu cząstek do malowania

  • Po wybraniu obiektu "ParticlePainter" przejdź do okna Inspektora.

W polu 'Particle System' wprowadź następujące zmiany:

  • 'Duration': 1
  • 'Start Lifetime': 'Infinity' (zapewnia to, że cząstki nie giną)
  • 'Start Speed': 0 (cząsteczki nie powinny się poruszać)
  • 'Emission' -> 'Rate over Time': 100 (dostosuj zgodnie z preferencjami gęstości malowania)
  • Przejdź do 'Shape' i wybierz "Circle". Dostosuj promień do mniejszej wartości, aby kontrolować rozmiar pędzla.
  • W obszarze 'Renderer' zmień Materiał na niestandardowy materiał lub kolor reprezentujący farbę.

4. Pisanie skryptów dla mechanika malowania

Teraz dodany zostanie skrypt kontrolujący, kiedy i gdzie emitowane są cząstki.

  • Kliknij prawym przyciskiem myszy w oknie Zasoby, wybierz 'Create' -> 'C# Script' i nazwij go "ParticlePainterScript".
  • Kliknij dwukrotnie skrypt, aby otworzyć go w edytorze, wklej do niego poniższy kod, a następnie zapisz skrypt:
using UnityEngine;

public class ParticlePainterScript : MonoBehaviour
{
    private ParticleSystem painterParticles;
    private bool canPaint = false;

    void Start()
    {
        painterParticles = GetComponent<ParticleSystem>();
    }

    void Update()
    {
        PaintMechanic();
    }

    void PaintMechanic()
    {
        if (Input.GetMouseButton(0))
        {
            if (!canPaint) 
            {
                painterParticles.Play();
                canPaint = true;
            }
        }
        else
        {
            painterParticles.Stop();
            canPaint = false;
        }

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
        RaycastHit hit;
        
        if (Physics.Raycast(ray, out hit))
        {
            transform.position = hit.point;
        }
    }
}
  • Dołącz "ParticlePainterScript" do obiektu "ParticlePainter" w edytorze Unity.

5. Regulacja aparatu

Dostosuj kamerę główną do widoku z góry:

  • Ustaw pozycję na (0, 10, 0) i obrót na (90, 0, 0).

6. Przetestuj scenę

  • Kliknij przycisk Odtwórz.
  • Przytrzymaj lewy przycisk myszy i przesuń kursor nad płaszczyznę. Powinny zostać wyemitowane cząsteczki, tworząc efekt przypominający farbę.

Pytania i Odpowiedzi:

  1. Dlaczego warto używać systemu Particle System do malowania zamiast tradycyjnych metod malowania tekstur?: System Particle System oferuje dynamiczne informacje zwrotne w czasie rzeczywistym, można go w dużym stopniu dostosowywać i zapewniać unikalne efekty wizualne. Dodatkowo w niektórych sytuacjach może być bardziej wydajny, szczególnie w przypadku tymczasowych efektów malarskich.
  2. Czy tą metodą można pomalować wiele kolorów?: Tak, tworząc układy wielu cząstek lub dostosowując kolor cząstek w czasie, można uzyskać różne efekty kolorystyczne.
  3. W jaki sposób można dynamicznie zmieniać rozmiar pędzla?: Dostosowując wartość 'radius' kształtu Systemu Cząstek w czasie rzeczywistym za pomocą skryptów, rozmiar pędzla można zmieniać dynamicznie.

Wniosek

Po zakończeniu tego samouczka zbadane zostało nowe i unikalne zastosowanie Unity Układu Cząstek. Niezależnie od tego, czy chodzi o mechanikę gry, narzędzia artystyczne, czy innowacyjne doświadczenia, Unity nadal zaskakuje swoimi wszechstronnymi możliwościami.

Sugerowane artykuły
Utwórz efekt pianki do myjki ciśnieniowej w Unity
Implementowanie efektów cząsteczkowych w jedności
Praca z systemem interfejsu użytkownika Unity
Niezbędne wskazówki dotyczące przetwarzania końcowego dla Unity
Tworzenie prostego modułu cieniującego trawę w Unity
Jak dodać zombie do gier Unity
Jak zrobić grafikę retro przypominającą PS1 w Unity