首页
/
每日頭條
/
遊戲
/
新出的捏臉遊戲在哪
新出的捏臉遊戲在哪
更新时间:2024-07-09 04:53:01
内容簡介

《騰訊遊戲開發精粹Ⅱ》是騰訊遊戲研發團隊不斷積累沉澱的技術結晶,是繼2019年推出《騰訊遊戲開發精粹》後的誠意續作。本書收錄了21個在上線項目中得到驗證的技術方案,深入介紹了騰訊公司在遊戲開發領域的新研究成果和新技術進展,涉及人工智能、計算機圖形、動畫和物理、客戶端架構和技術、服務端架構和技術及管線和工具等多個方向。本書适合遊戲從業者、遊戲相關專業師生及對遊戲幕後技術原理感興趣的普通玩家。

騰訊遊戲開發精粹II——1.1 遊戲中的捏臉系統可戳此查看。


1.2 基于照片的角色捏臉流程

基于照片的自動捏臉流程如圖1.1所示。對于給定的單張照片,首先檢測其中最主要的人臉,同時進行發型分類及眼鏡檢測。在檢測到的人臉區域,進一步進行關鍵點檢測。在真實照片中,人臉可能并不是正視攝像頭的,并且真實人臉并非總是完美對稱的,因此,需要将原始照片中的關鍵點進行預處理,以達到歸一、對稱、平滑的效果。下一步需要根據遊戲具體的風格,對人臉關鍵點進行調整。

如果是偏向寫實風格的遊戲,可以直接使用預處理後的關鍵點,也可以添加額外的調整,如瘦臉等;如果是偏向卡通風格的遊戲,則需要根據遊戲風格對真實人臉的關鍵點進行調整,使得調整後的關鍵點既符合遊戲風格,又保持用戶特征。

得到了風格化關鍵點後,需要将其轉化為遊戲中模型的控制參數。有些遊戲采用網格控制,那麼可以直接将标準模型網格變形,使變形後的關鍵點位置達到用戶的預期,同時保持平滑;有些遊戲采用骨骼或滑條控制,那麼需要将風格化關鍵點轉化為相應的參數。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)1

圖1.1 基于照片的自動捏臉流程

根據圖1.1,2.1~2.9節将對應介紹每一個模塊的具體實現及相應的定義。

1.2.1 基于關鍵點的人臉表示方法

為了從照片上自動提取人臉的特征,首先需要對臉部特征進行表示。臉部特征一般分為形狀特征與顔色特征兩個部分。形狀特征主要指臉型及五官的邊界。例如,臉部的輪廓、眼睛的輪廓、眉毛的輪廓等。顔色特征包括面部各個區域的顔色,如膚色、眉色、唇色等。無論哪種特征,都需要對臉部重要部分進行形狀和位置的定位,并且定位信息需要包含3D坐标。

為了有效表示臉部特征,業内比較成熟的表示方式是使用關鍵點信息。所有的關鍵點都定義在臉型和五官的邊界處。我們希望盡可能準确地表示人臉各個部分的形狀信息,關鍵點越多,顯然擁有越強的表示能力。但是,為了能夠自動捏臉,程序需要對定義的關鍵點的3D信息進行估計,關鍵點越多,預測難度越大。綜合兩方面考量,本章介紹的自動捏臉流程采用了如圖1.2所示的96個關鍵點的定義方式。

對于給定的單張照片,程序會檢測這96個關鍵點,并估計出它們的3D空間的坐标,這樣就可以得到人臉主要部位的形狀信息。根據具體的遊戲需求,對關鍵點進行符合遊戲風格的調整,如對稱化、眼睛放大、瘦臉等,從而得到遊戲人臉模型的關鍵點的目标位置。對于默認的遊戲中的人臉模型,需要預先标定其網格上對應的96個關鍵點,将它們調整到上述的目标坐标,并在此過程中保持人臉網格的平滑,從而得到最終的帶有人臉特征的遊戲人臉。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)2

圖1.2 人臉關鍵點定義

《騰訊遊戲開發精粹Ⅱ》電子版已上線UWA學堂 | Unity和Unreal遊戲引擎的從業者學習交流平台,感興趣的讀者可以前往閱讀。


1.2.2 人臉關鍵點檢測

本節将介紹人臉關鍵點的檢測方法。如圖1.3所示,為了對用戶輸入的照片進行關鍵點預測,首先需要進行人臉檢測,根據人臉檢測框對輸入照片進行裁剪和縮放得到固定大小的人臉照片(如256像素×256像素),才能進行人臉關鍵點預測。現有基于深度學習或圖像特征的方法都可以比較有效地檢測到照片中的人臉,基于深度學習的人臉檢測方法相對于基于圖像特征的方法可以在更加難以識别的照片中檢測到人臉,如人臉朝向較偏,或者光照陰影幹擾較大的情況。

但是,基于深度學習的方法需要使用GPU進行推理,否則人臉檢測速度較慢,尤其是對于較大的照片。圖1.4所示為在使用CPU進行計算的情況下,基于深度學習(CNN)和基于圖像特征(HoG)的方法進行人臉檢測的速度對比。當具體應用時,如果有GPU計算資源,可以使用基于深度學習的方法進行人臉檢測;如果沒有,可以使用基于圖像特征的方法進行人臉檢測。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)3

圖1.3 人臉檢測和關鍵點預測

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)4

圖1.4 人臉檢測的速度對比

在進行人臉檢測時,依據照片中的人臉個數,檢測程序會輸出若幹方框,所以在使用和處理人臉檢測結果前需要進行判斷處理。如果輸出人臉檢測方框數目為0,表明人臉檢測沒有輸出,需要提示用戶重新輸入照片;如果輸出人臉檢測方框數目大于1,表明檢測到2個或以上人臉,程序會默認選擇最大人臉檢測方框對應的人臉進行處理。确定使用人臉檢測的某個檢測方框輸出後,需要根據方框進行縮放和裁剪得到固定大小的人臉照片,從而進行人臉關鍵點預測。縮放和裁剪後得到的照片大小要和人臉關鍵點檢測模型中使用的訓練圖片大小一緻。

