標籤:

[譯]西川善司獻給3D遊戲粉絲的「Love Plus」圖形講座, LovePlus角色的渲染技術

前言

很早以前LP剛火的時候朋友幫翻譯的老文,覺得老丟在那還不如發出來,比較死宅粉絲向,拿現在來說其實沒啥特別的技術,不過也有不少啟發性,當了解一下就好 (不過今天科樂美已經成了玩家眼中的大毒瘤了233)。

西川善司獻給3D遊戲粉絲的「Love Plus」圖形講座 超越DS 的3D能力,超過5000多邊形角色的渲染技術

場地:KONAMI總公 司

本連載,是為讓大家聚焦於給予轟動的3D遊戲圖像而設立的。

本連載到現在為止都是在介紹高端的技術,在PS3和Xbox 360等高端平台已進入了普及期/成熟期的今天,能成為熱點討論話題的機會不斷減少。這是由於整體技術水平的提高,雖然很高 興但也感到有點寂寞。

於是,今後將會把重點落在藝術的嶄新表現和獨有的處理技術上,正在這時,出現了一個不能不令人注目的作品。

它就是這次介紹的「Love Plus」。「為什麼是NDS的作品呢?」有人可能會這樣問,把全文 看完,就能夠知道本次連載介紹它的理由。4月5日以閃電般的速度推出了iPhone版,6月24日 還推出了最新作「Love Plus+」。在今天的日本,是非常有人氣的作品。

而且本文還會包含使全國一部分「Love Plus」粉絲們震撼的影像。具體來說,由於KONAMI 的厚意,將會有3個妹子的多邊形數據,線框和骨架數據。在技術情報公開的過程中,還會有間 接的劇透,請多多理解並繼續讀下去。

Love Plus的妹子們】

「Love Plus」里登場的3個妹子。被要求「盡量要按照ミノ☆タロー的人設形象來3D 化」

「Love Plus」的妹子是9合體?

「Love Plus」的類型屬於戀愛模擬遊戲 (KONAMI把它分類到「戀愛交流遊戲」),因以男 性為目標用戶,如何表現出可愛而有魅力的妹子就變得非常重要

KONAMI Digital Entertainment 實況足球 製作人 田之倉稔先生。 負責遊戲引擎的設計開發以及 「Love Plus」的主程序開發了「Love Plus」里將這表現形式賦予到3D圖像上。

雖然有著以藝術家描繪的插圖來表現妹子,以2D動畫來表現角色等傳統表現手法,但「Love Plus」中重視角色與玩家間的互動和交流樂趣,對玩家行動作出的應對和變化假如不豐富的話很 快玩家就會覺得無聊。採用表達豐富的3D圖像一半是必然的選擇。

接下來的問題是,NDS的3D圖像能力。DS的3D處理能力比較坑爹。但,在「Love Plus」里登場的妹子們,算不上「寫實系」,也不是變體的圖標風格,而是實實

在在能動的3D模型。雖然不知道是否符合,也算是有著跟PS2遊戲相當質量的3D建模了。

1個妹子的全身多邊形大概有5000個。在裡面會設置53個骨架,骨架的運動就會產生動畫的 演出。貼圖是角色的外表和衣服,我們設計成在需要顯示3D模型的時候就會把貼圖從ROM里讀 取到顯存中。

【妹子的3D模型】

「Love Plus」的妹子3D模型(上)。一個大概5000個多邊形。設置在「Love Plus」妹子中的骨架(下)。3個 妹子共通。裙子和胸部都有骨架

「MGS3」的線框

「Love Plus」中背景作為2D分開處理,因此背景沒有多邊形數 目。而且,有在同一時間只能表示1個妹子的限制。雖然如此,在 DS的畫面上顯示5000個多邊形構成的3D建模角色也是非常驚人 的。這數字正好是前面說的相當於PS2遊戲角色的多邊形數。以 KONAMI的遊戲舉例的話「潛龍諜影3 噬蛇者」中的蛇叔就是 4400個多邊形。

DS本應沒這樣的3D圖像能力的。因為以DS的GPU規格,根本不 支持這樣的多骨架和大規模3D模型顯示。

