本网站内容使用人工智能(AI)或机器翻译技术翻译,可能存在错误。

Skip to content

Roblox 中的游戏内报道如何运作

在动态3D环境中生成详细报告背后的技术

  • Roblox 每天处理 2.74 亿次虚拟形象更新,而这仅仅是我们为防范安全违规行为而审核的用户生成内容中的一种。1  
  • 玩家举报是早期识别违规行为的关键环节,我们希望让玩家能够轻松举报任何他们认为不适当或违反我们政策的内容。 
  • 由于动态的用户生成 3D 内容中的违规行为往往难以捕捉,我们利用光线投射、数据模型克隆以及全面升级的举报界面,帮助玩家识别并举报特定对象,同时提供我们采取行动所需的数据和视觉证据。

在高峰期,Roblox 平台每天处理 2.74 亿次虚拟形象更新。¹ 在此类动态的用户生成 3D 内容中举报和审查滥用行为颇具挑战性,因为它并不总像文本日志或社交媒体帖子等静态内容那样留下明确的痕迹。 在这篇博客文章中,我们将介绍我们用于捕获处理玩家举报所需数据和视觉上下文的方法,从最初用于识别违规虚拟角色的光线投射方法,到我们当前的系统——该系统与 Roblox 数据模型集成,使玩家能够精确举报任何 3D 游戏对象。

玩家举报是及早识别潜在政策违规行为的关键环节。我们最近更新了举报流程,让玩家能够更轻松地立即举报或屏蔽任何令其感到不适或不安全的内容。目前,基于玩家举报,每月有超过19,000个违反政策的角色被自动移除,这同时也为检测不当游戏提供了重要的早期预警信号。2

捕捉动态内容的挑战

由于动态的用户生成 3D 内容可以在不同情境下组合使用,简单的描述或截图并不总能提供我们采取行动所需的必要数据。社交媒体帖子、论坛评论和视频等静态内容可以作为问题的永久记录,便于举报和审查证据。文字和语音聊天会在 Roblox 上被记录,但其他类型的用户生成内容则不会留下如此明确的痕迹。 图片可能从平台其他位置加载而来,动态交互可能无法被记录,而且玩家有时会将单个看似无害的服装道具组合起来,形成不恰当的装扮。 

为了在动态场景中捕捉政策违规行为,举报人首先需要一种方法来识别游戏中的具体元素。其次,该识别机制需要为被举报的内容提供对象ID,以便对正确的对象进行评估。 

An example where layering two separate shirts, one with the letters “CK” on the sleeve and one with the letters “FU” on the torso, results in profanity that could evade moderation systems. Generating an ID for this avatar makes it possible to report and review.

在3D空间中检测滥用头像 

我们之前的举报工具主要依赖聊天记录作为证据。举报内容不包含任何视觉信息,导致对事件的理解存在巨大缺口。当我们开始开发一款能够捕捉其他类型违规行为更多背景信息的举报工具时,首先将目光投向了每位玩家都会互动的对象:虚拟形象。 玩家可以在 Roblox 上自定义头像来代表自己,而捕获头像信息意味着,即使聊天记录中没有相关痕迹,我们也能将违规行为与特定玩家关联起来。一个能够有效识别头像数据的系统,也将为未来处理其他类型的对象奠定重要基础。 

潜在的解决方案包括截图或后台录屏,以补充更多证据支持举报。 我们首先测试了截图功能,因为这是一种获取洞察的便捷方式,尽管它无法捕捉所有可能的违规行为。但我们很快遇到了一个局限:2D 图像无法帮助我们区分玩家虚拟形象与 3D 空间中的其他虚拟形象和 NPC。当虚拟形象重叠时,我们无法始终准确识别潜在违规者的用户 ID。

我们需要找出如何提取更多信息,以便将某个时间点拍摄的二维图像转化为可操作的证据。 

我们最终确定采用光线投射法,作为在三维空间中筛选相关信息并将其呈现在报告生成时刻的二维图像中的高效方法。当玩家打开报告时,我们会首先收集该会话中的玩家列表,并过滤掉不在视口范围内的玩家。随后,我们使用光线投射法确定每个玩家角色的边界框。 与此同时,我们会自动将Roblox引擎的帧缓冲区内容保存为截图。这样,一张简单的2D截图就能与关于3D世界的充足空间数据相结合,从而将潜在违规者与其他虚拟角色及周围环境区分开来。光线投射技术使我们平均能在3.5毫秒内确定边界框。如果采用更慢的方法,就会导致尴尬的停顿,从而破坏用户体验。 

