本網站內容使用人工智慧(AI)或機器翻譯技術翻譯,可能存在錯誤。

Skip to content

《Roblox》中的遊戲內報導如何運作

在動態 3D 環境中擷取詳細報告的技術原理

  • Roblox 每天處理 2.74 億次虛擬角色更新,而這僅僅是我們為安全違規問題進行審查的用戶生成內容類型之一。1  
  • 玩家舉報是及早識別違規行為的關鍵環節,我們希望讓玩家能輕鬆舉報任何他們認為不當或違反我們政策的內容。 
  • 由於動態的用戶生成 3D 內容中的違規行為往往難以捕捉,我們運用光線投射、資料模型複製,以及全面改版的檢舉介面,協助玩家識別並檢舉特定物件,同時提供我們採取行動所需的資料與視覺證據。

在高峰期,Roblox 平台每日處理 2.74 億次虛擬角色更新。1 針對此類動態、由使用者生成 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。

我們需要找出如何擷取更多資訊,以便將某個時間點拍攝的 2D 影像轉化為可付諸行動的證據。 

我們最終採用光線投射作為高效方法,藉此在 3D 空間中隔離相關資訊,並將其呈現在報告當下的 2D 影像中。當玩家開啟報告時,我們首先彙整該場次中的玩家清單,並過濾掉不在視口範圍內的玩家。接著,我們使用光線投射來確定每位玩家虛擬角色的邊界框。 同時,我們會自動將 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 日的數據。