田之倉先生「沒錯,以DS的機能是不可能表示這樣的一個3D模型 的。因此為了迴避這個限制採取了血淚般的工夫()。在畫面上雖 然看到的是1個妹子......但實際上是讓DS的系統顯示93D角色」

說出來就是「原來是這樣啊」,這是個「哥倫布的雞蛋」(譯者:日本的諺語,意思是即使 是誰都能想到的事情,但是第一個想出來卻是很難得的)般的構思。換言之就是把1個5000個 多邊形和53個骨架的角色分割表示成複數個3D角色建模。

分割數是9。分為1:頭(頭髮)、2:臉部、3:身體、4:左手掌、5:左手臂、6:右手掌、 7:右手臂、8:左腳、9:右腳。看上去是1個「姉ヶ崎寧々」,實際上表示成是9個姉ヶ崎 寧々部位。

但是看上去就像是1個妹子的3D模型在動。3D角色們的多種動作和表情演出都是動作捕捉 的,當然這是利用「1個人」的動作捕捉的。利用動作數據去控制9個「小」3D角色的時候,坐標系

上的連接關係雖然有點複雜,但這完全不成問題。

松本先生「開發用的DCC工具MAYA中是作為一個整體的3D模型,動作捕捉所得到的動作數據 也是應用在這一個3D模型上。為了使這次的9體分割控制系統能正常運動,我們開發了 exproter(converter),DS上會以相應的個體數據去控制9個部件,因此這方面完全沒問 題」

之所以採用分割數字是固定的9分割規格,而不是動態變化,也是考慮到捕捉到的動作數據能 夠簡單的分配到9個3D模型上。

KONAMI Digital Entertainment 第2遊戲軟體內容製作部 程序員 松 本一也先生。負責3D圖像引擎的設 計開發。同時作為負責藝術和圖形 規格的technical artist工作

上圖為妹子左手掌的「小」3D模型。這左手掌在某方面來說,給人以1個3D角色模型的印象。一個妹子實際上是由9 個迷你3D模型合體後的顯示圖像。下圖是一個衣服紋理例。如圖,這時妹子的衣服貼圖會即時從ROM中讀取到顯存

獨家的4次渲染去打破DS的限制,實現大量多邊形的顯示

渲染像素就是DS畫面像素的256×192。顏色格式也是DS機能的RGB各6bit的26萬色。幀速是每秒15幀(15fps)。 基本上3D遊戲以30fps~60fps為標準,因此15fps這個數字並不多。但以DS的3D能力來看是一個十分不錯的數字了。

田之倉先生「實際上就算5000個多邊形的模型分成9部分,DS也不能1次就把整個畫面渲染出 來。因此,1幀的畫面就分割成4次來處理了。下面舉這樣做的其中一個理由,『Love Plus』 中動作用到的骨架數多、坐標變換的運算量大」

實際在顯示中,經過以下步驟才能完成畫面顯示。 ?第1步:計算以下顯示步驟所需要的動作數據等 ?第2步:計算以下顯示步驟所需要的動作數據等& 大約200個多邊形的渲染 ?第3&4步:計算剩下的動作數據 & 運用全部機能去渲染(大約2000個多邊形)

每1步大約消耗1幀的時間(16.7ms的時間),60fps÷4步=15fps...就是這樣。3D渲染過程本 身雖然進行了兩次,但第一次3D渲染過程生成的幀就已經是半成的幀了(譯者:貌似文中把第 2步叫做第1次,第3步和第4部叫做第2次)。

KONAMI Digital Entertainment 第2遊戲軟體內容製作部 技術管理 鈴木淳先生。負責為開發組提供技 術支持。正為多個項目提供技術面 上的支持

【只顯示第1~2次渲染結果的截圖】

左邊是第1次、右邊是第2次的渲染結果分別顯示的截圖。第一次的 渲染大概有200~300個多邊形、第2次大概是2000個。由於沒對 看不到的多邊形進行渲染,所以只渲染了可視範圍內的2000~ 2300個左右的多邊形