人臉關鍵點檢測作為一個計算機視覺領域的長期研究問題,随着近年深度學習的發展,在使用卷積神經網絡(CNN)後得到了更好的解決。3D人臉重建和人臉關鍵點(圖像域)檢測這兩個問題聯系緊密,解決一個問題,可以簡化另一個問題。傳統方法往往進行人臉關鍵點檢測從而輔助人臉識别或3D人臉重建等任務。但是,當人臉偏轉或被遮擋時,3D關鍵點檢測往往不準确從而影響後續任務的性能。

基于CNN的3D人臉重建和人臉關鍵點檢測方法,大體上可以分為兩類。第一類方法是基于3D Morphable Model(3DMM)的方法[1][2]。這類方法使用CNN來預測3DMM系數或3D形變,根據單張2D人臉照片來複原人臉3D信息,從而進行密集的關鍵點檢測或人臉3D重建。這類方法雖然取得一些進展,但是效果受限于人臉模型或模闆定義的模型空間,所重建的3D人臉往往過于接近模闆而較少保留重建對象人臉的特征。另外,這類方法使用CNN預測3DMM系數後需要調用模型基得到3D人臉三角面片模型,還需要使用透視投影和3D非線性形變等計算。這一系列計算增加了3D人臉重建的計算開銷,不符合實時性高的計算需求。與第一類方法不同,第二類方法跳過3DMM,用端到端的網絡直接根據2D人臉照片重建3D人臉模型[3][4]。

其中,Adrian Bulat等通過訓練一個複雜的神經網絡來回歸68個人臉2D關鍵點,用另一個網絡去估計關鍵點的深度。Aaron Jackson等提出了用體素來表征3D人臉,在一個網絡中用2D人臉照片來回歸預測體素表達。這種體素表達把人臉網格3D模型轉化成一個3D立方體,有很多冗餘,幾千個頂點的人臉網格3D模型轉化成3D立方體後,數據量要增加一個數量級。為了減少數據量,需要犧牲分辨率來減少3D立方體的大小。此外,用于回歸這種體素表達的網絡很複雜。

目前常用的兩類CNN人臉重建方法各有優劣。基于人臉模型的方法保留了關鍵點的語義信息但是受限于模型空間;無模型/數據驅動的方法(Model-Free)不受模型限制,雖然在性能上略有優勢,但是不能保留圖像上的語義信息。近年來,第三類方法開始出現,這類方法提出使用無模型的方法重建3D人臉且保留關鍵點信息[5]。此方法提出了同時預測密集關鍵點和3D人臉重建的CNN框架,多個公共數據集顯示該方法優于同類算法。本文采用了類似直接從原始照片來回歸Position Map(位置圖)的方法,從而達到關鍵點預測快速和高準确度的目的。關鍵點預測模型網絡架構如圖1.5所示。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)5

圖1.5 關鍵點預測模型網絡架構

從應用層面上講,對于一個人臉重建或關鍵點檢測的應用,選擇哪一類CNN方法要考慮方法的性能和泛化能力、模型預測的速度、模型網絡的大小等。但是,對于實際應用來說,确定一個适當的網絡框架僅僅是整個工作的開始。首先,學術界人臉關鍵點檢測的标準是68個關鍵點。但是,68個關鍵點對于具體的應用是否足夠?這需要用68個關鍵點的檢測結果,針對具體應用進行實驗和分析得出結論。對于VR/AR或人臉卡通化的應用,68個關鍵點往往不能準确地捕捉人臉的細節和特征。例如,眉毛的厚度、眼角的形狀等都不能達到遊戲捏臉的精度需求。

在不計時間和成本的情況下,一般希望标注數據中的關鍵點越多越好。但實際的情況是,關鍵點定義得越多,标注時間越長且越困難。在68個關鍵點之外新增加的關鍵點往往并不位于人臉五官的邊界上或沒有明顯的圖像邊界特征,在這樣的情況下增加的關鍵點往往很難标準,或者說,不同的人标注的數據差異很大。這樣的話,标注本身的噪聲就會變大,從而使用這些标注數據進行網絡訓練也比較難達到好的效果。經過内部疊代,最終确定了使用96個關鍵點的方案。因為這樣關鍵點數據足夠多,且可以保證标注準确度。96個關鍵點的示例參照圖1.2。

定義好關鍵點後,應該思考如何标注。标注工具基于現有的CNN的人臉關鍵點檢測預訓練模型,首先給出初始的68個關鍵點的預測,用戶對68個關鍵點進行交互式調整。然後用戶可以自行添加剩下的新定義的關鍵點。在整個标注過程中,為了讓用戶更好地評估自己标注的關鍵點的質量,關鍵點的拟合曲線疊加顯示在标注圖像上作為可選項提供給用戶進行參考。如果曲線和人的面部五官輪廓貼合,則标注較好;如果曲線和面部五官輪廓差異大,則标注不夠好。通過這種标注方式,标注人員可以快速進行半自動的人臉關鍵點标注,用戶可以用拟合曲線疊加顯示的方法對自己的标注進行評估,并進行修改。這樣可以保證關鍵點标注的快速性和準确性。

選擇好标注方式後,需要進行數據的收集和整理。數據收集和整理完畢後,可以使用标注工具進行标注。數據标注完畢後,可以開始進行模型訓練。為了評估訓練好的模型,需要對預測和手工标注的關鍵點進行比較和模型準确度量化分析。具體量化分析方法:計算模型預測關鍵點的平面坐标和手工标注關鍵點的坐标的歐式距離,用來作為度量,距離越近,誤差越小,表明預測關鍵點與手工标注關鍵點越接近。圖1.6所示為111張測試照片數據的量化分析結果。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)6

圖1.6 111張測試照片數據的量化分析結果

《騰訊遊戲開發精粹Ⅱ》電子版已上線UWA學堂 | Unity和Unreal遊戲引擎的從業者學習交流平台,感興趣的讀者可以前往閱讀。


1.2.3 人臉關鍵點風格化調整

檢測了人臉關鍵點後,檢測結果無法被直接使用。因為真實人臉的視角可能未必正對攝像頭,并且存在左右不對稱、關鍵點檢測誤差等問題。因此,程序需要對檢測結果進行一定的預處理。預處理的過程可以分為3步:關鍵點歸一化、關鍵點對稱化、關鍵點平滑化,如圖1.7所示。下面将對其一一具體說明。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)7

