Projekt LOOP · w rozwoju

Godot UniPlayer

Modularny kontroler postaci 3D dla Godot 4, składany z niezależnych zdolności, zachowań i gotowych prefabów.

Podgląd projektu Godot UniPlayer
Źródło: GamesNotDeveloped / YouTube

Godot UniPlayer to otwarty, modularny kontroler postaci 3D dla Godota 4. Zamiast jednego rozbudowanego skryptu lub zamkniętego prefabrykatu projekt pozwala budować sterowanie z małych, niezależnych zdolności (abilities) i zachowań (behaviours), które można dobierać do potrzeb konkretnej gry.

Projekt zapewnia gotowy punkt startowy, ale nie narzuca docelowej konstrukcji kontrolera. Można użyć dostarczonego prefabu, dostosować jego parametry, dodać kolejne komponenty jako węzły potomne albo utworzyć własną postać na bazie klas UniPlayera. Dzięki temu ten sam fundament może służyć zarówno do szybkiego prototypowania, jak i do budowania wyspecjalizowanego kontrolera rozwijanego razem z grą.

Architektura komponentowa

Rdzeniem rozwiązania jest bazowa klasa gracza współpracująca z węzłami odpowiedzialnymi za pojedyncze funkcje. Ruch, obrót głowy, kamera, interakcje czy stan postaci nie muszą być na stałe połączone w jednej hierarchii dziedziczenia. Funkcjonalność kontrolera wynika z zestawu komponentów obecnych w scenie, dlatego można ją rozszerzać, ograniczać lub wymieniać bez przepisywania całego systemu.

Gotowe prefaby, w tym kontroler postaci FPS, można bezpośrednio dodać do sceny i skonfigurować przez właściwości eksportowane w edytorze. Bardziej zaawansowane projekty mogą zduplikować prefab, uczynić go lokalnym, zmienić jego strukturę albo rozszerzyć własną klasą. UniPlayer obsługuje również własne modele i kształty kolizji, więc warstwa sterowania nie jest związana z konkretną reprezentacją postaci.

Dostępne możliwości

Aktualny zestaw komponentów obejmuje między innymi:

  • poruszanie się, bieg, kucanie, skok, spadanie i odgłosy kroków,
  • obrót głowy i kamery, zoom oraz efekt kołysania podczas ruchu,
  • wykrywanie podłoża i interakcję z obszarami lub obiektami,
  • zdrowie, regenerację, głód, zatrucie i wpływ odurzenia na sterowanie,
  • obsługę śmierci oraz kilka strategii odradzania postaci,
  • automatyczne przechwytywanie kursora i pomocniczy węzeł RotationHelper.

Własne zdolności i zachowania można implementować na tej samej bazie co komponenty wbudowane. Filmowa demonstracja pokazuje ten proces na przykładzie zachowania zmieniającego sposób poruszania i obraz kamery, dodanego do istniejącego kontrolera bez modyfikowania jego podstawowych funkcji.

Zastosowanie i rozwój

UniPlayer jest przeznaczony przede wszystkim dla postaci opartych na CharacterBody3D. Może być lekką bazą do gier pierwszoosobowych, eksploracyjnych, symulatorów i prototypów wymagających szybkiego uruchomienia sterowanej postaci. Obsługa kontrolerów wykorzystujących fizykę RigidBody3D oraz pojazdów pozostaje kierunkiem dalszego rozwoju, a nie funkcją bieżącej wersji.

Projekt jest nadal rozwijany, dlatego część API i zachowań może się zmieniać. Kod jest dostępny na licencji BSD-3-Clause, co pozwala wykorzystywać go także w projektach komercyjnych, modyfikować i rozbudowywać bez uzależniania produktu od zamkniętego rozwiązania. Finansowanie UniPlayera jest przypisane do wspólnego budżetu Godot Plugins.

Filmy

Test modularnego kontrolera postaci

Dodawanie własnego zachowania

Zrzuty ekranu