開發初期曾嘗試過使用3步驟渲染的20fps,最後還是用了現在的規格。

鈴木先生「我們開發了在複數幀時間中進行多次渲染去得到1幀的程序,經過多次測試,建立了當 前渲染引擎的開發前景。剛好其他公司也開始使用這項技術,我們也有著去實際應用一下的打 算。」

在昔日初代紅白機時代,有著非常嚴格的sprite限制,於是產生了利用時間交替處理使得sprite 倍化的技術,使得紅白機的畫面表現力得到了巨大的改善,現在的引擎簡直就是當時紅白機技 術的21世紀3D版啊。

DS的GPU不像近代的GPU,能夠同時處理多個渲染對象。DS的GPU反而是更類似於基於2D游 戲機時代的sprite引擎,是把讀取到VRAM(顯存)中的圖像顯示出來的基本構造。

DS GPU的3D引擎部分由幾何引擎和渲染引擎構成,和近代的GPU比較,前者相當於負責頂點 shader,後者相當於負責pixel shader。為了進行3D圖像顯示,會把將要顯示的3D物體的頂 點信息和多邊形列表 (哪個多邊形由哪些頂點構成,以列表方式構成的數據)傳送到幾何引擎的 RAM中。幾何引擎把這些數據進行坐標變換並柵格化處理後,交到後面的渲染引擎,渲染引擎會 將對其進行像素繪畫。

但是,DS的GPU,相當於渲染目標的color bu er只有1幀,就是全屏幕的1/4,只有 256×48。也就是只實裝line bu er的感覺,經過1次的渲染能夠描繪的只有48行,就是 256×48的範圍,在每個規定的分割顯示時間間隔段,會立刻傳送到顯示用的VRAM中。要描繪 的多邊形太多的話,48行的渲染還沒完成,line bu er的數據就傳送到VRAM中,就產生顯示 崩潰的錯誤了。

相對於color bu er只有256×48,depth bu er只有256×2,其中的內容使用後就會被覆 蓋掉,而且在其他軟體上也沒有能作事先參考的方法。因此DS的GPU架構,將1幀分成多次渲染

繪圖是不可能的。

松本先生「對這個我們下了血淚般的努力()DS的深度信息使用後就沒了,也沒有複數渲染 目標。還有由於line bu er的概念,本來是不能重複渲染繪圖的,但能獲取VRAM的內容。因 此「Love Plus」的渲染引擎獲取了半完成的幀,並對其再度渲染」

渲染本身和表示bu er是在不同的VRAM區域進行的,前面說到會進行4步驟的渲染。獲得第 1次半完成幀的繪圖結果,把它當成1幅2D背景圖放進VRAM中,在對其進行第2次的繪圖。

表示1個3D模型時,會剔除背後不可見的多邊形不作渲染,假如採取從視點看去從里側的多 邊形開始渲染的手法,這是行得通的。但是「Love Plus」如前文所述,由5000個多邊形構成

的3D妹子模型,是由9分割的「小」3D模型合體而成的。要描繪複數個的3D模型,假如深度測試 做的不夠好的話,就會有出現前後關係破綻的可能性。

沒有深度測試,為什麼卻能重複繪畫呢。關於這個,我們的應對法是在繪畫前事先將繪畫順

序做好排序處理。

先生本氏「雖說是9體的」3D模型,但各自都是人體的一部分,」3D模型只能在人體運動 範圍內作位置運動。手臂和手掌不會陷進到頭和身體中,只要事先排序好就能處理了」

這就好比Z-sort,在半透明處理的時候,為了不出現前後關係的矛盾,會從3D模型的裡面向 外面按順序繪畫。

在「Love Plus」中,玩家的視點操作是有範圍限制的,構成人體的「小」3D模型會被調整到不 會出現前後關係錯誤,這也是為了不出現重複繪畫破綻所下的工夫之一。

另外看著「Love Plus」中妹子的動作,不會因15fps而產生動作粗糙的感覺。

因為不同於一般的動作遊戲,女性角色不會在屏幕畫面中周圍快速走動,而是手足動作、頭 和身體等姿勢變化為主體,以比較緩和的速度去運動。這不是所有DS遊戲都能用到的技術,但 在「Love Plus」的渲染引擎來說是一個非常高明的手法。

