Người chơi đã chụp ảnh màn hình để ghi nhớ những khoảnh khắc vui vẻ trong trải nghiệm. Mô-đun SelfieMode phát triển cho phép người chơi ghi lại những kỷ niệm sạch sẽ hơn mà không có cửa sổ trò chuyện hay danh sách người chơi, đồng thời hỗ trợ các hiệu ứng bộ lọc, ẩn các nhân vật khác và tạo dáng.
Sử Dụng Mô-đun
Cài Đặt
Để sử dụng mô-đun SelfieMode trong một trải nghiệm:
Từ menu Cửa Sổ của Studio hoặc thanh công cụ tab Trang Chủ, mở Hộp Công Cụ và chọn tab Cửa Hàng Tạo.

Đảm bảo rằng sắp xếp Mô Hình đã được chọn, sau đó nhấp vào nút Xem Tất Cả cho Danh Mục.

Tìm và nhấp vào ô Gói.
Tìm mô-đun Chế Độ Selfie và nhấp vào nó, hoặc kéo và thả nó vào chế độ 3D.

Trong cửa sổ Khám Phá, di chuyển toàn bộ gói SelfieMode vào ReplicatedStorage. Sau khi trải nghiệm chạy, mô-đun sẽ bắt đầu hoạt động.
Cấu Hình
Mô-đun được cấu hình sẵn để hoạt động cho hầu hết các trường hợp sử dụng, nhưng bạn có thể dễ dàng tùy chỉnh nó thông qua chức năng configure.
Trong StarterPlayerScripts, tạo một LocalScript mới và đổi tên thành ConfigureSelfieMode.
Dán mã sau vào script mới.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Di Chuyển Nhân Vật
Có thể có lợi khi ngăn chặn nhân vật của người chơi di chuyển trong khi ở chế độ selfie. Bạn có thể đạt được điều này bằng cách đặt disableCharacterMovement thành true trong một cuộc gọi configure.
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
Hành Động Chế Độ Selfie
SelfieMode đi kèm với các hành động sau đây, mỗi hành động bạn có thể sử dụng với các chức năng activateAction, deactivateAction, và toggleAction, hoặc phát hiện qua các sự kiện actionActivated và actionDeactivated.
Độ Sâu Trường
Theo mặc định, SelfieMode hiển thị một hiệu ứng độ sâu trường tổng quát (mờ nhẹ nền) khi người chơi bật hành động.

Để thay đổi hiệu ứng độ sâu trường mặc định, hãy đặt depthOfFieldEffect thành bản thể DepthOfFieldEffect của riêng bạn trong một cuộc gọi 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})
Khóa Nhìn
Công tắc Khóa Nhìn khiến nhân vật của người chơi nhìn về phía camera trong khi đặt dáng selfie, trong một khoảng cách thực tế mà cổ của họ có thể quay.
Ẩn Những Người Khác
Theo mặc định, các nhân vật khác sẽ hiển thị cùng với nhân vật của người chơi. Người chơi có thể có được một bức ảnh solo hoàn hảo bằng cách nhấp vào nút Ẩn Những Người Khác. Khi được bật, các nhân vật khác sẽ mờ đi khỏi tầm nhìn và vẫn không hiển thị cho đến khi hành động được tắt.
Bộ Lọc
Hành động Bộ Lọc cho phép người chơi áp dụng một bộ lọc đã đặt sẵn từ các tùy chọn Pop, Mềm, Cổ Điển, Dễ Thương, Kịch Tính, và Đơn Màu.

Tạo Dáng
Hành động Tạo Dáng cho phép người chơi chọn một dáng đã đặt sẵn từ các tùy chọn Cổ Vũ, Vỗ Tay, Cá Heo, Nhảy, Guitar, Nhảy Vẫy, Lớn Tiếng, Rock Đỉnh, Xoay, và Vẫy.