圖1.7 關鍵點預處理流程

1.2.3.1 關鍵點歸一化

從圖1.1可以看到,系統需要根據真實人臉的關鍵點預測來調整遊戲中的标準人臉模型,這個過程需要确保兩者的關鍵點在尺度、位置、方向等方面統一。因此,程序需要将預測的關鍵點與标準模型的關鍵點進行歸一化,具體包含以下幾個部分:尺度歸一化、位置歸一化、角度歸一化。

定義原始的檢測的所有3D人臉關鍵點為P,其中第i個關鍵點為pi={xiyizi}。歸一化原點可以被定義為1号和17号關鍵點的中點(請參考圖1.2的關鍵點定義),即c=(p1 p17)/2。對于尺度,定義1号和17号關鍵點距原點的距離均為1。所以可以得到尺度歸一化與位置歸一化後的3D關鍵點為P′=(P-c)/‖p1-c‖2。

尺度歸一化與位置歸一化後,人臉需要被進一步轉正。如圖1.8所示,實際照片中的人臉未必正對鏡頭,往往會有一定的偏轉,這種偏轉在3個坐标軸上都可能存在。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)8

圖1.8 人臉旋轉坐标軸定義

依次将預測的人臉3D關鍵點沿xyz坐标軸進行旋轉,使得人臉的方向正對攝像頭。當沿x軸旋轉時,将18号與24号關鍵點的z坐标對齊(請參考圖1.2的關鍵點定義),即讓鼻梁上端與鼻子下端處于同一深度,得到旋轉矩陣Rx;當沿y軸旋轉時,将1号與17号關鍵點的z坐标對齊,得到旋轉矩陣Ry;當沿z軸旋轉時,将1号與17号關鍵點的y坐标對齊,得到旋轉矩陣Rz。這樣就可以将關鍵點方向對齊,并得到歸一化的關鍵點。

Pnorm=Rz×Ry×Rx×P

1.2.3.2 關鍵點對稱化

從圖1.7可以看到,歸一化的關鍵點的尺度、位置、方向都已經調整統一。然而得到的關鍵點往往并不構成一個比較完美的人臉,如鼻梁不位于中心的一條直線上,五官左右不對稱。這是因為真實人臉在照片中由于表情或本身的特征并不會完美對稱,并且在關鍵點預測時會引入額外的誤差。雖然真實人臉未必對稱,但是遊戲中的人臉模型不對稱會導緻不美觀,将大大降低用戶體驗,因此關鍵點對稱化是一個必要的過程。

因為關鍵點已經進行過歸一化,所以一個簡單的對稱化方法就是将所有左右對稱的關鍵點的yz坐标取平均,替代原有的yz坐标。這種方法在多數情況下效果良好,然而當人臉在y軸方向上旋轉角度較大時會對效果造成一定影響。

以圖1.7中的人臉為例,當人臉向左側偏轉角度較大時,部分眉毛的區域将不可見,同時透視會造成左眼整體小于右眼。雖然預測的3D關鍵點可以部分彌補透視造成的影響,但是仍需要保持3D關鍵點的2D投影與照片上的關鍵點對應。因此,過大的角度偏轉會導緻得到的3D關鍵點檢測結果出現明顯的雙眼、雙眉尺寸不同的情況。

為了處理這種由角度造成的問題,當人臉沿y軸偏轉角度較大時,自動捏臉系統使用靠近鏡頭一側的眼睛與眉毛作為主眼、主眉,并将其鏡像複制到另一側以減小角度偏轉造成的誤差。

1.2.3.3 關鍵點平滑化

由于預測誤差不可避免,因此在個别情況下,進行對稱化的關鍵點仍然有可能不符合真實人臉,如臉部出現不自然的凹陷、眉毛出現鋸齒狀等。由于人與人之間的臉型及五官的形狀差别較大,所以使用預定義的參數化曲線很難達到相對準确的描述。因此,在平滑化時,程序僅對部分區域進行平滑:人臉輪廓、眼睛、眉毛、下嘴唇。經觀察,這些區域在真實人臉上基本都保持了曲線的單調平滑特征,即不存在鋸齒狀的情況。在這種情況下,目标曲線應該始終為凸曲線或凹曲線。

歸一化模塊對要檢測的邊界逐個檢查關鍵點是否滿足凸曲線(或凹曲線)的定義。如圖1.9所示,不失一般性,假設目标曲線應為凸曲線,那麼對于每個關鍵點(實線圓點),需要檢查其位置是否在相鄰的左右關鍵點連線的上方。如果滿足條件,則當前關鍵點符合凸曲線要求;否則,将當前關鍵點向上移動到左右關鍵點的連線之上。在圖1.9中,左起第3個實線關鍵點不滿足凸曲線的要求,程序會将其移動到上方虛線關鍵點的位置。需要注意的是,如果多個關鍵點發生移動,那麼由于檢查曲線凹凸的關鍵點為原始關鍵點,移動後不一定保證曲線為凸曲線或凹曲線。因此,歸一化模塊采用多輪平滑的方式,以得到相對平滑的關鍵點曲線。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)9

圖1.9 關鍵點平滑化示例

經過如上步驟預處理的關鍵點可以相對較好地表示真實人臉的特征,如五官位置、比例、臉型等。下一步需要将這些關鍵點風格調整為遊戲人臉風格。

1.2.3.4 關鍵點風格化

不同遊戲有不同的人臉風格,自動捏臉系統需要将真實人臉的關鍵點風格轉化成遊戲所需的風格才能生成遊戲中的人臉。真實系的遊戲人臉大同小異,但是卡通系的人臉千差萬别。因此,關鍵點風格化很難有統一的标準。

本章介紹的捏臉流程實現了較為通用的、多數遊戲可能需要的人臉調整方案。例如,臉長短調整、寬窄調整、五官比例縮放等。根據不同的遊戲的美術風格,調整程度、縮放比例等都可以進行自定義的修正。


1.2.4 基于關鍵點的網格變形

獲得了帶有人臉特征且符合遊戲風格的目标關鍵點後,自動捏臉系統需要對遊戲裡的标準人臉模型進行變形,使得标準模型上的關鍵點能調整到目标位置,并且在調整過程中保持模型的平滑。

