Gracze już robią zrzuty ekranu, aby upamiętnić zabawne chwile w doświadczeniach. Moduł SelfieMode dewelopera pozwala graczom uchwycić czystsze wspomnienie tej chwili bez okna czatu czy listy graczy, a także wspiera efekty filtrów, ukrywanie innych postaci i pozowanie.
Użycie modułu
Instalacja
Aby użyć modułu SelfieMode w doświadczeniu:
Z menu Okno w Studio lub z paska narzędzi zakładki Strona główna, otwórz Narzędziownię i wybierz zakładkę Sklep Twórcy.

Upewnij się, że wybrano sortowanie Modele, a następnie kliknij przycisk Zobacz wszystkie dla Kategorii.

Odnajdź i kliknij kafelek Pakiety.
Odnajdź moduł Tryb Selfie i kliknij go lub przeciągnij i upuść go do widoku 3D.

W oknie Eksploratora przenieś cały pakiet SelfieMode do ReplicatedStorage. Po uruchomieniu doświadczenia moduł zacznie działać.
Konfiguracja
Moduł jest wstępnie skonfigurowany do działania w większości przypadków, ale możesz go łatwo dostosować za pomocą funkcji configure.
W StarterPlayerScripts utwórz nowy LocalScript i zmień jego nazwę na ConfigureSelfieMode.
Wklej następujący kod do nowego skryptu.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Ruch postaci
Może być korzystne uniemożliwienie postaci gracza poruszania się podczas korzystania z trybu selfie. Można to osiągnąć, ustawiając disableCharacterMovement na true w wywołaniu configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Akcje trybu selfie
SelfieMode zawiera następujące akcje, które można wykorzystywać z funkcjami activateAction, deactivateAction i toggleAction, albo wykrywać za pomocą zdarzeń actionActivated oraz actionDeactivated.
Efekt głębi
Domyślnie SelfieMode pokazuje ogólny efekt głębi (subtelne rozmycie tła), kiedy gracz włącza akcję.

Aby zmienić domyślny efekt głębi, ustaw depthOfFieldEffect na własny instancję DepthOfFieldEffect w wywołaniu configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
Zablokuj spojrzenie
Przełącznik Zablokuj spojrzenie sprawia, że postać gracza patrzy w kamerę podczas ustawiania pozowania do selfie, w realistycznym zakresie, w jakim ich szyja może się obracać.
Ukryj innych
Domyślnie inne postacie są widoczne obok postaci gracza. Gracze mogą uzyskać idealne selfie, klikając przycisk Ukryj innych. Gdy jest włączony, inne postacie znikają z widoku i pozostają niewidoczne, dopóki akcja nie zostanie wyłączona.
Filtr
Akcja Filtr pozwala graczowi na zastosowanie presetowanego filtra z opcji Pop, Soft, Antique, Cute, Dramatic oraz Monochrome.

Pozowanie
Akcja Pozowanie pozwala graczowi wybrać presetowaną pozę z opcji Celebracja, Brawa, Delfin, Flossing, Gitara, Skok Machaj, Głośniej, Top Rock, Twirl oraz Machaj.

