Wskazówki dotyczące dostępności

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Dostępność to praktyka projektowania produktów i usług, aby były one używane przez osoby z niepełnosprawnościami. Ostatnie statystyki wskazują, że ponad 26% ludzi ma jakąś formę niepełnosprawności, więc uczynienie Twojej gry na Roblox dostępną może pomóc Ci dotrzeć do szerszej publiczności.

Rozmiar tekstu

Gracze mogą mieć trudności z odczytaniem małego tekstu. Porównaj poniższe menu sklepu w grze z nałożonym rozmyciem, symulując, jak może wyglądać to dla kogoś z upośledzeniem wzroku.

Przykład małego tekstu na interfejsie użytkownika

Jeśli zwiększysz rozmiar mniejszych etykiet, stanie się to bardziej czytelne dla większości graczy.

Przykład większego tekstu na interfejsie użytkownika

Kontrast kolorów

Gracze mogą mieć trudności z odczytaniem jasnego tekstu na jasnym tle lub ciemnego tekstu na ciemnym tle. Aby poprawić dostępność, zaleca się wybieranie kolorów tekstu i tła z odpowiednim kontrastem kolorów.

Przykład elementów UI z wysokim kontrastem
Przykład elementów UI z niskim kontrastem

Niezależność od kolorów

Ponad 5% ludzi na świecie ma jakiś rodzaj daltonizmu. Chociaż rzadko zdarza się, aby ktoś widział tylko w czerni i bieli, wyobraź sobie grę w odcieniach szarości:

Przykład interfejsu użytkownika pokazany w pełnym kolorze

Modyfikując obraz, aby używać różnych symboli obok kolorów, więcej graczy może rozróżniać sytuacje w grze i w innych kontekstach:

Przykład interfejsu użytkownika pokazany w pełnym kolorze

Niezależność od dźwięku

Dźwięk jest doskonałym dodatkiem do immersyjnych gier, ale gracze z upośledzeniem słuchu lub ci, którzy wyłączają dźwięk, będą zdezorientowani przez wydarzenia w grze, które są tylko przekazywane dźwiękiem.

Rozważ poniższą scenę, w której dzwoniący telefon sygnalizowany jest tylko dźwiękiem, a następnie sygnalizowany zarówno dźwiękiem jak i wizualnymi wskazówkami.

Preferencje gracza

Różne ustawienia wizualne są dostępne dla graczy z menu Ustawienia w Robloxie oraz w grze, w tym preferowana przezroczystość, preferowany rozmiar tekstu i zmniejszone ruchy. Aby zapewnić optymalną dostępność, Twój interfejs użytkownika powinien to uwzględniać.

Preferowana przezroczystość

Ustawienie Przezroczystość tła odpowiada właściwości GuiService.PreferredTransparency. Wartość 1 wskazuje, że gracz preferuje domyślną przezroczystość tła, natomiast wartość 0 oznacza, że gracz preferuje całkowicie nieprzezroczyste (nieprzezroczyste) tło dla poprawy czytelności i kontrastu.

Mnożenie BackgroundTransparency elementu UI przez PreferredTransparency jest zalecaną metodą użycia tego ustawienia; tła będą stawały się bardziej nieprzezroczyste, gdy PreferredTransparency zbliża się do 0.

  1. Używając systemu tagowania, zastosuj tag TransparentBack do wszystkich elementów UI z BackgroundTransparency, takich jak TextLabels lub Frames.

    Cztery elementy TextLabel z różnymi poziomami BackgroundTransparency
    Cztery elementy TextLabel z różnymi poziomami BackgroundTransparency
  2. Wklej poniższy kod do LocalScript w StarterPlayerScripts.

    Dynamic Adjustment for Preferred Transparency

    local GuiService = game:GetService("GuiService")
    local CollectionService = game:GetService("CollectionService")
    local TAG = "TransparentBack"
    local transparentBackObjects = {}
    local function onInstanceAdded(object)
    if object.BackgroundTransparency then
    local defaultTransparency = object.BackgroundTransparency
    transparentBackObjects[object] = defaultTransparency
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end
    local function onInstanceRemoved(object)
    transparentBackObjects[object] = nil
    end
    -- Store initial tagged instances
    for _, object in CollectionService:GetTagged(TAG) do
    onInstanceAdded(object)
    end
    -- Detect when tagged instance is added or removed
    CollectionService:GetInstanceAddedSignal(TAG):Connect(onInstanceAdded)
    CollectionService:GetInstanceRemovedSignal(TAG):Connect(onInstanceRemoved)
    -- When in-game setting is changed, adjust tagged instances
    GuiService:GetPropertyChangedSignal("PreferredTransparency"):Connect(function()
    for object, defaultTransparency in transparentBackObjects do
    object.BackgroundTransparency = defaultTransparency * GuiService.PreferredTransparency
    end
    end)
  3. Przetestuj grę, otwórz menu Ustawienia i dostosuj Przezroczystość tła. Oznaczone elementy UI powinny aktualizować się między swoją domyślną BackgroundTransparency a całkowicie nieprzezroczystym.

