自拍模式

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

玩家已经在游戏中拍摄屏幕截图以纪念有趣的时刻。SelfieMode 开发者模块 让玩家捕捉到更干净的记忆,而不需要聊天窗口或玩家列表,同时支持滤镜效果、隐藏其他角色和摆姿势。

模块使用

安装

要在游戏中使用 SelfieMode 模块:

  1. 从 Studio 的 窗口 菜单或 主页 选项卡工具栏中,打开 工具箱 并选择 创作者商店 选项卡。

  2. 确保选择了 模型 排序,然后点击 查看所有 按钮以查看 类别

  3. 找到并点击 瓦片。

  4. 找到 自拍模式 模块并点击它,或将其拖放到 3D 视图中。

  5. 资源管理器 窗口中,将整个 SelfieMode 包移动到 ReplicatedStorage 中。运行游戏时,模块将开始运行。

配置

该模块已预配置以适应大多数用例,但您可以通过 configure 函数轻松自定义它。

  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)

以编程方式激活默认 操作 之一。这与玩家从操作栏中切换操作时的效果相同。只能从 LocalScript 调用。

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

deactivateAction

deactivateAction(action: SelfieMode.Action)

以编程方式停用默认 操作 之一。这与玩家从操作栏中切换操作关闭时的效果相同。只能从 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 是我们在美国及其他国家或地区的注册与未注册商标。