玩家已經在體驗中拍攝螢幕截圖以紀念有趣的時刻。SelfieMode 開發者模組 讓玩家捕捉更乾淨的回憶,而不需顯示聊天窗口或玩家列表,同時支持濾鏡效果、隱藏其他角色和擺姿勢。
模組使用
安裝
要在體驗中使用 SelfieMode 模組:
從 Studio 的 視窗 菜單或 首頁 標籤工具列中,打開 工具箱 並選擇 創作者商店 標籤。

確保選擇了 模型 排序,然後點擊 查看所有 按鈕以查看 類別。

找到並點擊 包 磚塊。
找到 自拍模式 模組並點擊它,或將其拖放到 3D 視圖中。

在 資源管理器 視窗中,將整個 SelfieMode 套件移動到 ReplicatedStorage 中。運行體驗後,模組將開始運行。
配置
該模組預設配置適合大多數用例,但可以通過 配置 功能輕鬆自定義。
在 StarterPlayerScripts 中,創建一個新的 LocalScript 並將其重命名為 ConfigureSelfieMode。
將以下代碼粘貼到新的腳本中。
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
角色移動
在自拍模式下防止玩家的角色移動可能是有利的。您可以通過在 configure 調用中將 disableCharacterMovement 設置為 true 來實現此目的。
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
自拍模式操作
SelfieMode 具有以下 操作,您可以通過 activateAction、deactivateAction 和 toggleAction 函數使用每個操作,或通過 actionActivated 和 actionDeactivated 事件檢測。
景深
默認情況下,當玩家切換操作時,SelfieMode 顯示一個通用的 景深 效果(背景的微妙模糊)。

要更改默認的景深效果,請在 configure 調用中將 depthOfFieldEffect 設置為您自己的 DepthOfFieldEffect 實例。
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})
鎖定視線
鎖定視線 切換會使玩家的角色在設置自拍姿勢時面向相機,視覺範圍內的脖子轉動範圍為實際範圍。
隱藏其他人
默認情況下,除了玩家的角色,其他角色也是可見的。玩家可以通過點擊 隱藏其他人 按鈕來獲得完美的單人拍攝。當切換開啟時,其他角色將淡出視圖並保持不可見,直到操作切換關閉。
濾鏡
濾鏡 操作允許玩家從 流行、柔和、古董、可愛、戲劇性 和 單色 等選項中應用預設濾鏡。

姿勢
姿勢 操作允許玩家從 歡呼、鼓掌、海豚、跳舞、吉他、跳躍揮手、更吵、頂石、旋轉 和 揮手 等選項中選擇預設姿勢。