光照處理是toon shading調整後的修改版本

「Love Plus」的妹子,既不是寫實系,也不是單純的賽爾動畫風格,而 是表現出一種獨特的視覺感覺。

由於DS GPU的機能限制,光照的光源只有平行光源,因此只能 對頂點單位的光照結果進行插值,得出的顏色作為像素顏色。因 此在shading方法上相當於Gouraud shading。當然,這也適用 於紋理,但不像近代GPU那樣對應多紋理,DS只能對應1層紋理。

薗部先生「實際上光照引擎活用了硬體上預設的toon shading機 能。是把目錄化的色碼錶作為shading結果參照的簡單toon

shading。但是,不像普通的toon shading只有陰影的明暗二種值,而是設計了有微妙層次的 色碼錶」

並不是一開始就決定了「就用這shading吧」,而是為了接近負責概念設計ミノ☆タロー的原 畫風格去3D化,以此為目標,不斷去試錯和調整的結果,得出了製品的風格。

KONAMI Digital Entertainment 第2遊戲軟體內容製作部 主管,薗部 浩明先生。負責遊戲中登場的3D模 型開發和管理,以及遊戲內事件的 指揮

【toon shading】

光照是有關平行光源的擴散反射。光照單位是由定點單位決定,像 素顏色則是由線性插值決定。光照方法上來說接近於Gouraud shading

貼上紋理後的截圖

附加輪廓線後體現出插畫風格的味道

完成畫面

線框表示

胸部也能搖!「Love Plus」的演技動作モーション 「

Love Plus」中妹子的演技動作總共約有600個。壓縮後也有16MB的容量。這動作數已不是DS遊戲的規模了。動作數據是通 過真人演員動作捕捉而取得的。

事件總數約有4000個,由600個動作和44個表情(後述)去設定 妹子的表演。而且這是以舊時的手法——NOTEPAD(記事本)去記 述,所花費的功夫是超乎想像的。

薗部先生「我們設計組聽著聲優的錄音,揣摩著台詞,腦里想像 著妹子的動作和表情,從600個動作和44個表情中選出最符合印 象的動作和表情。600個動作當中,有的動作我也不知道是為了表達什麼的()。用NOTEPAD 去進行作業是非常艱巨的。但為了在實機上看到角色動作而進行的轉換過程最初只是5分鐘而 已。這項目不用花太多時間在環境整備上也沒什麼能發牢騷的了。但硬是要說的話,轉換到實 機確認的所需時間改善到1分鐘了()

600個動作中,有的直接播放,有的不播放到最後而在中間插入實時線性插值的連接動作,而 切換到其他動作,從而表現出急劇和起伏的感情變化。因為很難和9體分割控制系統統合一塊, 所以在運行時,沒有運用到能將複數個動作複合成另外的一個動作的動作混合。具體來說,就 是 跨越「小」3D模型間的頂點混合是非常難實現的。

KONAMI Digital Entertainment 第2遊戲軟體內容製作部 指揮 石原 明広先生。負責遊戲設計的指揮和 工作進程的管理衣服、頭髮等附屬物的運動一開始是預定在運行時採用物理模擬的,但運算負擔太大了,所以採用了手工動畫。

松本先生「雖然我曾負責設計開發過Wii遊戲『Elebits』的物理模擬引擎,並以此為經驗去嘗 試在DS上應用物理引擎。在初次嘗試中,雖然準備和頭髮多邊形數相同的頂點,製作了頂點緩 存和將其傳到幾何引擎的測試程序,但行不通()

石原先生「我、松本、薗部和鈴木都是『Elebits』小組的()

離題說下, 「Elebits」是作為Wii首發的一個KONAMI發售動作遊戲。是一個用Wii遙控操縱 光槍去捕獲一種叫做Elebits的「惡作劇怪物」遊戲,是加入了我們的物理引擎的動機之作。在游 戲中場景內所有的大道具和小道具能互相碰撞和破壞。現在best版以2940日元發售,有興趣的 人也可以去玩玩看。

