Pemain sudah mengambil tangkapan layar untuk memperingati momen-momen menyenangkan dalam pengalaman. Modul SelfieMode pengembang memungkinkan pemain untuk menangkap kenangan yang lebih bersih dari momen itu tanpa jendela obrolan atau daftar pemain, sementara juga mendukung efek filter, menyembunyikan karakter lain, dan berpose.
Penggunaan Modul
Instalasi
Untuk menggunakan modul SelfieMode dalam sebuah pengalaman:
Dari menu Window di Studio atau toolbar tab Home, buka Toolbox dan pilih tab Creator Store.

Pastikan pengurutan Models dipilih, kemudian klik tombol Lihat Semua untuk Kategori.

Temukan dan klik ubin Packages.
Temukan modul Mode Selfie dan klik itu, atau seret dan jatuhkan ke dalam tampilan 3D.

Di jendela Explorer, pindahkan seluruh paket SelfieMode ke ReplicatedStorage. Setelah menjalankan pengalaman, modul akan mulai berjalan.
Konfigurasi
Modul ini sudah dikonfigurasi untuk bekerja dengan sebagian besar kasus penggunaan, tetapi Anda dapat dengan mudah menyesuaikannya melalui fungsi konfigurasi.
Di StarterPlayerScripts, buat LocalScript baru dan ubah namanya menjadi ConfigureSelfieMode.
Tempelkan kode berikut ke dalam skrip baru.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Gerakan Karakter
Mungkin berguna untuk mencegah karakter pemain bergerak saat dalam mode selfie. Anda dapat mencapainya dengan mengatur disableCharacterMovement ke true dalam panggilan konfigurasi.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Tindakan Mode Selfie
SelfieMode hadir dengan tindakan berikut, yang dapat Anda gunakan dengan fungsi activateAction, deactivateAction, dan toggleAction, atau mendeteksinya melalui acara actionActivated dan actionDeactivated.
Depth-of-Field
Secara default, SelfieMode menunjukkan efek depth‑of‑field generik (blur halus di latar belakang) ketika pemain mengalihkan tindakan.

Untuk mengubah efek depth‑of‑field default, atur depthOfFieldEffect ke instansi DepthOfFieldEffect Anda sendiri dalam panggilan konfigurasi.
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})
Kunci Pandangan
Pengalihan Kunci Pandangan menyebabkan karakter pemain untuk melihat ke arah kamera saat menyiapkan pose selfie, dalam rentang realistis seberapa jauh leher mereka dapat berputar.
Sembunyikan Orang Lain
Secara default, karakter lain terlihat di samping karakter pemain. Pemain dapat mendapatkan gambar solo yang sempurna dengan mengklik tombol Sembunyikan Orang Lain. Ketika dialihkan, karakter lain memudar dari pandangan dan tetap tidak terlihat hingga tindakan tersebut dialihkan kembali.
Filter
Tindakan Filter memungkinkan pemain menerapkan filter preset dari opsi Pop, Lembut, Antik, Imut, Dramatis, dan Monokrom.

Pose
Tindakan Pose memungkinkan pemain untuk memilih pose preset dari opsi Sorak, Bergemuruh, Lumba-lumba, Flossing, Gitar, Lompat Melambai, Lebih Keras, Top Rock, Putar, dan Melambai.

