自拍模式

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

玩家已經在體驗中紀念有趣的瞬間。 自拍模式 開發模組 讓玩家捕捉那個刻在瞬間的清潔記憶,而不是聊天窗口或玩家列表,同時也支援過濾效果、隱藏其他角色和姿勢。

模組使用

安裝

要在體驗中使用 自拍模式 模組:

  1. 檢視 標籤開啟 工具箱 並選擇 創作者商店 標籤。

    Toolbox toggle button in Studio
  2. 確認 模型排序 已選擇,然後按一下 查看全部 按鈕 for 類別

  3. 找到並點擊 Dev Modules 磚塊。

  4. 尋找 自拍模式 模組並點擊它,或將它拖曳到 3D 檢視窗中。

  5. 在 Explorer 窗口中,將整個 自拍模式 模型移動到 ServerScriptService 中。執行體驗時,模組將分配到各種服務並開始執行。

設定

模組預設為大多數使用案例,但您可以通過 設定 功能來簡單自訂它。

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

  2. 將以下代碼貼入新的指令碼。

    本地指令碼 - 設定自拍模式

    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 = 0
customDepthOfField.FarIntensity = 1
customDepthOfField.FocusDistance = 5
customDepthOfField.InFocusRadius = 5
SelfieMode.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> 功能來使用此枚表。

名稱摘要
DepthOfField參考 深度資源 動作。
LockGaze參考 鎖定目光 動作。
HideOthers參考 隱藏其他人 動作。
Filter參考 過濾器 動作。
Pose參考姿勢動作。
本地指令碼

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- 啟用「過濾」行動作
SelfieMode.activateAction(SelfieMode.Action.Filter)

功能

設定

設定(配置: table )

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()

是否自動開啟

是否自拍模式開啟: boolean

如果自拍模式開啟是由玩家行動或通過 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(動作ction: 自拍模式。): 行動

獲得一個 行動 類型通過自拍模式。行動模式.Action 枚。

本地指令碼

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

啟用行動

啟動Action(動作ction: 自拍模式.Action )

程式式啟動一個預設的 動作 。這與玩家切換動作欄中的動作相同。只能從 LocalScript 中呼叫。

本地指令碼

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- 啟用「過濾」行動作
SelfieMode.activateAction(SelfieMode.Action.Filter)

停用操作

deactivateAction(動作ction: 自拍模式。 )

程式設計上會使其中一個預設的 動作 無效化。這與玩家切換動作欄中的動作相同。只能從 LocalScript 中呼叫。

本地指令碼

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- 停用「過濾」行動作
SelfieMode.deactivateAction(SelfieMode.Action.Filter)

切換行動

切換行動(動作ction: 自拍模式.action): boolean

切換關閉行動的時間,或切換開啟它。這是與玩家從行動欄中點擊行動欄中的行動相同的。返回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 then
print("Activated", lockGazeAction.name)
else
print("Deactivated", lockGazeAction.name)
end

設定主題

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]
scrollBarColorClass.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),
})

啟用

setEnabled(isEnabled: boolean )

設定自拍模式是否啟用或否。啟用時,模組的所有 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)

過濾器已變更

參數
新Filter: string新的過濾篩選器。
舊Filter: string以前的過濾篩選器。

過濾器被應用或移除時發生。連接的函數接收新過濾器名稱和舊過濾器名稱。此事件只能在 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)

姿勢已變更

參數
新Pose: string新姿勢。
舊姿勢: string上一個姿勢。

姿勢 應用或移除時發生。連接的函數接收新的姿勢名稱和舊的姿勢名稱。此事件只能在 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)