基本上身體的骨架就1種類,設計師把它設計成就算放到哪個妹子上也不會出現破綻的動作。 看回在本文開頭的畫面就能知道,控制裙子搖動的骨架和胸部附近的骨架在設定上都是身體骨 架的一部分。再是頭髮大體上有3種髮型,各有獨自的骨架設定。

由動作捕捉的數據去控制身體骨架,進而驅動身體動作,裙子、胸部、頭髮、其它小飾品的骨架則由手工動畫去控制。

石原先生「可能大家會沒注意到,妹子們的胸部是在搖的。實際上是把骨架設置進去手工去調 整它的搖動。我和製作人內田明理不喜歡猥褻的乳搖,所以用了非常優雅的乳搖。沒在意的人 請留意地看()

頭髮、衣服、飾物、胸部等附屬物的運動不是物理模擬的,而是以手工動畫控制,真是非常艱苦的回憶。實時處理的運算量太大,曾經想過將事先進行物理模擬的結果動作應用到附屬物

上的方案,但由於「Love Plus」中妹子的每一個動作時間都不是太長,與其用物理模擬還不如 直接手工處理,這樣的工作效率更高。

在短時間動作後,會立刻恢復為待機動作(通常姿勢),要對每一個動作的恢復動作都做到「剛 好長度的動作」,也是直接用手工動畫處理會更為方便快捷。

忽然的姿勢方向改變,頭髮和衣服由於動作慣性的原因,產生的延遲運動看上去非常自然,這也是手工動畫的功勞。

【動作】

妹子們臉部表情的秘密

制服前的絲帶、高嶺愛花頭上的絲帶都是以手工動畫控制

姉ヶ崎寧々的胸部也設置了骨架,實際上胸部能搖!

小早川凜子經常低頭搞mp3播放器的動作是手工動畫控制的

動作捕捉者的錄影場景 有限會社スターダス?21 奧田優美子

眼球部件。眼球部件除了能生成表情,還能利用於視線移動的製作

雖然「Love Plus」的妹子們臉部不會扭曲、也不會有能使輪廓變形的激變,擔有著富有感情 的表情。聲優卓越演繹力的語音台詞和鮮明的表情融合一起,很好的把妹子的感情變化傳遞給 玩家。

在DS作品中,有很多應用了甚至可以說是過量的豐富表情,這在「Love Plus」中成為了妹子 們的巨大魅力所在。妹子們的表情表現基本上是由紋理動畫來實現的,表情部件由眉、目、 臉、口4種類構成。各部件的組合構成了表情資料庫,在運行時,系統會對應腳本調用出合符當 前感情表現的動畫。

最終完成的表情資料庫中有44種表情。把他們連續運用就能實現多彩的表情變化表現。 眼球動畫是視線處理的一個特例部件。特定的動作中,在動作數據里加入了視線移動的信息,

在播放該動作時必定會連帶視線的移動。

比如說「低頭動作,低頭之後會是眼球往上的視線」,這種視線移動在設定上是歸屬於低頭

動作的動作數據中的。

視線表現的眼睛動畫部件非常多,最初由於不能全部載入到紋理內存中,所以改為隨時從 ROM中讀取到紋理內存里,來實現視線動畫。

在一般的3D遊戲中,有會以向著的視線方向進行坐標變換/旋轉,對眼球進行單獨的渲染,或 者是為了向著視線方向而合成眼球紋理等的處理手法,「Love Plus」中則沒採用這些手法。這 是因為DS GPU的限制,不能合成複數個的層。因此只能事先準備好貼圖部件。

還有在待機動作中眼睛四處張望的動作,是由程序方面實時控制的。這是為了作為動作的一

環,和事先製作好的視線運動組合一起的,跟單純的動畫播放不同,表現出了類似實時視線移

動的舉動。

【眉、臉、口】

上圖是眉和臉的部件。下圖是口部件

【豐富的表情表現】

田之倉先生「和玩家並排走的時候,妹子會把視線對著玩家,這是由程序控制視線運動的。視線會相應玩家操作、妹子和屏幕的位置關係實時控制。假如這裡是固定動作的話就會很容易顯露出規則性了」