An illustration of how ray casting helps determine which region in the 2D screenshot belongs to which avatar.
 A screenshot of a game with bounding boxes around avatars and tighter convex hulls that pinpoint where the avatar is on-screen.

在此基础上,系统可以异步收集有关潜在政策违规的其他上下文信息。目前,当用户提交报告时,系统会自动触发此机制。 

高亮模式

接下来,我们需要一个直观的举报界面,以便玩家能够快速识别违规内容。我们对举报界面进行了更新,新增了“高亮模式”,让玩家能够高亮显示违规内容,并在举报中添加更多信息。当玩家点击违规内容时,系统会在玩家光标周围以圆形范围投射出一束束光线。如果他们选中了其他玩家的头像,我们就能捕获所有必要的元数据,以便审核举报并采取行动。 在内部用户调研中,“高亮模式”广受好评,包括9至13岁的年轻玩家——他们现在能够更轻松地标出问题并成功完成举报。

Highlight Mode allows players to highlight what they want to report using the in-game report UI (e.g., the green circle around the duck avatar).

在新报告工具的这个初始版本中,我们仅捕获了头像的ID。如果玩家选择了其他内容,我们则不会捕获该对象的ID。我们可以分析报告以获取洞察和更全面的背景信息,联系开发者,并决定下一步该怎么做。 

但我们设想了一种机制,允许玩家精确标记游戏中的任何项目,并将其数据直接捕获到报告中。

通用内容类型的数据模型捕获

虽然我们的环形射线投射方法在区分玩家视口内数量有限的虚拟形象或广告方面效果良好,但无法扩展到游戏中的每个对象。请看下面的环境示例:

在岩石、灌木和花朵等数十个物体相互重叠并动态变化的密集环境中,仅靠环形光线投射无法可靠地识别出单朵花或单株灌木。我们需要让玩家能够更精确地选中物体,同时也需要一种方法来捕获游戏中任意物体相关的数据。 

Roblox 的引擎已经在数据模型中存储了 3D 世界的表示形式,但一个游戏的完整数据模型大小可能达到数千兆字节。为了优化速度,我们创建了一个克隆机制(该机制最初是为“翻译反馈”功能开发的),它仅克隆渲染场景所需的关键对象。 一旦获得数据模型的克隆版本,我们就能利用“高亮模式”将举报者置入克隆世界中,让玩家能够以3D形式精确地高亮标记需要举报的内容。 

Highlight Mode now clones key objects in the game’s data model and allows players to directly highlight the object they’re reporting.

这种方法让用户能够更好地掌控其举报内容,同时也为我们提供了评估更多内容类型所需的元数据。此外,系统还会自动将截图附加到举报中,以辅助审核工作。 

数据完整性

自项目启动以来,我们一直面临一个关键问题:应在客户端设备上还是游戏服务器上采集证据?Roblox 支持仅更新客户端状态(而不影响服务器)的客户端脚本。此外,某些物理效果具有非确定性,这意味着服务器端的截图可能无法准确呈现举报者实际经历的情景。 我们最终决定采用客户端捕获,以确保举报人能够如实记录其所见内容,但这同时也存在一个权衡:恶意行为者可能入侵客户端并伪造证据。 

为缓解这一问题,我们通过多种信号验证准确性,并筛除不准确的客户端呈现结果。打个比方,即使气象学家无法从每个气象站获得准确的观测数据,他们仍然能够制作出准确的天气预报。 

未来工作  

得益于这些改进以及捕捉更丰富视觉信息的能力,该系统目前每月自动下架超过 19,000 个违反政策的游戏角色,并已成为检测不当游戏行为的重要指标。我们还观察到该功能被广泛采用,约 19% 的符合条件的举报包含视觉标注。2 

我们已着手进行下一阶段的改进工作,致力于开发一种方法来检测仅凭特定时刻的快照无法判断的动态违规行为(例如表情动作与玩家移动的组合)。今年晚些时候,我们计划启用对被举报场景的时间序列捕获功能。随着 Roblox 持续为创作者提供构建更丰富游戏内互动的工具,我们的安全团队也将继续为所有玩家营造安全的游戏环境。

在此,我们要感谢 Rayan Hussain、Ryan Liu、Bridget Daly、Agatha Kielczewski、Alex Leavitt、Ying Liao 和 Andrew Xu 在该项目中的辛勤工作。

1基于2025年上半年数据。

2基于2026年3月1日至4月1日的数据。