為了擁有更強的普适性,本章的捏臉方案在設計之初,就希望能夠應用在不同風格不同種類的頭模上。在遊戲制作中,美工通過3DMax或Maya等3D建模工具制作出的頭模盡管有多種保存格式,但是内在的模型表征方式都是多邊形網格(Polygon Mesh)。遊戲角色的捏臉效果可以通過改變網格結構的組合、頂點位置及貼圖等多種方式實現。對網格頂點位置的變形在學術界通常劃歸于蒙皮(Skinning)研究的範疇。根據應用方式的不同,變形方式可以分為骨骼驅動、關鍵點驅動等。遊戲業内常用的變形方式為骨骼驅動,所以業内蒙皮通常特指骨骼驅動蒙皮。如何通過預測的關鍵點回歸到骨骼驅動的參數将在1.2.5節中介紹。本節将重點介紹如何在沒有骨骼的情況下,利用關鍵點的位置信息的變化對頭模進行自動優化變形。

1.2.4.1 基礎模型處理和标記3D關鍵點

要生成3D捏臉的結果,首先需要制作一個3D的基礎頭模。基礎頭模往往是由臉、眼睛、睫毛、牙齒、頭發等多個部分組合而成的,如圖1.10所示。在沒有骨骼的情況下,臉部變形依賴的是基礎網格的連接結構,因此必須對複合的基礎頭模進行拆分。其中,變形的主體是臉部依托的連通模型,其他的附件則依賴臉部模型的變形結果進行調整。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)10

圖1.10 基礎頭模組合示例

前文提到過,照片上的人臉關鍵點可以通過自動檢測的方式獲得。但是要驅動3D網格變形,照片上的關鍵點就需要正确地映射到基礎的臉部3D模型上。由于網格連接的不确定性和3D模型數據的稀缺性,目前業界并不存在自動标注任意3D頭模關鍵點的方法,本章介紹的捏臉流程包括了一套可便捷使用的交互工具(此處不展開介紹),可以快速在3D模型上人工标注關鍵點。在自動捏臉時,這些人工标注的關鍵點位置将移動到風格化之後的關鍵點位置。

在标注時,3D關鍵點的位置應該盡量與前文提到的照片關鍵點位置對應,如圖1.11所示。當然,人工标注不可避免地會引入誤差。為了消除标注誤差帶來的失真,在風格化時,可以通過規則調整來彌補。在對真實度要求較高的項目中,由于基礎模型制作得比較逼真,可以把基礎模型的渲染圖作為“照片”進行檢測,并将檢測到的3D關鍵點與人工标注的3D關鍵點進行量化比較,統計出誤差。在檢測真實照片時,從檢測到的關鍵點中将該統計值剔除,就可以大緻消除人工标注誤差帶來的不良影響。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)11

圖1.11 标記3D關鍵點示例

1.2.4.2 網格自動變形

與網格自動變形(Automatic Skinning)相關的研究有很多。在SIGGRAPH Asia 2014的課程分享中有專門的章節[6]對網格自動變形進行了比較全面的介紹。

解決網格自動變形的主要思路是把這種關鍵點驅動的形變問題轉化為二次項函數優化問題,即求解一個線性偏微分方程組。二次項函數數學模型的建立有很多種方式,本節主要介紹兩種:第一種稱為雙調和變形(Biharmonic Deformation),将網格形變轉化為一個雙調和函數的求解問題;第二種稱為仿射變形,是另一種形式的線性偏微分求解。

1. 雙調和變形

從Alec Jacobson等的論文[7]和開源代碼實現[8]來看,雙調和變形的數學表示可以記為:

Δ2x′=0

受限于關鍵點約束,即通常意義上的邊界條件可以表示為:

x′b=xbc

式中,Δ是拉普拉斯算子;x′是變形後未知的網格頂點坐标;x′b是網格頂點坐标中的關鍵點;xbc是預測的關鍵點形變後的位置。這裡讓每個維度上雙拉普拉斯方程的右值為0。雙調和函數是雙拉普拉斯方程的解,也是拉普拉斯能量的最小值。

能量最小化的過程本質上是網格的平滑過程。如果直接在初始網格上進行能量最小化,那麼網格模型上原有的細節特征都會被平滑掉。另外,在關鍵點的位置沒有改變的情況下,即使應用了形變方法,預期得到的結果也應該跟初始的網格模型完全一緻。出于以上考慮,雙調和變形選擇将頂點位置的位移而不是位置本身作為變量。這樣一來,變形後的位置就可以寫為:

x′=x d

自然地,雙調和變形的優化等式變為:

Δ2 d=0

受限于

db=xbc-xb

式中,db是關鍵點變形前後的位移;d是網格所有未知頂點在每個維度上的變化。如圖1.12所示,藍色區域為邊界區域,是形變的驅動部分,對應前文提到的關鍵點。圖1.12左側3張圖片是将關鍵點位置作為優化對象的結果,圖1.12右側3張圖片是對應的優化邊界條件位移的結果。可以看到,右側結果中雙調和變形平滑的是每個頂點的變化,既保證了形變後的網格模型變化過渡自然,又保留了原有模型的細節特征。

除可以使用雙調和函數外,還可以使用調和函數和多調和函數優化求解。在實際應用中,實驗發現以上文定義的關鍵點位置為邊界條件,使用調和函數會導緻變形結果不夠光滑。而多調和函數的變形結果與雙調和函數差别不大,卻對被變形網格的連續性提出了更高的要求,很多時候對遊戲美術制作的頭模提出了更高要求。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)12

圖1.12 雙調和變形示例

2. 仿射變形

受到Robert Sumner等[9]提出的變形遷移方法啟發,仿射變形是另一種以關鍵點驅動優化求解線性方程組的數學建模方法。仿射變形把從基礎網格到預測網格的變形看作每個三角面片的仿射變形的集合。一個三角面片的仿射變形可以定義為一個3×3的矩陣T和一個位移矢量d。因此,可以把頂點位置的改變記為:

vi′=Tvi d,i∈1…4