Preferowany rozmiar tekstu

Ustawienie Rozmiar tekstu odpowiada właściwości GuiService.PreferredTextSize, która domyślnie jest ustawiona na Medium. Gracze mogą zwiększyć rozmiar tekstu za pomocą silnika renderującego czcionki do Large, Larger lub Largest.

Podczas pracy z elementami UI należy zwrócić uwagę na następujące zachowania:

Zmniejszone ruchy

Przełącznik Zmniejszenie ruchu odpowiada właściwości GuiService.ReducedMotionEnabled. Wartość true oznacza, że gracz chce, aby efekty ruchu przez animacje/tweens UI były zmniejszone lub całkowicie usunięte.

Podstawowym podejściem do usunięcia ruchu z tweens UI jest ustawienie parametru Time obiektu TweenInfo na 0, gdy ReducedMotionEnabled jest true, co efektywnie sprawia, że obiekt UI natychmiast przeskakuje do celu.

Zatrzymanie UI Tween do celu dla zmniejszonego ruchu

local GuiService = game:GetService("GuiService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local menuUI = playerGui:WaitForChild("MenuUI")
-- Użyj czasu tweena 0.75 sekundy, chyba że zmniejszone ruchy są włączone
local TWEEN_TIME = if GuiService.ReducedMotionEnabled then 0 else 0.75
local tweenInfo = TweenInfo.new(TWEEN_TIME, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween = TweenService:Create(menuUI.SettingsFrame, tweenInfo, {Position = UDim2.fromScale(0.5, 0.5)})
tween:Play()

Alternatywnie, aby uzyskać natychmiastowe przeskakiwanie, można obsłużyć ReducedMotionEnabled z bardziej wyraźną logiką true/false. Na przykład, poniższy LocalScript domyślnie stosuje tweening ruchu, ale przełącza się na fade-in dla graczy, którzy włączą zmniejszone ruchy, co skutkuje bardziej eleganckim przejściem bez ruchu pozycyjnego.

Zamiana na Fade Tween dla zmniejszonego ruchu

local GuiService = game:GetService("GuiService")
local Players = game:GetService("Players")
local TweenService = game:GetService("TweenService")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local menuUI = playerGui:WaitForChild("MenuUI")
-- Utwórz grupę kanwy, aby tweenować wszystkie dzieci jednolicie
local canvasGroup = Instance.new("CanvasGroup")
canvasGroup.Size = UDim2.fromScale(1, 1)
canvasGroup.BackgroundTransparency = 1
canvasGroup.Parent = menuUI
-- Dodaj dzieci do grupy kanwy
menuUI.SettingsFrame.Parent = canvasGroup
local tweenInfo = TweenInfo.new(0.75, Enum.EasingStyle.Cubic, Enum.EasingDirection.Out)
local tween
-- Użyj fade tween dla zmniejszonego ruchu, lub tween ruchu w przeciwnym razie
if GuiService.ReducedMotionEnabled then
-- Początkowo ustaw grupę kanwy na całkowicie przezroczystą (niewidoczną)
canvasGroup.GroupTransparency = 1
-- Fade-in dla grupy kanwy
tween = TweenService:Create(canvasGroup, tweenInfo, {GroupTransparency = 0})
else
-- Początkowo ustaw grupę kanwy poza ekranem
canvasGroup.Position = UDim2.fromScale(0, -1)
-- Ruch grupy kanwy na ekran
tween = TweenService:Create(canvasGroup, tweenInfo, {Position = UDim2.fromScale(0, 0)})
end
tween:Play()

Kontrola głośności

Różne dźwięki odtwarzające się jednocześnie mogą być przytłaczające, rozpraszające lub trudne do odróżnienia. Zapewnienie użytkownikom kontroli głośności dla różnych "grup" dźwięku, takich jak efekty dźwiękowe, muzyka i mowa, pozwala im dostosować swoją grę i skupić się na tym, czego potrzebują.

Rozważ poniższy przykład bardzo hałaśliwej gry, w której użytkownik może oddzielnie modyfikować głośność muzyki i efektów dźwiękowych.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.