玩家已經在體驗中紀念有趣的瞬間。 自拍模式 開發模組 讓玩家捕捉那個刻在瞬間的清潔記憶,而不是聊天窗口或玩家列表,同時也支援過濾效果、隱藏其他角色和姿勢。
模組使用
安裝
要在體驗中使用 自拍模式 模組:
確認 模型排序 已選擇,然後按一下 查看全部 按鈕 for 類別 。
找到並點擊 Dev Modules 磚塊。
尋找 自拍模式 模組並點擊它,或將它拖曳到 3D 檢視窗中。
在 Explorer 窗口中,將整個 自拍模式 模型移動到 ServerScriptService 中。執行體驗時,模組將分配到各種服務並開始執行。
設定
模組預設為大多數使用案例,但您可以通過 設定 功能來簡單自訂它。
在 StarterPlayerScripts 中,創建一個新的 LocalScript 並將其重命名為 ConfigureSelfieMode 。
將以下代碼貼入新的指令碼。
本地指令碼 - 設定自拍模式local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
角色移動
在自拍模式中防止玩家的角色移動可能是有幫助的。你可以達到此目標,設置 disableCharacterMovement 為 true 在 配置 呼叫。
本地指令碼 - 設定自拍模式
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
自拍模式動作
自拍模式 包含以下 行動 ,每個行動你都可以使用 啟用行動 、 0>關閉行動0> 和 3>切換行動3> 功能,或透過 6>行動啟動6> 和 9>行動關閉 9> 事件偵測。
深度-的-田
由預設, 自拍模式 會顯示一個一般的 深度欄位 效果 (曖曖模糊背景) ,當玩家切換行動作。
要變更預設深度資料效果,將 depthOfFieldEffect 設定為您自己的 DepthOfFieldEffect 實例,在 配置 呼叫中。
本地指令碼 - 設定自拍模式
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local customDepthOfField = Instance.new("DepthOfFieldEffect")customDepthOfField.NearIntensity = 0customDepthOfField.FarIntensity = 1customDepthOfField.FocusDistance = 5customDepthOfField.InFocusRadius = 5SelfieMode.configure({depthOfFieldEffect = customDepthOfField})
鎖定目光
鎖定目光 按鈕會使玩家的角色在自拍姿勢的設定中,看著攝影機將他們的頸部轉動到可以轉動的範圍內。
隱藏其他人
預設情況下,其他角色會在玩家的角色旁邊顯示。玩家可以通過點擊 隱藏其他人 按鈕來獲得完美的單擊。當按鈕切換為關閉時,其他角色會從視線中消失直到操作結束。
過濾器
過濾行動允許玩家從選項Pop、Soft、2>Antique2>、5>Cute5>、8>Dramatic8>和 1>Monochrome 1>中應用預設過濾器。
姿勢
「<a href=\"#玩家名稱\">名稱</a>」操作讓玩家從選項「<a href=\"#歡呼\">歡呼</a>」、「<a href=\"#拍手\">拍手</a>」、「<a href=\"#海豚\">海豚</a>」
API 參考
類型
行動
每個動作都由一個典型的表示,其中包括以下關鍵值對:
鑰匙 | 類型 | 說明 |
---|---|---|
name | 字串 | 動作動名稱,在工具提示中顯示。 |
description | 字串 | 工具提示中顯示的動作動說明。 |
icon | 字串 | 為動作圖示的資產 ID。 |
activeIcon | 字串 | 「啟用」狀態的資產圖示的圖像 ID。 只能在「親」狀態的資產上使用,不能在「子」狀態的資產上使用。 |
actions | 表 | 可選擇的子動作清單。這允許您創建各種其他動作的子菜單。 |
parent | 行動 | 行動作的父級;此只適用於子行動和指向包含此行動的行動。 |
onActivated | 函數 | 啟用玩家觸發動作或子動作時執行的可選擇回復函數。通常,如果動作包含子動作,只有子動作需要定義回復來知道玩家啟用了子動作,而不是單獨將父動作 "擴展" 到子動作。 |
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
數值
自拍模式。行動
自拍模式 包含多個 行動 。您可以使用此枚表與 啟用行動、0>關閉行動0> 和 3>切換行動 3> 功能來使用此枚表。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- 啟用「過濾」行動作SelfieMode.activateAction(SelfieMode.Action.Filter)
功能
設定
在 config 表中,通過以下鍵值/值來偽裝預設設定選項。此功能只能從 LocalScript 中呼叫。
鑰匙 | 說明 | 預設 |
---|---|---|
disableCharacterMovement | 如果是,防止角色在自拍模式開啟時移動。 | 否 |
depthOfFieldEffect | 玩家切換<a href="/reference/engine/databases">深度</a>動作時出現的可選擇的自訂 <b>Class.DepthOfFieldEffect</b> 實例。 |
本地指令碼 - 設定自拍模式
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.configure({disableCharacterMovement = true})
開啟自拍模式
玩家通常會在屏幕右側的"相攝影機"按鈕開啟自拍模式,但此功能可以通過 設定 按鈕來開啟。當實現自訂按鈕如下所示時,您應該通過 LocalScript 按鈕來禁用預設按鈕。此功能只能從 Class.LocalScript 中呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script.Parent
-- 移除預設按鈕
SelfieMode.setHudButtonEnabled(false)
-- 連接自訂按鈕
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
關閉自拍模式
玩家通常會關閉自拍模式使用 ⊗ 按鈕在屏幕底部,但此功能讓您可以關閉它通過代碼。只能從 LocalScript 呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.closeSelfieMode()
是否自動開啟
如果自拍模式開啟是由玩家行動或通過 true 來結果的,返回 true 。 此功能只能從 LocalScript 中呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.openSelfieMode()print(SelfieMode.isSelfieModeOpen())
設定抬頭顯示按鈕已啟用
設定是否顯示自拍模式的預設按鈕。 有助於通過自訂 UI 按鈕實現 開啟自拍模式 。 此功能只能從 LocalScript 中呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
local button = script.Parent
-- 移除預設按鈕
SelfieMode.setHudButtonEnabled(false)
-- 連接自訂按鈕
button.Activated:Connect(function()
SelfieMode.openSelfieMode()
end)
取得行動
獲得一個 行動 類型通過自拍模式。行動模式.Action 枚。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)
啟用行動
程式式啟動一個預設的 動作 。這與玩家切換動作欄中的動作相同。只能從 LocalScript 中呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- 啟用「過濾」行動作SelfieMode.activateAction(SelfieMode.Action.Filter)
停用操作
程式設計上會使其中一個預設的 動作 無效化。這與玩家切換動作欄中的動作相同。只能從 LocalScript 中呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))-- 停用「過濾」行動作SelfieMode.deactivateAction(SelfieMode.Action.Filter)
切換行動
切換關閉行動的時間,或切換開啟它。這是與玩家從行動欄中點擊行動欄中的行動相同的。返回LocalScript狀態作為Boolean。只能從Class.LocalScript中呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))local lockGazeAction = SelfieMode.getAction(SelfieMode.Action.LockGaze)local isEnabled = SelfieMode.toggleAction(lockGazeAction)if isEnabled thenprint("Activated", lockGazeAction.name)elseprint("Deactivated", lockGazeAction.name)end
設定主題
設定自拍模式主題,包括文字大小、字體、按鈕/提示顏色等。此功能只能從 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 | Class.ScrollingFrame 元素的模組內容使用捲軸條的顏色。( Color3 )。 | [255,255,255] |
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.setTheme({textSize = 20,font = Enum.Font.Michroma,backgroundColor = Color3.fromRGB(0, 40, 75),})
啟用
設定自拍模式是否啟用或否。啟用時,模組的所有 UI 都會移除,所有事件也會斷開。此功能只能從 LocalScript 中呼叫。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))SelfieMode.setEnabled(false)
事件
自拍模式開啟
玩家開啟自拍模式或當 開啟自拍模式 時發生時此事件。此事件只能在 LocalScript 中連接。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeOpened:Connect(function()
print("Selfie mode open")
end)
自拍模式關閉
發生玩家關閉自拍模式或呼叫 關閉自拍模式 時。 此事件只能連接在 LocalScript 中。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeClosed:Connect(function()
print("Selfie mode closed")
end)
已啟動
參數 | |
---|---|
動作: 自拍模式.Action | 啟用的 行動。 |
啟動時發射;這可能是主要動作,例如深度、鎖定目光或隱藏其他人;或者它也可以是一個子動作,例如2>過濾器2>或5>姿勢5>
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)
已停用
參數 | |
---|---|
動作: 自拍模式.Action | 關閉 行動 。 |
主要行動或子行動無效時發生。連接的函數接收已停用的 行動。此事件只能在 LocalScript 中連接。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)
過濾器已變更
過濾器被應用或移除時發生。連接的函數接收新過濾器名稱和舊過濾器名稱。此事件只能在 Class.LocalScript 中連接。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.filterChanged:Connect(function(newFilter, oldFilter)
print("Filter changed from", oldFilter, "to", newFilter)
end)
姿勢已變更
當 姿勢 應用或移除時發生。連接的函數接收新的姿勢名稱和舊的姿勢名稱。此事件只能在 LocalScript 中連接。
本地指令碼
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.poseChanged:Connect(function(newPose, oldPose)
print("Pose changed from", oldPose, "to", newPose)
end)