式中,v1、v2、v3分别表示三角面片的三個頂點坐标;v4是我們在每個三角面片法向方向引入的一個額外點,數學表示為:

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)13

v4的計算中,仿射變形收縮了叉乘的結果,使其與三角面片原本邊的長度保持同比例。之所以引入v4,是因為每個三角面片的3個頂點在形變前後的坐标不足以唯一确定一個仿射變換。而引入了v4之後,可以用v′2,v′3,v′4分别減去v′1,經過矩陣變換後可以得到如下關系,從而唯一确定該仿射變換的非位移部分的矩陣T了。

T=[v′2-v′1v′3-v′1v′4-v′1][v2-v1v3-v1v4-v1]-1

由于矩陣V=[v2-v1v3-v1v4-v1]-1完全可以由基礎網格推導出來,并且不受變形影響,所以可以如下将其預計算出來,并存儲為合适的系數矩陣,方便在建立整體變形的線性系統時導入使用。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)14

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)15

目前為止,仿射變形将每個三角面片的仿射變換的非位移部分矩陣T用數學公式和代碼表示了出來。為了建立優化求解的線性矩陣,假設網格頂點數為N,三角面片數目為F,仿射變形考慮以下4種約束。

  • 關鍵點位置約束

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)16

c′i表示預測到的變形後的關鍵點位置。

  • 相鄰面平滑度約束

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)17

代表相鄰三角面片的仿射變換應該盡量接近。基礎網格的三角面片相鄰關系可以提前檢索并存儲,以避免之後重複計算,并提高最終線性矩陣創建速度。

  • 特征相似度約束

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)18

I表示單位矩陣,能量約束的含義是仿射變換幅度應該盡可能小,這樣有利于保持基礎網格的細節特征。

  • 初始位置約束

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)19

ci表示變形前基礎網格上每個頂點的位置。最終的約束能量是以上4種約束能量的加權相加:

minE=wkEk wsEs wiEi wlEl

式中,權重系數wkwswiwl按照約束強弱依次遞減。根據以上約束,可以構建一個大小為(F N)×(F N)的線性矩陣。未知變量除每個頂點變形後的位置外,還有每個三角面片額外引入的虛拟點v′4。而得到變形結果需要的隻有前者,後者将被扔掉。當連續變形時,除關鍵點約束條件改變外,其他的約束矩陣都可以複用。所以在幾千到上萬個頂點的網格上,可以達到實時的變形結果。

1.2.4.3 網格變形結果

仿射變形可以通過調整四種約束條件的權重達到不同的變形效果,包括逼近拟合雙調和變形的效果。圖1.13所示為變形方法比較示例,藍色點代表關鍵點,紅色代表頂點位置距離初始位置的位移大小。在所有變形結果中,一個關鍵點位置不變,另一個關鍵點移動到相同位置。這展示了在逐步調大Es相對于Ei的權重時,變形結果的平滑程度逐漸增加。另外,可以看到圖1.13中最右邊的雙調和變形結果介于仿射變形平滑度位于10~100之間的結果。這說明仿射變形相比于雙調和變形擁有更大的自由度。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)20

圖1.13 變形方法比較示例

但是雙調和變形相比于仿射變形有更快的計算速度。對于幾千個頂點的網格,雙調和變形比仿射變形快1/3以上。随着頂點數目增多,雙調和變形在計算速度上的優勢進一步增大。一般情況下,雙調和變形的效果已經可以滿足頭模的變形要求,所以自動捏臉流程默認使用雙調和變形。

雙調和變形和仿射變形兩種自動變形方法都要求變形的網格對象是流形(Manifold)。一般來說,連通且沒有重複點、邊、面的網格都滿足要求。本章最後提到的自動捏臉工具包提供了工具來檢測變形網格是否滿足要求。

在對頭模變形時,網格模型需要改變的部分往往隻有臉部區域。頭頂、後腦勺和脖子都是不應該變動的部分,否則有可能與頭發或軀幹網格出現穿模或空洞等問題。本章的自動捏臉流程采用Blend Shape的方式,把由關鍵點驅動變形得到的頭模結果跟基礎頭模進行線性融合。融合的權重計算可以複用雙調和優化的方法計算出來。在求解時,需要把關鍵點所在點設為權重為1的邊界條件。

另外,在頭模上,标記一圈固定點,如圖1.14中藍色點所示,并把這些固定點設為權重為0的邊界條件。程序可以另外加入不等式約束,令每個未知量介于0~1之間,但這樣會增加求解複雜度。經過實驗,求解不添加不等式約束的雙調和函數,最後将結果中小于0的值設為0,大于1的值設為1,也可以得到較好的結果。在Blend Weights渲染圖中,顔色最深的地方權重為1,無色的地方權重為0,關鍵點跟固定點之間的區域有一個自然過渡。應用了線性融合後,變形結果保持了頭模後半部分的頂點位置不改變。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)21

圖1.14 融合變形示例

到此為止,本章已經介紹了關鍵點預測、風格化調整和網格變形。圖1.15所示為串聯了上述介紹的流程并應用了雙調和變形,在一個真實系的基礎頭模上,對一些随機照片的預測變形結果。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)22

圖1.15 預測變形結果A

《騰訊遊戲開發精粹Ⅱ》電子版已上線UWA學堂 | Unity和Unreal遊戲引擎的從業者學習交流平台,感興趣的讀者可以前往閱讀。


1.2.5 骨骼參數估計

有了風格化的人臉關鍵點,可以使用網格變形方法得到目标遊戲人臉的網格。然而,很多遊戲中的人臉網格變形并不直接調整網格本身,而通過定義的骨骼或滑條來進行調整。所以,對于此類遊戲,需要進一步根據風格化的關鍵點來預測骨骼或滑條參數。對于生成的任一組風格化關鍵點,遊戲需要自動找到一組合适的參數,使得由此參數得到的遊戲人臉的關鍵點位于自動檢測并風格化之後的相應位置。

由于遊戲中的骨骼或滑條的定義各不相同,且存在随時修改的可能性,因此直接定義從關鍵點到骨骼參數的簡單參數化函數并不可行。因此,本節将介紹一種機器學習的方法,通過一個神經網絡來實現從關鍵點到參數的轉換,該神經網絡稱為K2P網絡(Keypoints to Parameters)。一般情況下,參數與關鍵點的數目都不多(一般小于100),所以此網絡采用K層全連接網絡。

