Agency-Hud: Filozofia projektowania HUD dla FiveM, którego naprawdę chce każdy serwer
Agency-Hud został stworzony, aby dać graczom potrzebne informacje bez wprowadzania wizualnego szumu. Oto jak do tego podeszliśmy.
Agency Scripts
Założyciel i główny deweloper w Agency Scripts
Problem z HUD
Domyślny HUD w FiveM to katastrofa. Gracze kończą z kilkoma nakładającymi się na siebie elementami walczącymi o miejsce na ekranie, brakiem spójnego języka wizualnego i kluczowymi informacjami ukrytymi pod zbędnymi ozdobnikami. Każdy serwer, na który wchodziliśmy, miał ten sam problem: za dużo HUD-a, za mało przejrzystości. Agency-Hud powstał, aby to naprawić.
Hierarchia informacji
Podzieliliśmy elementy HUD na trzy poziomy. Poziom pierwszy jest zawsze widoczny: zdrowie, pancerz, głód, pragnienie. Poziom drugi wyświetla się kontekstowo: prędkościomierz pojazdu podczas jazdy, wskaźnik zasięgu głosu podczas mówienia. Poziom trzeci jest na żądanie: przełącznik minimapy, status pracy, ekwipunek. Każdy poziom ma własną wagę wizualną oraz płynnie się pojawia i znika. Nic nie rywalizuje o uwagę, chyba że ma znaczenie w danym momencie.
Wbudowana dostępność
Tryb wysokiego kontrastu, konfigurowalny rozmiar oraz wskaźniki statusu bezpieczne dla osób ze ślepotą barw są dostępne od razu po instalacji. W 2026 roku to nie opcja, wśród twoich graczy znajdą się osoby o różnych potrzebach wzrokowych, a profesjonalny HUD wychodzi im naprzeciw. Właściciele serwerów mogą przełączać te ustawienia domyślne dla swojej społeczności.
Wydajność podczas spawnowania pojazdów
Największą pułapką wydajności HUD jest ponowne renderowanie podczas intensywnego spawnu pojazdów lub NPC. Agency-Hud używa pojedynczego render target z aktualizacjami delta, odświeżamy tylko zmienione elementy, a nie całą nakładkę. Na 64-osobowym serwerze podczas eventu napadu, nasz HUD zużywał w benchmarkach jedną dziesiątą tego, co porównywalne alternatywy.
Personalizacja bez chaosu
Właściciele serwerów mogą zmieniać pozycję każdego elementu HUD, podmieniać motywy kolorystyczne i ukrywać wybrane części z poziomu jednego pliku konfiguracyjnego. Świadomie nie dodajemy jednak rynku motywów ani pozycjonowania po stronie użytkownika: HUD, który stworzysz, jest dokładnie tym, co widzi każdy gracz, co zapewnia spójność wizualną twojego serwera. Spójność to funkcja.
Instalacja & konfiguracja
Agency-Hud nie wymaga bazy danych. Pobierz z Tebex, wrzuć folder do katalogu resources i dodaj ensure agency-hud do server.cfg. Resource automatycznie wykrywa Twój framework i pobiera wartości zdrowia, pancerza, głodu oraz pragnienia z odpowiednich źródeł. W przypadku konfiguracji standalone hooki danych to cztery funkcje w configu.
Jeśli zastępujesz istniejący HUD, najpierw wyłącz stary. Większość konfliktów HUD wynika z renderowania dwóch zasobów w tym samym obszarze ekranu jednocześnie. Agency-Hud nie ma sztywno przypisanych obszarów ekranu, wszystkie pozycje są konfigurowalne, więc w razie potrzeby może współistnieć z nakładkami firm trzecich.
Opcje konfiguracji
Ten config.lua obejmuje ustawienia układu, graficzne i wydajnościowe:
- Pozycje elementów, Pozycja X/Y oraz punkt zakotwiczenia dla każdego elementu HUD osobno.
- Skala, globalny współczynnik skali i nadpisywanie skali dla poszczególnych elementów. Przydatne dla użytkowników monitorów ultrawide.
- Schemat kolorów, kolory podstawowy, ostrzegawczy i krytyczny dla wskaźników statusu. Domyślnie używana jest paleta Agency oparta na kolorze morskim.
- Tryb wysokiego kontrastu, wstępnie skonfigurowany zestaw kolorów zoptymalizowany dla graczy o niskiej wrażliwości na kontrast.
- Tryb dla daltonistów, presety dla deuteranopii, protanopii i tritanopii dla kolorów wskaźników statusu.
- Warunki poziomu drugiego, zdefiniuj dokładnie, jakie warunki wyświetlają poszczególne elementy kontekstowe (prędkościomierz, wskaźnik głosu itp.).
- Zachowanie minimapy, zawsze włączone, przełączanie przy ruchu lub wyłącznie ręczne przełączanie.
- Częstotliwość odświeżania, jak często HUD sprawdza zmiany wartości. Domyślnie: 250ms (zbalansowane pod kątem wydajności).
Kompatybilność z frameworkami
Agency-Hud zawiera adaptery danych dla QBCore i ESX. W przypadku standalone zaimplementuj funkcje w config dla zdrowia, pancerza, głodu, pragnienia, zasięgu głosu i danych pracy. Warstwa renderowania, system animacji, logika poziomów i tryby dostępności są całkowicie niezależne od frameworka. Zmiana frameworka wymaga jedynie wymiany adaptera danych, a nie ponownej instalacji resource.
Dlaczego ma to znaczenie dla roleplay
HUD to jedyny element interfejsu, który jest zawsze na ekranie. W przeciwieństwie do telefonu czy tabletu, które gracz otwiera celowo, HUD działa w tle: istnieje na granicy percepcji i wpływa na każdy moment rozgrywki. Źle zaprojektowany HUD nieustannie obciąża wrażenia każdego gracza. Dobry jest niewidoczny: obecny, gdy jest potrzebny, ukryty, gdy nie, i nigdy nie walczy o uwagę, na którą nie zasłużył.
Podejście oparte na wielopoziomowej widoczności to kluczowy element projektu. Poziom pierwszy (zawsze widoczny, mały) stale informuje graczy o najważniejszych rzeczach: "czy umieram, czy jestem głodny, czy mam pancerz?". Poziom drugi (kontekstowy, pojawia się warunkowo) informuje graczy sytuacyjnie: "jak szybko jadę, czy mój mikrofon jest włączony?". Poziom trzeci (na żądanie) informuje graczy okazjonalnie: "jaki jest mój status pracy, co mam w podręcznym ekwipunku?".
Dostępność w Agency-Hud nie jest sprawą drugorzędną, lecz kwestią priorytetową, ponieważ znaczna część graczy ma zaburzenia rozpoznawania barw. HUD nieczytelny dla graczy ze ślepotą barw to nie tylko porażka UX, to brak dostępności wpływający na realnych ludzi na twoim serwerze. Udostępnienie gotowych profili nic nie kosztuje, a znaczy bardzo wiele dla graczy, którzy ich potrzebują.
Często zadawane pytania
Czy gracze mogą dostosować własny układ HUD?
Nie, to zamierzone. Właściciele serwerów kontrolują układ HUD, a gracze nie. To decyzja o spójności: serwer, na którym każdy gracz ma inny układ HUD, to serwer bez spójnej tożsamości wizualnej. Jeśli chcesz zaoferować graczom ograniczony wybór (przełączanie minimapy, skalowanie rozmiaru), opcje te można udostępnić jako komendy w grze zapisujące do tabeli preferencji gracza.
Czy Agency-Hud zastępuje domyślną minimapę FiveM?
Tak. Renderuje własną minimapę na elemencie canvas z konfigurowalnym przybliżeniem i wyświetlaniem punktów nawigacyjnych. Natywna minimapa jest ukrywana przy starcie zasobu. Jeśli musisz zachować określone zachowania natywnej minimapy (niektóre narzędzia anticheat się pod nią podpinają), dostępna jest Config.UseNativeMinimap = true opcja, która ponownie włącza natywną mapę pod pozostałymi elementami Agency-Hud.
Jak wygląda wydajność na zatłoczonych serwerach?
Agency-Hud korzysta z delta renderingu, przerysowuje tylko te elementy HUD, których wartości zmieniły się od ostatniej klatki. Na zatłoczonym serwerze ze 128 graczami typowe wywołanie renderowania HUD zajmuje 0.01-0.03ms na klatkę. Porównanie w naszej dokumentacji pokazuje, że jest to 3-5x mniej niż w większości alternatywnych HUDów w identycznych warunkach.
Czy mogę dodać własne elementy HUD dla specyficznych mechanik serwera?
Tak. Użyj exports['agency-hud']:RegisterElement(id, options) aby dodać własne wskaźniki. Przekaż funkcję render, którą Agency-Hud wywołuje podczas pętli rysowania. Twoje niestandardowe elementy uczestniczą w systemie tierów i automatycznie respektują schemat kolorów serwera.
Wymagania
- Serwer FiveM (QBCore, ESX lub standalone)
- konto cfx.re z ważną licencją Agency-Hud
- Brak zależności od bazy danych
- Opcjonalnie: ox_lib (dla komponentów UI, posiada fallback)