Referencja API
Typy
Akcja
Każda akcja jest reprezentowana przez słownik z następującymi parametrami:
| Klucz | Typ | Opis |
|---|---|---|
| name | string | Nazwa akcji, wyświetlana jako pierwsza w podpowiedziach. |
| description | string | Opis akcji, wyświetlany po name w podpowiedziach. |
| icon | string | ID zasobu dla ikony akcji. |
| activeIcon | string | ID zasobu dla ikony akcji w stanie "aktywnym". Może być używany tylko w przypadku akcji rodzica, a nie podakcji. |
| actions | table | Opcjonalna lista podakcji. Pozwala to na tworzenie podmenu różnych innych akcji. |
| parent | Akcja | Rodzic akcji; dotyczy to tylko podakcji i wskazuje na akcję, która ją zawiera. |
| onActivated | function | Opcjonalna funkcja zwrotna, która wykonuje się, gdy gracz aktywuje akcję lub podakcję. Zwykle, jeśli akcja zawiera podakcje, tylko podakcje będą wymagały zdefiniowania funkcji zwrotnej jako środka informowania, że gracz aktywował podakcję, a nie po prostu "rozwinął" akcję rodzica. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "aktywowana")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "dezaktywowana")
end)
Enums
SelfieMode.Action
SelfieMode zawiera kilka akcji. Można używać tej enum w funkcjach activateAction, deactivateAction i toggleAction.
| Nazwa | Podsumowanie |
|---|---|
| DepthOfField | Odwołanie do akcji Głębia. |
| LockGaze | Odwołanie do akcji Zablokuj spojrzenie. |
| HideOthers | Odwołanie do akcji Ukryj innych. |
| Filter | Odwołanie do akcji Filtr. |
| Pose | Odwołanie do akcji Pozowanie. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Aktywuj akcję "Filtr"SelfieMode.activateAction(SelfieMode.Action.Filter)
Funkcje
configure
configure(config: table)
Nadpisuje domyślne opcje konfiguracji za pomocą następujących kluczy/wartości w tabeli config. Ta funkcja może być wywoływana tylko z LocalScript.
| Klucz | Opis | Domyślne |
|---|---|---|
| disableCharacterMovement | Jeśli true, uniemożliwia postaci poruszanie się podczas otwartego trybu selfie. | false |
| depthOfFieldEffect | Opcjonalna niestandardowa instancja DepthOfFieldEffect, która pojawia się, gdy gracz włącza akcję Głębia. |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Gracz zazwyczaj otwiera tryb selfie za pomocą przycisku "kamera" po prawej stronie ekranu, ale ta funkcja pozwala otworzyć go z poziomu kodu. Podczas implementacji niestandardowego przycisku, jak pokazano poniżej, należy wyłączyć domyślny przycisk za pomocą setHudButtonEnabled. Ta funkcja może być wywoływana tylko z LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Usuń domyślny przycisk
SelfieMode.setHudButtonEnabled(false)
-- Połącz niestandardowy przycisk
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
Gracz zazwyczaj zamyka tryb selfie za pomocą przycisku ⊗ na dole ekranu, ale ta funkcja pozwala zamknąć go z poziomu kodu. Może być wywoływana tylko z LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
Zwraca true, jeśli tryb selfie jest otwarty w wyniku akcji gracza lub przez openSelfieMode. Ta funkcja może być wywoływana tylko z LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Ustawia, czy domyślny przycisk do wejścia w tryb selfie jest widoczny. Przydatne podczas implementacji openSelfieMode za pomocą niestandardowego przycisku UI. Ta funkcja może być wywoływana tylko z LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Usuń domyślny przycisk
SelfieMode.setHudButtonEnabled(false)
-- Połącz niestandardowy przycisk
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Action
Uzyskuje typ Akcja za pomocą enum SelfieMode.Action.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
activateAction
activateAction(action: SelfieMode.Action)
Programowo aktywuje jedną z domyślnych akcji. Jest to to samo, co gdy gracz włącza akcję z paska akcji. Może być wywoływana tylko z LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Aktywuj akcję "Filtr"SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
Programowo dezaktywuje jedną z domyślnych akcji. Jest to to samo, co gdy gracz wyłącza akcję z paska akcji. Może być wywoływana tylko z LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Dezaktywuj akcję "Filtr"SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
Przełącza akcję włączając ją, jeśli jest wyłączona, lub wyłączając ją, jeśli jest włączona. Jest to to samo, co gdy gracz klika akcję z paska akcji. Zwraca nowy stan "jest włączony" jako boolean. Może być wywoływana tylko z LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("Aktywowano", lockGazeAction.name)elseprint("Dezaktywowano", lockGazeAction.name)end
setTheme
setTheme(theme: table)
Konfiguruje motyw trybu selfie, w tym rozmiar tekstu, czcionkę, kolory przycisków/podpowiedzi i nie tylko. Ta funkcja może być wywoływana tylko z LocalScript.
| Klucz | Opis | Domyślne |
|---|---|---|
| textSize | Rozmiar całego tekstu. | 16 |
| font | Czcionka używana w całym UI (Enum.Font). | GothamMedium |
| padding | Główne wypełnienie używane do układania elementów UI (UDim). | (0, 12) |
| paddingSmall | Mniejsze wypełnienie używane do stosowania subtelnych marginesów między elementami (UDim). | (0, 6) |
| paddingScreen | Wypełnienie używane wokół krawędzi ekranu, aby nadać trybowi selfie trochę przestrzeni (UDim). | (0, 24) |
| backgroundColor | Kolor tła używany dla paska wyświetlającego akcje (Color3). | [0, 0, 0] |
| scrollBarColor | Kolor paska przewijania używanego w elementach ScrollingFrame modułu (Color3). | [255, 255, 255] |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setTheme({textSize = 20,font = Enum.Font.Michroma,backgroundColor = Color3.fromRGB(0, 40, 75),})
setEnabled
setEnabled(isEnabled: boolean)
Ustawia, czy tryb selfie jest włączony. Gdy jest wyłączony, cały UI dla modułu jest usuwany, a wszystkie zdarzenia są odłączane. Ta funkcja może być wywoływana tylko z LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
Zdarzenia
selfieModeOpened
Wysyła powiadomienie, gdy gracz otworzy tryb selfie lub gdy zostanie wywołane openSelfieMode. To zdarzenie można połączyć tylko w LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("Tryb selfie otwarty")
end)
selfieModeClosed
Wysyła powiadomienie, gdy gracz zamknie tryb selfie lub gdy zostanie wywołane closeSelfieMode. To zdarzenie można połączyć tylko w LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("Tryb selfie zamknięty")
end)
actionActivated
| Parametry | |
|---|---|
| action: SelfieMode.Action | Aktywowana Akcja. |
Wysyła powiadomienie, gdy akcja jest aktywowana; może to być jedna z głównych akcji, takich jak Głębia, Zablokuj spojrzenie lub Ukryj innych; alternatywnie może to być podakcja, jak filtr lub pozowanie. Funkcja połączona odbiera aktywowaną Akcję. To zdarzenie można połączyć tylko w LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "aktywowana")
end)
actionDeactivated
| Parametry | |
|---|---|
| action: SelfieMode.Action | Dezaktywowana Akcja. |
Wysyła powiadomienie, gdy główna akcja lub podakcja jest dezaktywowana. Funkcja połączona odbiera dezaktywowaną Akcję. To zdarzenie można połączyć tylko w LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "dezaktywowana")
end)
filterChanged
Wysyła powiadomienie, gdy filtr jest stosowany lub usuwany. Funkcja połączona odbiera nową nazwę filtru oraz starą nazwę filtru. To zdarzenie można połączyć tylko w LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filtr zmieniony z", oldFilter, "na", newFilter)
end)
poseChanged
Wysyła powiadomienie, gdy poza jest stosowana lub usuwana. Funkcja połączona odbiera nową nazwę pozy oraz starą nazwę pozy. To zdarzenie można połączyć tylko w LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Poza zmieniona z", oldPose, "na", newPose)
end)