為了使用機器學習的方法,需要生成大量訓練數據(參數、關鍵點)。生成訓練數據可以首先對骨骼或滑條參數進行随機采樣,然後通過腳本調用遊戲客戶端,提取生成的遊戲人臉中的關鍵點。由于訓練模型的效果需要匹配遊戲客戶端,所以如果遊戲的客戶端更新了骨骼驅動的美術效果,那麼訓練數據需要重新生成。

有了訓練數據後,一個直接的訓練方式就是根據這些訓練數據反向生成K2P網絡,即從關鍵點到參數,以參數估計的Mean Square Error(MSE)作為損失函數進行訓練。這種方法雖然直觀,但是存在兩個問題。

一方面,不同參數對最終遊戲人臉的視覺效果的影響程度可能有很大不同。有些參數微調可能對人臉産生明顯影響,有些參數即使發生較大調整可能對整體人臉的視覺效果也影響甚微。這樣就造成平均的MSE Loss的訓練效果不能達到滿意的結果。用戶需要根據具體的參數手工定義相應的權重,但是由于每個模型的骨骼或滑條的定義各不相同,因此合适的權重定義非常困難。

另一方面,如圖1.16所示,之前獲得的訓練數據都是根據遊戲的骨骼或滑條參數生成的關鍵點,這些關鍵點并不能涵蓋整個關鍵點采樣空間,而僅僅涵蓋關鍵點全空間(圖1.16右側黃色最大橢圓區域)的一個子集(圖1.16中間藍色小橢圓區域)。由此所生成的風格化關鍵點,部分關鍵點可能在參數可生成的關鍵點空間内,而更多的關鍵點可能并不在其中。也就是說,自動捏臉系統期望生成的風格化關鍵點中的一部分樣例在理論上不可能根據遊戲端定義的骨骼或滑條參數得到。

例如,風格化關鍵點可能含有偏方形人臉,而遊戲中限定人臉一定為橢圓形或倒三角形,那麼這時無論如何改變骨骼或滑條參數都無法得到目标的風格化人臉。所以前面提到的直接訓練K2P網絡的方法實際上學習的目标是圖1.16中間藍色小橢圓關鍵點子空間到參數空間的映射,而自動捏臉系統期望學習的目标是圖1.16右側綠色小橢圓關鍵點空間到參數空間的映射。這就造成了訓練數據與測試數據的Domain Gap,在訓練時雖然可以達到很好的收斂,但是在實際的測試數據上會造成較大的關鍵點誤差。對于圖1.16右側的風格化關鍵點空間,雖然可能并不存在能準确表示其中關鍵點的參數組合,但是,自動捏臉系統尋找到的參數生成的人臉應該盡可能接近目标關鍵點的坐标。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)23

圖1.16 參數空間與關鍵點空間示例

為了解決以上問題,本節介紹了一種自監督的機器學習方法,即關鍵點到控制參數訓練,其過程如圖1.17所示,分為兩步:

第一步,訓練一個P2K網絡(Parameters to Keypoints)來模拟遊戲參數到關鍵點生成的過程。

第二步,采用大量未标注的真實人臉照片,通過這些照片生成大量的風格化關鍵點,這些未标注的風格化關鍵點就是自監督學習的訓練數據。對于一組關鍵點K,将其輸入想要學習的K2P網絡中,得到輸出的參數P。由于這些關鍵點所對應的理想參數的Ground Truth無法獲得,骨骼參數估計模塊将P進一步輸入第一步訓練好的P2K網絡中,得到關鍵點K′。通過計算KK′的MSE Loss,模型可以對K2P網絡進行學習。

需要注意的是,在第二步的過程中,P2K網絡是固定不變的,并不會因為神經網絡的學習而繼續調整。通過P2K網絡的輔助,模型将遊戲客戶端的控制參數到關鍵點這一過程使用神經網絡模拟出來,這樣就給第二步的K2P網絡的學習打下了基礎。通過這種方法,可以确保最終根據參數生成的人臉與預期生成的目标風格化人臉的關鍵點保持接近。同時,如果想對某些部分的關鍵點增加權重(如眼睛的關鍵點),隻需要在計算KK′的MSE Loss時調整相應的權重即可。由于關鍵點的定義是預定義的,并不會受到不同遊戲客戶端的骨骼或滑條定義變化的影響,所以調整權重比較容易。

在實際應用過程中,為了提高模型的準确率,對于可以解耦合的部分,可以采用分開訓練神經網絡的方式。例如,如果某些骨骼參數僅對眼睛區域的關鍵點有影響,并且其他參數都對眼睛區域的關鍵點沒有影響,那麼這些參數及這部分關鍵點就形成了一組獨立的區域。如果對每一組這樣的區域都訓練一個單獨的K2P模型,那麼每個模型可以采用更加輕量級的網絡設計。這樣不僅可以進一步提高模型的準确率,還可以降低計算複雜度。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)24

圖1.17 關鍵點到控制參數訓練過程

《騰訊遊戲開發精粹Ⅱ》電子版已上線UWA學堂 | Unity和Unreal遊戲引擎的從業者學習交流平台,感興趣的讀者可以前往閱讀。


1.2.6 圖像特征提取

為了美觀,遊戲中的人臉往往使用預定義的貼圖,而不會使用真實的人臉的貼圖。但是為了在保持美觀的同時使得遊戲中形象的貼圖更加符合用戶特征,很多遊戲會根據用戶照片中的圖像特征對标準貼圖進行調整。例如,如果用戶膚色比多數人的平均膚色偏深,則遊戲中人物的膚色會進行相應加深。

圖像特征的提取一般有兩種思路:基于圖像處理的方式與基于監督學習的方式。前者的好處是不需要任何訓練數據,可以直接分析圖像中的信息,如邊界、顔色、紋理等,來獲取希望提取的特征,算法較為輕量;後者則需要大量的人工标注,在運行時需要載入預訓練的模型,算法相對複雜,帶來的好處是獲取到的圖像特征更為準确,對于較為複雜的問題可以處理得更好。因此,兩種方式适用于不同的場景。對于準确度要求不高的特征,則基于圖像處理的方式更為合适;而對于預測難度較大準确度要求較高的特征,則基于監督學習的方式更為合适。