以DS遊戲的3D人物表現來說, 表情非常豐富 的「Love Plus」妹子關於髮型的變化,我們準備了幾個假髮模型,在適當場合,跟頭部模型合成一起,就能實現 妹子的髮型改變了。如前面所說,包括頭髮骨架的所有骨架都是全形色通用的,就是說事先准 備的假髮模型能用在3個妹子上。

石原先生「雖然在機能上來說是沒問題的,在世界觀來說,原則上妹子有著其專有髮型。順便說說,雖然衣服的規格也可以做到全妹子一樣,但同樣實際上也是設定成各妹子專用的」

以技術力和創新想法去超越硬體機能的

「Love Plus」 「Love Plus」的ROM容量約為256MB,選擇了在發售當時DS軟 件想定的最大容量。

其中最大容量的就是聲音數據,佔了ROM整體容量的60%以 上。為了收錄妹子們的聲音數據,幾乎佔用了各妹子聲優整整3個 月。遊戲中各妹子能夠叫出玩家的名字,那並不是使用語音合 成,而是真正的錄音。每個聲優大約讀了1400個名字,非常的驚 人。在ROM中收錄的語音總收錄時間大概是21小時。平均每個妹 子收錄了約7小時的語音數據。聲優們在項目完了後透露的感想 「這遊戲的錄音是一件比任何大作動畫的錄音都要辛苦的工 作」。

關於圖像, 3D建模、骨架和貼圖被統一打包成文件包,其中每 個妹子大約佔6MB~7MB。和語音文件比較起來,圖像文件給人 相對緊湊的感覺。

在實際開發中,估算了語音的容量,以此制定了整體的結構... 指揮的石原先生如是說。在剩餘的容量中塞進了調整容量後的背 景用2D圖像,幾乎塞滿了整個256MB的ROM容量。

關於開發時間,先行版的開發和基礎技術的研究時間共2年,實 際製品開發大概用了1年。在DS遊戲中,「Love Plus」是一個巨 型項目異例,包含著這麼多資源的內容,暫時沒有移植到其他游 戲機的預定。

石原先生「我們也不大了解今後的發展方向,在硬體機能上PSP是遊刃有餘。遊戲的界面調整不 成問題。移植到iPhone上也可以。因為iPhone支持兩點觸控。在市場方面,也有望作為 iPhone App來發行。但是這是個重視語音的遊戲,多語言的本地化是極其困難的()」(編輯 注:因本文是在iPhone版發表前寫下的,有點曖昧的表現呢)

「Love Plus」這個項目,以「能與遊戲機里的妹子進行虛擬戀愛的遊戲」而提出、以「能交 互的與妹子們互動」、「在任何時候都能與妹子們見面」等為概念,最能符合的硬體就是DS。 但是遊戲規格遠遠超出了DS的機能。本來應該是把遊戲規格調整到適合硬體機能的理論,但是 「Love Plus」項目沒這麼做,而是用技術力和創新想法去摸索解決方法,實現了我們能夠接受 的遊戲規格,把內容實裝作為目的,這是非常厲害的。

在遊戲開發上「吃透硬體性能」,對於開發者來說是一件「很酷」的事情,在這之上的「超 越硬體機能」,從以前來看就是「更加酷」的事情。「Love Plus」就是在這意味上,近年的一 個「很酷」的作品。

(C)2009 Konami Digital Entertainment

系列最新作「Love Plus+」會在6 月24日發售

  • KONAMI官網 konami.jp/
  • 「Love Plus」官網 konami.jp/products/love

原文: 西川善司の3Dゲームファンのための「ラブプラス」グラフィックス講座 DSの3D能力を超えた5,000ポリゴンキャラクターをレンダリングする技術に迫る


推薦閱讀:

輕小說推薦|孤獨的王與少女的旅程,這是一個超級暖心的故事
最近買過的書(3)
聲影動漫獲磐谷創投、文徽資本千萬級Pre-A投資|三文娛首發
岡田鉄平

TAG:游戏开发 | ACG |