自拍模式

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

玩家已经在体验中取 screenshots 来纪念有趣的时刻。 自拍模式 开发者模块 让玩家捕捉那个时刻的更清晰的记忆,而不是聊天窗口或玩家列表的支持,还支持过滤效果、隐藏其他角色和伪装。

模块使用

安装

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

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

    Toolbox toggle button in Studio
  2. 确保 模型排序 已选择,然后单击 查看所有 按钮为 类别

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

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

  5. Explorer 窗口中,将整个 SelfieMode 模型移到 ServerScriptService 。运行体验时,模块将分配到各个服务并开始运行。

配置

模块预配置为大多数使用场景,但您可以通过 配置 函数轻松自定义。

  1. StarterPlayerScripts 中,创建一个新的 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
})

自拍模式动作

自拍模式 包括以下 行动 ,其中您可以使用 激活行动 、 0>禁用行动0> 和 3>切换行动3> 功能,或通过 6>操作激活6> 和 9>操作禁用 9> 事件来检测。

深度-的-田

默认情况下, 自拍模式 会显示一个通用的 深度-of-field 效果(背景模糊),当玩家切换操动作时。

要更改默认的深度 of 场景效果,请将 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 、 Antique 、 2> Cute2> 、 5> Dramatic5> 和 8> Monochrome8> 中应用预设过滤器。

姿势

该 姿势 动作允许玩家从选项 欢呼 、 拍手 、 2> 海豚2> 、 5> 漂浮5> 、 8> 吉他

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/datastores">深度</a>操作时出现的可选定的 Class.DepthOfFieldEffect 动作例。
本地脚本 - 配置自拍模式

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

打开自拍模式

打开自拍模式

玩家通常会打开自镜头模式使用屏幕右侧的“相机”按钮,但此功能可以通过代验证码打开。当实现自定义按钮如下所示时,您应该禁用默认按钮通过 设置HudButtonEnabled 。此功能只能从 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())

设置HudButtonEnabled

设置HudButtonEnabled()

设置是否显示自拍模式的默认按钮。 有助于通过自定义 UI 按钮实现自拍模式。 此功能只能从一个 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)

获取动作

获取Action(动作ction: 自拍模式。操作): 操作

通过 自拍模式 枚列获得一个 行动 类型。

本地脚本

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

激活Action

激活Action(动作ction: 自拍模式。操作 )

程序激活一个默认的 行动 。这与玩家从行动条中切换行动时相同。只能从 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)

切换动作

切换动作(action: selfiemode.action): boolean

切换一个 动作 在关闭时,或切换它在开启时。这与玩家从 action 条中单击动作时返回的新“是否切换”状态相同。只能从 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主要用于放置用户界面元素( 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 )

设置是否启用自拍模式。禁用时,所有模块的所有界面都将移除,所有事件都将断开。此功能只能从 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)

已激活

参数
动作:自拍模式。操作已激活的行动

激活时发射,这可能是主要激活如 深度 、 锁定目标 或 隐藏其他 ;或者它可能是子激活如 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)

已禁用

参数
动作:自拍模式。操作未激活的行动 。

主要操作或子操作被禁用时触发。 连接的函数接受禁用的 操作 。此事件仅可在 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以前的过滤器。

过滤器 应用或移除时,发射。连接的函数接收新的过滤器名称和旧的过滤器名称。此事件只能在 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)

oseChanged

参数
新姿势:string新的姿势。
oldPose: 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)