對于遊戲中的貼圖調整,往往對标準的貼圖進行統一修正,所以僅僅需要真實照片中的平均的顔色即可,如膚色、眉色等,這個特點決定了圖像特征提取模塊不需要獲得非常精确的各部分顔色,隻需要大體與圖像顔色接近即可。因此,對于顔色提取,本節介紹的方法均采用了輕量級的基于圖像處理的方式。而對于遊戲中的發型修改,則需要将真實照片中的發型進行分類,劃分到遊戲中設定好的發型庫。發型分類和眼鏡檢測是相對較為困難的問題,因此,1.2.7節将介紹一種基于監督學習的方式進行判斷。

需要注意的是,本節提到的圖像特征提取方法都假定人臉檢測及關鍵點檢測已完成,提取特征的圖片為歸一化大小後的人臉區域的圖片(如256像素×256像素)。本節将依次介紹不同的圖像特征提取方法。

1.2.6.1 平均膚色提取

為了提取圖像中的特征,首先需要将圖像中的人臉區域進行旋轉,使得人臉左右兩側的1号與17号關鍵點對齊,然後需要确定膚色像素檢測區域,如圖1.18所示。檢測區域選取眼部的最下方關鍵點為上邊界,鼻子的最下方關鍵點為下邊界;左右邊界則選取上下邊界的y坐标所對應的臉部關鍵點的邊界。如此,得到膚色關鍵點區域如圖1.18右側長方形區域所示。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)25

圖1.18 膚色提取示例

圖1.18右側長方形區域中并非所有的像素都是膚色像素,可能還包含部分的睫毛、鼻孔、法令紋、頭發等。因此,此區域内所有像素R、G、B值的中位數被選取作為最終預測的平均膚色。

1.2.6.2 平均眉色提取

對于眉色提取,首先選取主眉毛,即更靠近鏡頭的一側眉毛作為目标。如果兩側眉毛均為主眉毛,則兩側的眉毛像素均被提取。假設左側眉毛為主眉毛,那麼如圖1.19所示,77号、78号、81号、82号關鍵點組成的綠色四邊形區域将作為眉毛像素搜索區域。這是由于靠近外側的眉毛部分過細,小範圍的關鍵點誤差造成的影響會被放大;而靠近内側的眉毛往往比較稀疏,與膚色的部分混合嚴重。因此,程序選取了中段的眉毛區域收集像素,并且每個像素都要先與平均膚色進行比較,隻有區别大于一定值的像素才會被收集。最後,與膚色類似,收集像素R、G、B值的中位數作為最終的平均眉色。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)26

圖1.19 眉色提取示例

1.2.6.3 平均瞳色提取

與眉色提取類似,在提取瞳色時,首先選取靠近鏡頭的主眼睛。如果兩個眼睛均為主眼睛,則兩個眼睛的像素一起收集。眼睛的關鍵點所包含的封閉區域的内部除瞳孔本身外,可能還包含睫毛、眼白、反光。這些應該在像素收集的過程中盡可能去除,以保證最終得到的多數像素來自瞳孔。

為了去除睫毛像素,需要将眼睛的關鍵點沿y軸方向向内收縮一段距離,形成如圖1.20所示的綠色折線所包含區域。為了去除眼白和反光(見圖1.20中紅色橢圓框區域),需要對此區域内的像素進行進一步排除。如果某個像素的亮度大于一個預定義的阈值,則将其排除。如此,收集到的像素可以保證多數來自瞳孔。同樣地,采用中位數顔色作為平均瞳色。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)27

圖1.20 瞳色提取示例

1.2.6.4 平均唇色提取

對于唇色的提取,程序僅檢測下嘴唇區域的像素。如圖1.21所示,上嘴唇往往比較薄,對于關鍵點誤差相對敏感,而且上嘴唇顔色較淺,無法很好地代表唇色。因此,對照片進行旋轉修正後,收集所有下嘴唇關鍵點所包圍的區域内的像素,并采用中位數顔色作為平均唇色。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)28

圖1.21 唇色提取示例

1.2.6.5 平均發色提取

發色提取相對前面幾個部分而言較為困難。由于每個人的發型各不相同,照片的背景也複雜多樣,如圖1.22所示,所以很難定位頭發的像素。如果希望準确地找到頭發像素,則可以使用神經網絡進行圖像的頭發像素分割。由于圖像分割的标注代價很大,并且對于遊戲應用而言不需要非常高準确度的顔色提取,因此,本節介紹一個基于關鍵點的大緻預測的方法。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)29

圖1.22 不同發型與背景示例

為了獲取頭發像素,需要确定一個矩形檢測區域。下邊界為兩側眉腳;矩形高度為眉毛上沿到眼睛下沿的距離;左右邊界為1号、17号關鍵點分别向左、向右擴充固定距離後得到。頭發像素檢測區域如圖1.23中綠色矩形區域所示。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)30

圖1.23 頭發像素檢測區域

檢測區域中一般包含皮膚、頭發、背景三種類型的像素,有些更複雜的情況還會包含頭飾等。因為上述檢測區域左右範圍相對擴充得較為保守,一般情況下可以假定包含進來的頭發像素遠多于背景像素。因此,程序僅将檢測區域的像素劃分為頭發像素或皮膚像素。

一個簡單的方法是根據平均膚色選取一個阈值進行皮膚像素的檢測,即膚色阈值法。但是由于皮膚的顔色并不一緻,靠近邊緣的皮膚往往顔色較暗,所以很難選取一個合适的阈值,既排除足夠多的皮膚像素,又保留足夠多的頭發像素,如圖1.24左側所示。第二種方法是簡單的膚色、發色兩類K-Means,将檢測區域内的像素進行二分類。此方法對于深色頭發的情況效果良好,但是對于淺色頭發(如金色)則很容易與皮膚混淆。如圖1.24中間所示,可以看到很多的頭發像素由于顔色較淺,被錯誤劃分為皮膚像素。因此,這裡介紹第三種相對較為簡單且穩定的連通區域法。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)31

