自拍模式

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

玩家已經在體驗中拍攝螢幕截圖以紀念有趣的時刻。SelfieMode 開發者模組 讓玩家捕捉更乾淨的回憶,而不需顯示聊天窗口或玩家列表,同時支持濾鏡效果、隱藏其他角色和擺姿勢。

模組使用

安裝

要在體驗中使用 SelfieMode 模組:

  1. 從 Studio 的 視窗 菜單或 首頁 標籤工具列中,打開 工具箱 並選擇 創作者商店 標籤。

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

  3. 找到並點擊 磚塊。

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

  5. 資源管理器 視窗中,將整個 SelfieMode 套件移動到 ReplicatedStorage 中。運行體驗後,模組將開始運行。

配置

該模組預設配置適合大多數用例,但可以通過 配置 功能輕鬆自定義。

  1. StarterPlayerScripts 中,創建一個新的 LocalScript 並將其重命名為 ConfigureSelfieMode

  2. 將以下代碼粘貼到新的腳本中。

    LocalScript - ConfigureSelfieMode

    local ReplicatedStorage = game:GetService("ReplicatedStorage")
    local SelfieMode = require(ReplicatedStorage.SelfieMode)
    SelfieMode.configure({
    disableCharacterMovement = true
    })

角色移動

在自拍模式下防止玩家的角色移動可能是有利的。您可以通過在 configure 調用中將 disableCharacterMovement 設置為 true 來實現此目的。

LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.configure({
disableCharacterMovement = true
})

自拍模式操作

SelfieMode 具有以下 操作,您可以通過 activateActiondeactivateActiontoggleAction 函數使用每個操作,或通過 actionActivatedactionDeactivated 事件檢測。

景深

默認情況下,當玩家切換操作時,SelfieMode 顯示一個通用的 景深 效果(背景的微妙模糊)。

要更改默認的景深效果,請在 configure 調用中將 depthOfFieldEffect 設置為您自己的 DepthOfFieldEffect 實例。

LocalScript - ConfigureSelfieMode

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local customDepthOfField = Instance.new("DepthOfFieldEffect")
customDepthOfField.NearIntensity = 0
customDepthOfField.FarIntensity = 1
customDepthOfField.FocusDistance = 5
customDepthOfField.InFocusRadius = 5
SelfieMode.configure({
depthOfFieldEffect = customDepthOfField
})

鎖定視線

鎖定視線 切換會使玩家的角色在設置自拍姿勢時面向相機,視覺範圍內的脖子轉動範圍為實際範圍。

隱藏其他人

默認情況下,除了玩家的角色,其他角色也是可見的。玩家可以通過點擊 隱藏其他人 按鈕來獲得完美的單人拍攝。當切換開啟時,其他角色將淡出視圖並保持不可見,直到操作切換關閉。

濾鏡

濾鏡 操作允許玩家從 流行柔和古董可愛戲劇性單色 等選項中應用預設濾鏡。

姿勢

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

API 參考

類型

操作

每個操作由以下鍵值對表示:

類型描述
namestring操作的名稱,首先顯示在工具提示中。
descriptionstring操作的描述,顯示在工具提示中的 name 之後。
iconstring操作圖標的資產 ID。
activeIconstring操作圖標在「活動」狀態下的資產 ID。只能在父操作上使用,而不能在子操作上。
actionstable可選的子操作列表。這使您可以創建其他操作的子菜單。
parentAction操作的父操作;這僅適用於子操作,且指向包含它的操作。
onActivatedfunction可選的回調函數,當玩家激活某個操作或子操作時運行。通常,在操作包含子操作的情況下,只有子操作需要定義回調,用來知道玩家激活的是子操作,而不是僅僅「展開」父操作。
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 附帶了幾個 操作。您可以將此列舉用於 activateActiondeactivateActiontoggleAction 函數。

名稱摘要
DepthOfField對應 景深 操作的引用。
LockGaze對應 鎖定視線 操作的引用。
HideOthers對應 隱藏其他人 操作的引用。
Filter對應 濾鏡 操作的引用。
Pose對應 姿勢 操作的引用。
LocalScript

local 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 - ConfigureSelfieMode

local 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 調用。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.closeSelfieMode()

isSelfieModeOpen

isSelfieModeOpen(): boolean

如果自拍模式是由玩家操作或通過 openSelfieMode 打開的,則返回 true。此函數只能從 LocalScript 調用。

LocalScript

local 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 類型。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)

activateAction

activateAction(action: SelfieMode.Action)

以編程方式激活默認的 actions 之一。這與玩家從操作欄打開操作時相同。只能從 LocalScript 調用。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- 激活 "濾鏡" 操作
SelfieMode.activateAction(SelfieMode.Action.Filter)

deactivateAction

deactivateAction(action: SelfieMode.Action)

以編程方式停用默認的 actions 之一。這與玩家從操作欄關閉操作時相同。只能從 LocalScript 調用。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
-- 停用 "濾鏡" 操作
SelfieMode.deactivateAction(SelfieMode.Action.Filter)

toggleAction

toggleAction(action: SelfieMode.Action): boolean

如果操作關閉,則打開該操作,或如果操作打開,則將其關閉。這與玩家從操作欄點擊操作時相同。以布林值的方式返回新的「是否已切換開啟」狀態。只能從 LocalScript 調用。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
local isEnabled = SelfieMode.toggleAction(lockGazeAction)
if isEnabled then
print("已激活", lockGazeAction.name)
else
print("已關閉", 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]
LocalScript

local 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 調用。

LocalScript

local 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

參數
newFilter: string新濾鏡。
oldFilter: string以前的濾鏡。

當應用或移除 濾鏡 時觸發。連接的函數接收新濾鏡名稱和舊濾鏡名稱。此事件僅能在 LocalScript 中連接。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("濾鏡已從", oldFilter, "變更為", newFilter)
end)

poseChanged

參數
newPose: string新姿勢。
oldPose: string以前的姿勢。

當應用或移除 姿勢 時觸發。連接的函數接收新姿勢名稱和舊姿勢名稱。此事件僅能在 LocalScript 中連接。

LocalScript

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage.SelfieMode)
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("姿勢已從", oldPose, "變更為", newPose)
end)
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。