自拍模式

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

玩家已经开始拍照来纪念体验中的有趣时刻。自拍模式 开发者模块 允许玩家捕捉那一刻的更清洁的记忆,而不是聊天窗口或玩家列表,同时支持过滤效果、隐藏其他角色和姿势。

模块使用

安装

要在体验中使用 自拍模式 模块:

  1. 视图选项卡打开工具箱并选择 创建者商店 选项卡。

    Toolbox toggle button in Studio
  2. 确保 模型 排序已选择,然后单击 查看全部 按钮以获取 类别

  3. 找到并单击 开发模块 瓦片。

  4. 找到 自拍模式 模块并单击它,或拖放到 3D 视查看中。

  5. 浏览器 窗口中,将整个 自拍模式 模型移至 ServerScriptService 。在运行体验时,模块将分配到各种服务并开始运行。

配置

模块已预配置为处理大多数使用案例,但您可以通过 配置 函数轻松自定义它。

  1. 新手玩家脚本 中,创建一个新的 LocalScript 并将其重命名为 配置自拍模式

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

自拍模式行动

自拍模式 带有以下 行动 , 每个你都可以使用 激活行动 , 关闭行动 , 以及 切换行动 功能, 或通过 行动激活行动关闭 事件进行检测。

田地深度

默认情况下, 自拍模式 会显示一个通用的 场景深度 效果(玩家切换行动作时的淡化背景)。

要更改默认的深度效果,在 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 参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

返回 true 如果自拍模式因玩家操作或通过 打开自拍模式 而打开。此函数只能从 LocalScript 中调用。

本地脚本

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

设置Hud按钮启用

设置Hud按钮启用()

设置默认按钮进入自拍模式是否显示。在通过自定义 UI 按钮实现 openSelfieMode 时有用。此函数只能从 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)

激活行动

激活行动(动作动: 自拍模式.Action )

通过编程激活默认 行动之一。这与当玩家从行动栏切换行动时相同。只能从 LocalScript 中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- 启用“过滤”行动作
SelfieMode.activateAction(SelfieMode.Action.Filter)

禁用行动

禁用行动(动作: 自拍模式.Action )

通过编程方式禁用默认 行动之一。这与当玩家从行动栏中切换行动时相同。只能从 LocalScript 中调用。

本地脚本

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local SelfieMode = require(ReplicatedStorage:WaitForChild("SelfieMode"))
-- 禁用“过滤”行动作
SelfieMode.deactivateAction(SelfieMode.Action.Filter)

切换行动

切换行动(动作: 自拍模式.Action ):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.FontGothamMedium
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)