圖1.24 不同的發色像素提取方法

對于每行在檢測區域内的像素,可以觀察到膚色的變化往往是連續的,如由亮到暗,而在皮膚與頭發的交界處,膚色往往有明顯的變化。因此,我們選取每行中間像素作為起始點,向左右兩側檢測皮膚像素。首先使用一個相對保守的阈值找到比較可靠的皮膚像素,然後對其進行左右擴展。如果鄰域像素的顔色比較接近,則也标記為皮膚像素。此方法将膚色的漸變考慮進來,可以得到相對準确的結果。如圖1.24右側所示,中間區域為皮膚像素,兩側區域多數為頭發像素(綠色部分)。

1.2.6.6 平均眼影顔色提取

眼影顔色的提取與前面的部分有些不同。這是由于眼影是一個可能存在也可能不存在的部分。所以在提取眼影顔色的時候,需要首先确定眼影是否存在,如果存在,則提取其平均顔色。與眉毛和眼睛顔色提取類似,僅對靠近鏡頭的一側的主眼睛、主眉毛所在的部分進行眼影顔色提取。

首先,确定哪些像素屬于眼影。對于像素的檢測區域,采用如圖1.25所示的豎線區域,區域的左右邊界分别為眼睛的内外眼角,區域的上下邊界分别為眉毛的下沿和眼睛的上沿。這個區域内除可能存在眼影像素外,還可能存在睫毛、眉毛、皮膚等像素,這些像素需要在提取眼影時進行排除。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)32

圖1.25 眼影顔色提取示例

為了排除眉毛的影響,需要将檢測區域的上沿進一步下移。為了減少睫毛的影響,需要将亮度低于一定阈值的像素排除。為了與膚色進行區分,程序将檢查每個像素的色相(Hue)與平均膚色的差别,隻有差别大于一定阈值,才将其作為可能的眼影像素進行收集。這裡之所以使用色相而非RGB值,是因為平均膚色的采集主要在眼睛下方,而眼睛上方的皮膚顔色可能在亮度上會有較大變化,但是色相對于亮度的變化并不敏感,所以比較穩定,更适于判斷是否是皮膚。

通過以上過程,程序可以判斷每個檢測區域内的像素是否屬于眼影像素。眼影像素預測示例如圖1.26所示,其中判斷為眼影的像素被标記。可以看到,對于沒有眼影的情況,仍然存在部分像素被識别為眼影,這種誤差不可避免。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)33

圖1.26 眼影像素預測示例

因此,程序對檢測區域每列進行判斷,如果當前列的眼影像素數量大于一定阈值,則标記當前列為眼影列。如果檢測區域内眼影列的數量與檢測區域寬度的比例大于一定阈值,則認為當前圖像中存在眼影,并将收集到的眼影的顔色中位數作為最終顔色的判斷。這種方式可以将圖1.26中左下的樣例判斷為無眼影。

1.2.6.7 顔色提取實驗結果

人臉顔色特征提取結果如圖1.27所示。可以看到多數的顔色提取相對較為準确,可以提供遊戲人臉個性化的貼圖調整。雖然瞳孔區域在圖像中很小,但是依然可以提取到相對準确的顔色。但是檢測結果中仍存在一些錯誤。例如,對于第一列和第二列,眉毛的位置與長劉海兒混淆,造成眉色提取成劉海兒部分頭發的顔色;第四列的人臉帶有頭飾,導緻發色提取成頭飾的顔色;最後一列的照片由于光照,左右兩側頭發顔色區别較大,因此最終提取的為未被光照影響的頭發部分的顔色。

新出的捏臉遊戲在哪(騰訊遊戲開發精粹II)34

圖1.27 人臉顔色特征提取結果

《騰訊遊戲開發精粹Ⅱ》電子版已上線UWA學堂 | Unity和Unreal遊戲引擎的從業者學習交流平台,更多精彩内容可以前往閱讀。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
香腸派對為什麼少了一個競技模式
香腸派對為什麼少了一個競技模式
香腸派對為什麼少了一個競技模式?8月31日,心動公司發布2022年中期業績數據顯示,上半年心動公司實現營收15.94億元,同比增加15.6%,主要來自遊戲、信息服務兩大業務闆塊其中,遊戲業務收入11.26億元,占整體收入比例達70.7%,同...
2024-07-09
英雄聯盟手遊石頭人怎麼出裝
英雄聯盟手遊石頭人怎麼出裝
大家好,我是玩手遊的張同學。石頭人屬于大家常用的英雄之一,出裝有兩個主要流派,分别是輸出和肉裝兩種。因為小編玩的輔助位居多,所以今天小編給大家帶來的肉的新版出裝。下面是小編自己搭配的裝備,這個出裝的核心裝備有兩個分别是:面具和冰拳面具面具的...
2024-07-09
權力的遊戲美劇在線
權力的遊戲美劇在線
這是一個時間設定在類似于英國君主專政時期的故事。總共有這麼幾方力量首先是以君臨城為中心的人類,君主統治着各個城市的城主。各個城主效忠于君王,其次是絕境長城,絕境長城是一堵高達幾百米的冰鑄成的牆用來抵禦北邊的異鬼和野人,異鬼和野人是居住在北方...
2024-07-09
我的世界使用一個指令讓你無敵
我的世界使用一個指令讓你無敵
我的世界使用一個指令讓你無敵?,接下來我們就來聊聊關于我的世界使用一個指令讓你無敵?以下内容大家不妨參考一二希望能幫到您!我的世界使用一個指令讓你無敵在我的世界這款遊戲中很多服務器或遊戲房間裡,很多熊玩家可能都遭遇過,被輔助原地TP這種悲慘...
2024-07-09
王者榮耀體驗服申請時間8月有嗎
王者榮耀體驗服申請時間8月有嗎
王者榮耀體驗服白名單申請第七期已經結束了差不多10天了,相信不少搶号成功的玩家都已經開啟體驗服資格了,沒搶到的玩家自然隻能等下一期了。那麼體驗服白名單申請第八期時間是什麼時候?大概多久開始申請?琵琶網小編給大家分享一下吧。王者榮耀1月新英雄...
2024-07-09
Copyright 2023-2024 - www.tftnews.com All Rights Reserved