API 參考
類型
操作
每個操作由以下鍵值對表示:
| 鍵 | 類型 | 描述 |
|---|---|---|
| name | string | 操作的名稱,首先顯示在工具提示中。 |
| description | string | 操作的描述,顯示在工具提示中的 name 之後。 |
| icon | string | 操作圖標的資產 ID。 |
| activeIcon | string | 操作圖標在「活動」狀態下的資產 ID。只能在父操作上使用,而不能在子操作上。 |
| actions | table | 可選的子操作列表。這使您可以創建其他操作的子菜單。 |
| parent | Action | 操作的父操作;這僅適用於子操作,且指向包含它的操作。 |
| onActivated | function | 可選的回調函數,當玩家激活某個操作或子操作時運行。通常,在操作包含子操作的情況下,只有子操作需要定義回調,用來知道玩家激活的是子操作,而不是僅僅「展開」父操作。 |
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "已激活")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "已關閉")
end)
列舉
SelfieMode.Action
SelfieMode 附帶了幾個 操作。您可以將此列舉用於 activateAction、deactivateAction 和 toggleAction 函數。
| 名稱 | 摘要 |
|---|---|
| DepthOfField | 對應 景深 操作的引用。 |
| LockGaze | 對應 鎖定視線 操作的引用。 |
| HideOthers | 對應 隱藏其他人 操作的引用。 |
| Filter | 對應 濾鏡 操作的引用。 |
| Pose | 對應 姿勢 操作的引用。 |
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- 激活 "濾鏡" 操作SelfieMode.activateAction(SelfieMode.Action.Filter)
函數
configure
configure(config: table)
通過 config 表中的以下鍵/值重寫默認配置選項。此函數只能從 LocalScript 調用。
| 鍵 | 描述 | 默認值 |
|---|---|---|
| disableCharacterMovement | 如果為 true,則防止角色在自拍模式打開時移動。 | false |
| depthOfFieldEffect | 可選的自定義 DepthOfFieldEffect 實例,在玩家切換 景深 操作時顯示。 |
LocalScript - ConfigureSelfieModelocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.configure({disableCharacterMovement = true})
openSelfieMode
openSelfieMode()
玩家通常會使用屏幕右側的「相機」按鈕打開自拍模式,但此函數讓您可以通過代碼打開它。在實現自定義按鈕時,如下所示,應該通過 setHudButtonEnabled 禁用默認按鈕。此函數只能從 LocalScript 調用。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- 移除默認按鈕
SelfieMode.setHudButtonEnabled(false)
-- 連接自定義按鈕
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
closeSelfieMode
closeSelfieMode()
玩家通常會使用屏幕底部的 ⊗ 按鈕關閉自拍模式,但此函數讓您可以通過代碼關閉它。只能從 LocalScript 調用。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.closeSelfieMode()
isSelfieModeOpen
isSelfieModeOpen(): boolean
如果自拍模式是由玩家操作或通過 openSelfieMode 打開的,則返回 true。此函數只能從 LocalScript 調用。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
setHudButtonEnabled
setHudButtonEnabled()
設置是否顯示進入自拍模式的默認按鈕。在通過自定義 UI 按鈕實現 openSelfieMode 時非常有用。此函數只能從 LocalScript 調用。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local button = script.Parent
-- 移除默認按鈕
SelfieMode.setHudButtonEnabled(false)
-- 連接自定義按鈕
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
getAction
getAction(action: SelfieMode.Action): Action
通過 SelfieMode.Action 列舉獲取 Action 類型。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
activateAction
activateAction(action: SelfieMode.Action)
以編程方式激活默認的 actions 之一。這與玩家從操作欄打開操作時相同。只能從 LocalScript 調用。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- 激活 "濾鏡" 操作SelfieMode.activateAction(SelfieMode.Action.Filter)
deactivateAction
deactivateAction(action: SelfieMode.Action)
以編程方式停用默認的 actions 之一。這與玩家從操作欄關閉操作時相同。只能從 LocalScript 調用。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)-- 停用 "濾鏡" 操作SelfieMode.deactivateAction(SelfieMode.Action.Filter)
toggleAction
toggleAction(action: SelfieMode.Action): boolean
如果操作關閉,則打開該操作,或如果操作打開,則將其關閉。這與玩家從操作欄點擊操作時相同。以布林值的方式返回新的「是否已切換開啟」狀態。只能從 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("已激活", lockGazeAction.name)elseprint("已關閉", lockGazeAction.name)end
setTheme
setTheme(theme: table)
配置自拍模式主題,包括文本大小、字體、按鈕/工具提示顏色等。此函數只能從 LocalScript 調用。
| 鍵 | 描述 | 默認值 |
|---|---|---|
| textSize | 所有文本的大小。 | 16 |
| font | 所有 UI 使用的字體 (Enum.Font)。 | GothamMedium |
| padding | 用於佈局 UI 元素的主邊距 (UDim)。 | (0, 12) |
| paddingSmall | 用於在元素之間施加微妙邊距的較小邊距 (UDim)。 | (0, 6) |
| paddingScreen | 用於在屏幕邊緣周圍留空間以為自拍模式留出一些空間的邊距 (UDim)。 | (0, 24) |
| backgroundColor | 用於顯示操作的條的背景顏色 (Color3)。 | [0, 0, 0] |
| scrollBarColor | 在模組中的 ScrollingFrame 元素中使用的滾動條顏色 (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)
設置是否啟用自拍模式。如果禁用,將刪除模組的所有 UI,並斷開所有事件。此函數只能從 LocalScript 調用。
LocalScriptlocal ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage.SelfieMode)SelfieMode.setEnabled(false)
事件
selfieModeOpened
當玩家打開自拍模式或調用 openSelfieMode 時觸發。此事件僅能在 LocalScript 中連接。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeOpened:Connect(function()
print("自拍模式已開啟")
end)
selfieModeClosed
當玩家關閉自拍模式或調用 closeSelfieMode 時觸發。此事件僅能在 LocalScript 中連接。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.selfieModeClosed:Connect(function()
print("自拍模式已關閉")
end)
actionActivated
| 參數 | |
|---|---|
| action: SelfieMode.Action | 已激活的 Action。 |
當某個操作被激活時觸發;這可能是主要操作之一,比如 景深、鎖定視線 或 隱藏其他人;或者可能是子操作,如 濾鏡 或 姿勢。連接的函數接收激活的 Action。此事件僅能在 LocalScript 中連接。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "已激活")
end)
actionDeactivated
| 參數 | |
|---|---|
| action: SelfieMode.Action | 已關閉的 Action。 |
當主要操作或子操作被停用時觸發。連接的函數接收已停用的 Action。此事件僅能在 LocalScript 中連接。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "已關閉")
end)
filterChanged
當應用或移除 濾鏡 時觸發。連接的函數接收新濾鏡名稱和舊濾鏡名稱。此事件僅能在 LocalScript 中連接。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("濾鏡已從", oldFilter, "變更為", newFilter)
end)
poseChanged
當應用或移除 姿勢 時觸發。連接的函數接收新姿勢名稱和舊姿勢名稱。此事件僅能在 LocalScript 中連接。
LocalScript
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("姿勢已從", oldPose, "變更為", newPose)
end)