自拍模式

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

玩家已經開始拍攝屏幕截圖來紀念體驗中的有趣時刻。自拍模式 開發者模組 讓玩家奪取那一刻的更乾淨記憶,而不是聊天窗口或玩家列表,同時也支持過濾效果、隱藏其他角色和姿勢。

模組使用

安裝

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

  1. 視圖標籤開啟工具箱,然後選擇 創作者商店 標籤。

    Toolbox toggle button in Studio
  2. 確保 模型 排序已選擇,然後單擊 查看全部 按鈕以獲得 類別

  3. 找到並點擊 開發模組 磚塊。

  4. 尋找 自拍模式 模組,然後單擊它或拖放到 3D 視檢視中。

  5. 瀏覽器 窗口中,將整個 SelfieMode 模型移至 ServerScriptService 。執行體驗時,模組會分配到各種服務並開始運行。

配置

模組預先配置以處理大多數使用案例,但您可以通過 配置 功能簡單自訂它。

  1. 新手玩家腳本 中,創建一個新的 LocalScript 並將其重命名為 配置自拍模式

  2. 將以下代碼貼到新腳指令碼中。

    本地腳本 - 配置自拍模式

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

角色移動

可能有利於防止玩家的角色在自拍模式下移動。您可以透過在 disableCharacterMovement 呼叫中設置 真實 來實現這一目標。

本地腳本 - 配置自拍模式

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

自拍模式行動

自拍模式 配有以下 行動 , 每個你都可以使用 啟用行動 , 停用行動 , 以及 切換行動 功能, 或通過 行動已啟動行動已停用 事件來偵測。

田地深度

預設情況下, 自拍模式 會顯示一般的 鏡頭深度 效果(玩家切換行動作時的淺模糊背景)。

若要變更預設欄位深度效果,請在 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
})

鎖定視線

鎖定迷宮 切換會使玩家的角色在設置自拍姿勢時看到相機,在他們的頸部可以轉動的範圍內,而不是在現實範圍內。

隱藏其他

預設情況下,其他角色會與玩家的角色一起顯示。玩家可以通過點擊 隱藏其他人 按鈕來獲得完美的單人射擊。開啟時,其他角色會消失在視線中,直到切換關閉動作為止仍然隱形。

過濾

過濾器 行動 讓玩家從選項 流行古老可愛戲劇單色 中應用預設過濾器。

姿勢

姿勢 動作讓玩家從選項中選擇預設姿勢 歡呼 、 拍掌 、 海豚 、 跳舞 、 吉他 、 跳波 、 更大聲 、 跳舞波 、 旋轉 和 跳舞波 。

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)

枚數

自拍模式行動

自拍模式 包含多個 行動。您可以使用此枚詞與 activateActiondeactivateActiontoggleAction 功能。

名稱總結
DepthOfField參考 領域深度 動作動。
LockGaze參考 鎖定迷宮 動作。
HideOthers參考 隱藏其他人 動作。
Filter參考 過濾 動作。
Pose參考 姿勢 動作。
本地脚本

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

功能

設定

設定(config: table )

通過以下鍵/值在 config 表中覆蓋預設配置選項的默認選項。此功能只能從 LocalScript 中呼叫。

關鍵說明預設
disableCharacterMovement如果真實,會防止在自拍模式開啟時角色移動。
depthOfFieldEffect可選自訂 DepthOfFieldEffect 實例,當玩家切換 鏡頭深度 動作時出現。
本地腳本 - 配置自拍模式

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

開啟自拍模式

開啟自拍模式()

玩家通常會使用畫面右側的「相攝影機」按鈕開啟自拍模式,但此功能讓您可以通過代碼來開啟它。當執行以下方面的自訂按鈕時,您應該通過 setHudButtonEnabled 停用預設按鈕。此功能只能從 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

如果玩家行動或通過 openSelfieMode 開啟自拍模式,返回 true 。此功能只能從 LocalScript 中呼叫。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.openSelfieMode()
print(SelfieMode.isSelfieModeOpen())

設定Hud按鈕啟用

設置Hud按鈕啟用()

設置是否顯示預設按鈕進入自拍模式。在使用自訂介面按鈕實現 開啟自拍模式 時有用。此功能只能從 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)

啟用行動

啟用行動(行動作: SelfieMode.Action )

程式動態啟用預設 行動之一。這與玩家從行動欄切換行動時相同。只能從 LocalScript 中呼叫。

本地脚本

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

停用行動

停用行動(動作動: SelfieMode.Action )

程式atically停用預設 行動之一。這與玩家從行動欄中切換行動時相同。只能從 LocalScript 中呼叫。

本地脚本

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

切換行動

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

如果關閉,切換行動;如果開啟,則切換關閉。這與玩家從動作欄點擊動作相同。返回新的「是否切換」狀態為 boolean。只能從 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

設定主題

設定主題(主題: table )

配置自拍模式主題,包括文字大小、字體、按鈕/說明顏色等。此功能只能從 LocalScript 中呼叫。

關鍵說明預設
textSize所有文字的尺寸。16
font用於所有介面的字體(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]
本地脚本

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),
})

設定啟用

設置啟用(啟用:boolean)

設置自拍模式是否啟用。禁用時,模組的所有介面都會被移除,所有事件都會斷開。此功能只能從 LocalScript 中呼叫。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.setEnabled(false)

事件

自拍模式已開啟

當玩家開啟自拍模式或當 openSelfieMode 被呼叫時,發生火災。這個事件只能在 LocalScript 中連接。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeOpened:Connect(function()
print("Selfie mode open")
end)

自拍模式已關閉

當玩家關閉自拍模式或當 closeSelfieMode 被呼叫時,發生火災。此事件只能在 LocalScript 中連接。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.selfieModeClosed:Connect(function()
print("Selfie mode closed")
end)

行動已啟用

參數
動作:自拍模式行動已啟用的 行動

當啟用行動時發生火災;這可能是像 鏡頭深度鎖定視線隱藏其他人 等主要行動之一;或者可能是子行動,例如 過濾器姿勢 。連接的功能接收啟用的 行動。此事件只能在 LocalScript 中連接。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionActivated:Connect(function(action)
print(action.name, "activated")
end)

行動已停用

參數
動作:自拍模式行動已停用的 行動

當主要行動或子行動被停用時發生火災。連接的功能接收到停用的 行動。此事件只能在 LocalScript 中連接。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
SelfieMode.actionDeactivated:Connect(function(action)
print(action.name, "deactivated")
end)

過濾器變更

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

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

位置變更

參數
新姿勢: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)