Referensi API
Tipe
Tindakan
Setiap tindakan diwakili oleh sebuah kamus dengan pasangan kunci-nilai berikut:
| Kunci | Tipe | Deskripsi |
|---|---|---|
| name | string | Nama dari tindakan, ditampilkan pertama dalam tooltip. |
| description | string | Deskripsi tindakan, ditampilkan setelah name dalam tooltip. |
| icon | string | ID aset untuk ikon tindakan. |
| activeIcon | string | ID aset untuk ikon tindakan dalam keadaan "aktif". Hanya bisa digunakan pada tindakan induk, bukan sub-tindakan. |
| actions | table | Daftar opsional dari sub-tindakan. Ini memungkinkan Anda untuk membuat submenu dari berbagai tindakan lainnya. |
| parent | Tindakan | Tindakan induk dari tindakan; ini hanya berlaku untuk sub-tindakan dan menunjuk ke tindakan yang mengandungnya. |
| onActivated | function | Fungsi callback opsional yang dijalankan ketika pemain mengaktifkan tindakan atau sub-tindakan. Biasanya, jika suatu tindakan mengandung sub-tindakan, hanya sub-tindakan yang memerlukan callback yang didefinisikan sebagai cara untuk mengetahui bahwa pemain mengaktifkan sub-tindakan dan tidak hanya "memperluas" tindakan induk. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "diaktifkan")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "dinonaktifkan")
end)
Enums
SelfieMode.Action
SelfieMode hadir dengan beberapa tindakan. Anda dapat menggunakan enum ini dengan fungsi activateAction, deactivateAction, dan toggleAction.
| Nama | Ringkasan |
|---|---|
| DepthOfField | Referensi ke tindakan Depth‑of‑Field. |
| LockGaze | Referensi ke tindakan Kunci Pandangan. |
| HideOthers | Referensi ke tindakan Sembunyikan Orang Lain. |
| Filter | Referensi ke tindakan Filter. |
| Pose | Referensi ke tindakan Pose. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Aktifkan tindakan "Filter"SelfieMode.activateAction(SelfieMode.Action.Filter)
Fungsi
konfigurasi
konfigurasi(config: table)
Mengganti opsi konfigurasi default melalui kunci/nilai berikut dalam tabel config. Fungsi ini hanya dapat dipanggil dari LocalScript.
| Kunci | Deskripsi | Default |
|---|---|---|
| disableCharacterMovement | Jika true, mencegah karakter bergerak saat mode selfie terbuka. | false |
| depthOfFieldEffect | Instansi DepthOfFieldEffect opsional yang muncul ketika pemain mengalihkan tindakan Depth of Field. |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Seorang pemain biasanya akan membuka mode selfie dengan tombol "kamera" di sisi kanan layar, tetapi fungsi ini memungkinkan Anda untuk membukanya melalui kode. Saat menerapkan tombol kustom seperti yang ditunjukkan di bawah ini, Anda harus menonaktifkan tombol default melalui setHudButtonEnabled. Fungsi ini hanya dapat dipanggil dari LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Hapus tombol default
SelfieMode.setHudButtonEnabled(false)
-- Hubungkan tombol kustom
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
Seorang pemain biasanya akan menutup mode selfie dengan tombol ⊗ di bagian bawah layar, tetapi fungsi ini memungkinkan Anda menutupnya melalui kode. Hanya dapat dipanggil dari LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
Mengembalikan true jika mode selfie terbuka sebagai hasil dari aksi pemain atau melalui openSelfieMode. Fungsi ini hanya dapat dipanggil dari LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Mengatur apakah tombol default untuk memasuki mode selfie ditampilkan. Berguna saat menerapkan openSelfieMode melalui tombol UI kustom. Fungsi ini hanya dapat dipanggil dari LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Hapus tombol default
SelfieMode.setHudButtonEnabled(false)
-- Hubungkan tombol kustom
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Tindakan
Mendapatkan tipe Tindakan melalui 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)
Secara programatik mengaktifkan salah satu tindakan default. Ini sama dengan ketika pemain mengalihkan tindakan dari bilah tindakan. Hanya dapat dipanggil dari LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Aktifkan tindakan "Filter"SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
Secara programatik menonaktifkan salah satu tindakan default. Ini sama dengan ketika pemain menonaktifkan tindakan dari bilah tindakan. Hanya dapat dipanggil dari LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Nonaktifkan tindakan "Filter"SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
Mengalihkan tindakan hidup jika mati, atau mengalihkan mati jika hidup. Ini sama dengan ketika pemain mengklik tindakan dari bilah tindakan. Mengembalikan status "apakah diaktifkan" yang baru sebagai boolean. Hanya dapat dipanggil dari 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("Diaktifkan", lockGazeAction.name)elseprint("Dinonaktifkan", lockGazeAction.name)end
setTheme
setTheme(theme: table)
Mengkonfigurasi tema mode selfie, termasuk ukuran teks, font, warna tombol/tooltips, dan lainnya. Fungsi ini hanya dapat dipanggil dari LocalScript.
| Kunci | Deskripsi | Default |
|---|---|---|
| textSize | Ukuran dari semua teks. | 16 |
| font | Font yang digunakan di seluruh UI (Enum.Font). | GothamMedium |
| padding | Padding utama yang digunakan untuk menyusun elemen UI (UDim). | (0, 12) |
| paddingSmall | Padding lebih kecil yang digunakan untuk menerapkan margin halus antara elemen (UDim). | (0, 6) |
| paddingScreen | Padding yang digunakan di sekitar tepi layar untuk memberi ruang bagi mode selfie (UDim). | (0, 24) |
| backgroundColor | Warna latar belakang yang digunakan untuk bilah yang menampilkan tindakan (Color3). | [0, 0, 0] |
| scrollBarColor | Warna dari scrollbar yang digunakan dalam elemen ScrollingFrame modul (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)
Mengatur apakah mode selfie diaktifkan atau tidak. Saat dinonaktifkan, semua UI untuk modul dihapus dan semua acara terputus. Fungsi ini hanya dapat dipanggil dari LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
Acara
selfieModeOpened
Diberitakan ketika pemain membuka mode selfie atau ketika openSelfieMode dipanggil. Acara ini hanya dapat dihubungkan dalam LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("Mode selfie terbuka")
end)
selfieModeClosed
Diberitakan ketika pemain menutup mode selfie atau ketika closeSelfieMode dipanggil. Acara ini hanya dapat dihubungkan dalam LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("Mode selfie ditutup")
end)
actionActivated
| Parameter | |
|---|---|
| action: SelfieMode.Action | Tindakan Action yang diaktifkan. |
Diberitakan ketika suatu tindakan diaktifkan; ini mungkin salah satu tindakan utama seperti Depth of Field, Kunci Pandangan, atau Sembunyikan Orang Lain; atau mungkin sub-tindakan seperti filter atau pose. Fungsi yang terhubung menerima Action yang diaktifkan. Acara ini hanya dapat dihubungkan dalam LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "diaktifkan")
end)
actionDeactivated
| Parameter | |
|---|---|
| action: SelfieMode.Action | Tindakan Action yang dinonaktifkan. |
Diberitakan ketika tindakan utama atau sub-tindakan dinonaktifkan. Fungsi yang terhubung menerima Action yang dinonaktifkan. Acara ini hanya dapat dihubungkan dalam LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "dinonaktifkan")
end)
filterChanged
Diberitakan ketika suatu filter diterapkan atau dihapus. Fungsi yang terhubung menerima nama filter baru dan nama filter lama. Acara ini hanya dapat dihubungkan dalam LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filter diubah dari", oldFilter, "menjadi", newFilter)
end)
poseChanged
Diberitakan ketika suatu pose diterapkan atau dihapus. Fungsi yang terhubung menerima nama pose baru dan nama pose lama. Acara ini hanya dapat dihubungkan dalam LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose diubah dari", oldPose, "menjadi", newPose)
end)