Tham Khảo API
Các Kiểu
Hành Động
Mỗi hành động được đại diện bằng một từ điển với các cặp khóa-giá trị sau:
| Khóa | Kiểu | Mô Tả |
|---|---|---|
| name | string | Tên của hành động, hiển thị đầu tiên trong các tooltip. |
| description | string | Mô tả của hành động, hiển thị sau name trong các tooltip. |
| icon | string | ID tài sản cho biểu tượng của hành động. |
| activeIcon | string | ID tài sản cho biểu tượng của hành động trong trạng thái "kích hoạt". Chỉ có thể sử dụng cho các hành động cha, không phải hành động con. |
| actions | table | Danh sách tùy chọn của các hành động phụ. Điều này cho phép bạn tạo các menu phụ cho nhiều hành động khác nhau. |
| parent | Action | Hành động cha của hành động; điều này chỉ áp dụng cho một hành động con và chỉ đến hành động chứa nó. |
| onActivated | function | Hàm gọi lại tùy chọn chạy khi một người chơi kích hoạt một hành động hoặc hành động phụ. Thông thường, nếu một hành động chứa các hành động con, chỉ hành động con cần một hàm gọi lại được định nghĩa như một cách để biết rằng người chơi đã kích hoạt hành động con và không chỉ đơn giản là "mở rộng" hành động cha. |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
Enum
SelfieMode.Action
SelfieMode đi kèm với một số hành động. Bạn có thể sử dụng enum này với các chức năng activateAction, deactivateAction, và toggleAction.
| Tên | Tóm tắt |
|---|---|
| DepthOfField | Tham chiếu đến hành động Độ Sâu Trường. |
| LockGaze | Tham chiếu đến hành động Khóa Nhìn. |
| HideOthers | Tham chiếu đến hành động Ẩn Những Người Khác. |
| Filter | Tham chiếu đến hành động Bộ Lọc. |
| Pose | Tham chiếu đến hành động Tạo Dáng. |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Kích hoạt hành động "Bộ Lọc"SelfieMode.activateAction(SelfieMode.Action.Filter)
Các Chức Năng
configure
configure(config: table)
Ghi đè các tùy chọn cấu hình mặc định thông qua các khóa/giá trị sau trong bảng config. Chức năng này chỉ có thể được gọi từ một LocalScript.
| Khóa | Mô Tả | Mặc định |
|---|---|---|
| disableCharacterMovement | Nếu true, ngăn không cho nhân vật di chuyển trong khi chế độ selfie đang mở. | false |
| depthOfFieldEffect | Bản thể DepthOfFieldEffect tùy chọn tùy chỉnh xuất hiện khi người chơi bật hành động Độ Sâu Trường. |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
Một người chơi thường sẽ mở chế độ selfie bằng nút "camera" ở phía bên phải màn hình, nhưng chức năng này cho phép bạn mở nó thông qua mã. Khi triển khai một nút tùy chỉnh như được hiển thị dưới đây, bạn nên vô hiệu hóa nút mặc định thông qua setHudButtonEnabled. Chức năng này chỉ có thể được gọi từ một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Gỡ bỏ nút mặc định
SelfieMode.setHudButtonEnabled(false)
-- Kết nối nút tùy chỉnh
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
Một người chơi thường sẽ đóng chế độ selfie bằng nút ⊗ ở dưới cùng màn hình, nhưng chức năng này cho phép bạn đóng nó thông qua mã. Chỉ có thể gọi từ một LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
Trả về true nếu chế độ selfie đang mở do hành động của người chơi hoặc thông qua openSelfieMode. Chức năng này chỉ có thể được gọi từ một LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
Đặt xem liệu nút mặc định để vào chế độ selfie có hiển thị hay không. Hữu ích khi triển khai openSelfieMode thông qua một nút UI tùy chỉnh. Chức năng này chỉ có thể được gọi từ một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- Gỡ bỏ nút mặc định
SelfieMode.setHudButtonEnabled(false)
-- Kết nối nút tùy chỉnh
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Action
Lấy một loại Action thông qua 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)
Kích hoạt theo chương trình một trong các hành động mặc định. Điều này tương tự như khi người chơi bật hành động từ thanh hành động. Chỉ có thể gọi từ một LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Kích hoạt hành động "Bộ Lọc"SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
Hủy kích hoạt theo chương trình một trong các hành động mặc định. Điều này tương tự như khi người chơi tắt hành động từ thanh hành động. Chỉ có thể gọi từ một LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- Hủy kích hoạt hành động "Bộ Lọc"SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
Chuyển đổi một hành động thành trạng thái bật nếu nó đang tắt, hoặc chuyển đổi nó thành tắt nếu nó đang bật. Điều này tương tự như khi người chơi nhấp vào hành động từ thanh hành động. Trả về trạng thái "đã được bật" mới như một boolean. Chỉ có thể gọi từ một 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("Kích hoạt", lockGazeAction.name)elseprint("Hủy kích hoạt", lockGazeAction.name)end
setTheme
setTheme(theme: table)
Cấu hình chủ đề chế độ selfie, bao gồm kích thước văn bản, phông chữ, màu nút/tooltips, và nhiều hơn nữa. Chức năng này chỉ có thể được gọi từ một LocalScript.
| Khóa | Mô Tả | Mặc định |
|---|---|---|
| textSize | Kích thước của tất cả các văn bản. | 16 |
| font | Phông chữ sử dụng cho tất cả UI (Enum.Font). | GothamMedium |
| padding | Khoảng cách chính được sử dụng để bố trí các phần tử UI (UDim). | (0, 12) |
| paddingSmall | Khoảng cách nhỏ hơn được sử dụng để áp dụng các lề tinh tế giữa các phần tử (UDim). | (0, 6) |
| paddingScreen | Khoảng cách xung quanh các cạnh màn hình để tạo không gian cho chế độ selfie (UDim). | (0, 24) |
| backgroundColor | Màu nền sử dụng cho thanh hiển thị các hành động (Color3). | [0, 0, 0] |
| scrollBarColor | Màu của thanh cuộn được sử dụng trong các phần tử ScrollingFrame của mô-đun (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)
Đặt xem liệu chế độ selfie có được bật hay không. Khi bị vô hiệu hóa, tất cả UI cho mô-đun sẽ bị loại bỏ và tất cả sự kiện sẽ bị ngắt kết nối. Chức năng này chỉ có thể được gọi từ một LocalScript.
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
Sự Kiện
selfieModeOpened
Kích hoạt khi người chơi mở chế độ selfie hoặc khi openSelfieMode được gọi. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("Chế độ selfie đã mở")
end)
selfieModeClosed
Kích hoạt khi người chơi đóng chế độ selfie hoặc khi closeSelfieMode được gọi. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("Chế độ selfie đã đóng")
end)
actionActivated
| Tham Số | |
|---|---|
| action: SelfieMode.Action | Hành động Action đã được kích hoạt. |
Kích hoạt khi một hành động được kích hoạt; điều này có thể là một trong các hành động chính như Độ Sâu Trường, Khóa Nhìn, hoặc Ẩn Những Người Khác; hoặc có thể là một hành động con như một bộ lọc hoặc dáng. Hàm được kết nối nhận hành động Action đã được kích hoạt. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "đã kích hoạt")
end)
actionDeactivated
| Tham Số | |
|---|---|
| action: SelfieMode.Action | Hành động Action đã bị hủy kích hoạt. |
Kích hoạt khi một hành động chính hoặc hành động con bị hủy kích hoạt. Hàm được kết nối nhận hành động Action đã bị hủy kích hoạt. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "đã bị hủy kích hoạt")
end)
filterChanged
Kích hoạt khi một bộ lọc được áp dụng hoặc loại bỏ. Hàm được kết nối nhận tên bộ lọc mới và tên bộ lọc cũ. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Bộ lọc đã thay đổi từ", oldFilter, "thành", newFilter)
end)
poseChanged
Kích hoạt khi một dáng được áp dụng hoặc loại bỏ. Hàm được kết nối nhận tên dáng mới và tên dáng cũ. Sự kiện này chỉ có thể được kết nối trong một LocalScript.
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Dáng đã thay đổi từ", oldPose, "thành", newPose)
end)