在以遊戲開發者為主的講座「CEDEC 2023」當中,由 GAME FREAK 的前澤圭一帶來了以「《
寶可夢 朱/紫》繪出帕底亞地區 —— 徹底解說視覺表現的機制!(【ポケットモンスター スカーレット・バイオレット】 パルデア地方を描き出す――見た目の仕組みを徹底解説!)」為題的演講,講述以「從美術風格就可以知道是哪部作品」這個觀念為前提開發的《寶可夢》系列,是如何打造《
寶可夢 朱/紫》的寶可夢、主角、整個世界的各種構成,從著色器處理到資源建造,徹底解說其中的奧妙。
根據前澤所述,《寶可夢 朱/紫》設定的美術概念為「擬真與變形(リアルとデフォルメ)」,也就是讓背景的質感與形狀接近現實做為目標。但是由於寶可夢與人物角色等會簡化,所以必須要找出將它們統整放在一起時會出現破綻的地方才行。
美術概念
現實與簡化
-
希望背景的質感與形狀等,要比前作更接近現實
-
但是,由於寶可夢與人物角色並不會弄成完全真實風格,因此必須要找出在背景與角色統一放在一起時會產生的破綻
質感
-
基本上接近現實就好
-
必須要思考如何調整輪廓與背景融合
素材
-
BaseColorMap
-
NormalMap
-
MetallicMap
-
RoughnessMap
-
EmissionColorMap
-
AOMap
使用 Gbuffer
-
利用 Flags 使處理分歧(也收入在模板)
-
以 Mesh ID 為基礎並抽出追加情報
可使用的光
-
定向光源(太陽光等)
-
點光源、聚光光源
-
IBL
-
DiffuseProbe / SpecularProbe
-
IrradianceVolume
點光源
IBL
-
由於時間帶的變化,要以作出灰階影像 DiffuseProbe 並另外疊上顏色。
打燈光
在演講首先展示了素材的構成與光源等,並且在介紹整個作品中基本的表現方法時,也順便解說了使用在寶可夢身上的特殊手法。
而提到寶可夢主要的外觀就先提到的便是 SSS(Subsurface Scattering)的陰影呈現。這套陰影系統會根據寶可夢的身體大小與密度等進行配合,套用各式各樣的設定,對寶可夢的造型個性造成巨大的影響。
SSS
-
使用接近 Pre-Integrated Skin 的手法,在陰影部分使用散亂色滲出的效果
-
避免使用 LUT texture,並使用 Spherical Gaussian 進行近似計算
-
左圖:厚度跟密度等較薄的部位數值調到偏亮
-
右圖:眷戀雲「白色」的地方也會因應頭部的毛跟雲而利用數值設定區分
膠狀物
-
只在輪廓附近適用 SSS 呈現質感,表現出只有外側呈現出透光的效果以模擬質地
-
輪廓部分,單純以視角跟法線的角度為基準抽出
構造色
-
simulation base 的手法,因為表現的自由度等觀點而放棄採用
-
以視角與法線的角度為基礎再加上三色漸層,使用簡單的功能進行
粒子
-
左:粒子的 texture 種類動畫(4*4=16 種類)
-
右:指定深邃感(視差的強弱)的 texture
火焰(頭頂的動態物件)
-
在 Displacement Map(左)用頂點色(右)乘算,用來控制影響程度
其他也有介紹如何表現出凝膠般的質感、構造色的呈現,還有悖論寶可夢的粒子呈現等各式各樣的手法,並且提到了《寶可夢 朱/紫》最大特徵「太晶化」的相關表現。
當寶可夢太晶化,便是將本體(也就是寶可夢)的部分保持原本的模組並更換素材,配合 Normal Map、Color Map 與雜訊紋理,就可以呈現出寶石的質感。不過,如果將所有物件都寶石化的話,反而變得不美觀,所以也做出了能夠指定「不要」太晶化的 Mesh。
另外,在太晶化的時候出現在寶可夢頭頂的太晶寶石,其實是將表面的 Mesh 設成半透明,而裏面的 Mesh 設成不透明,藉此產生出深度並呈現立體感。
太晶化(本體)
-
左:用在表現質感的 Normal map
-
右:從左邊開始為
-
用在表現分散光的 Color map
-
讓邊緣(エッジ)發光的 Normal map
-
放在邊緣(エッジ)上的雜訊紋理
太晶化(完成)
接著則是展示關於主角(人物)角色相關的呈現手法。首先從在遊戲一開始可自定義的主角「造型」是如何呈現的。
《寶可夢 朱/紫》在創角的時候能夠選擇的各種眼眶與眼睛大小等,其實是使用 Maya 的 Lattice 功能製作的。使用這個功能就可以控制眼尾的上下或眼睛、嘴巴的大小、嘴唇的厚度等。不過,如果全部的細節都可以調整的話會變得太過繁雜,所以事先準備了配合各種變形值組合的預設值。
另一方面,雖然眉毛基本上是以 texture 描繪,不過藉由在前端使用 α 做出階層,就可以做出眉毛長度的不同版本。
眼簾、嘴巴的自定義
自定義角色用的 Lattice 本體。能直接把 Mesh 變形
控制眼簾的 Lattice。控制 makeup_all
控制嘴巴的 Lattice。控制 makeup_all
眼瞼的 Lattice 種類
嘴巴的 Lattice 種類
混和以上種類
眉毛、睫毛的種類
-
基本的種類以 texture 製作
-
根據各種類,以設定 α 增加版本
另外,表情則是將臉分成五個部分之後以變形目標(Morph target)製作。最一開始套用變形目標,接著再用剛才提到的 Lattice 功能進行演算,就可以實現實際角色的臉的形狀。
表情
-
拆開各部位後以變形目標製作
-
眉毛周圍變形
-
右眼變形
-
左眼變形
-
嘴巴變形
-
加算至整體
表情與臉部妝容
-
將各部位的變形圖像合併後,製作變形用的 Mesh
-
混和至 BaseMesh(反映表情)
-
Lattice 變形(反映臉部妝容)
眼球
而在表現肌膚的部分,則是先做出假的法線,並與實際法線混合。接著,依照臉或視角的角度、光源的方向等各種情況,調整哪個角度才是最為美觀,再控制光的反射度,不斷重複嘗試,才終於達到開發團隊希望的美術概念。
shade(偽裝法線)
-
偽裝法線 N0 = normailze (P0 - O)
-
把基準點 O 跟 "head"joint 連動
shade(風格調整)
-
以條件跟參數,跟實際的法線進行混合
-
下方圖片:根據參數產生變化的結果
光的反射調整
-
將 dot (normal, light) 的結果補正得更滑順
最後則是講解在打造帕底亞地區的世界時,如何呈現各種環境的相關手法。
首先是大地(地圖)的製作方法。帕底亞地區的大地,是以 Maya 的 Mesh 為基礎,再利用 Houdini 追加細節,然後選擇 High tMap 與質感,或是輸出長出花花草草的 Mask。然而,光只用這樣的方式也有無法完整呈現的地形,所以會在之後利用 Houdini 進行程序建模弄出懸崖或岩石等再配置於地圖上,慢慢打造出想要的地形。
大地的製作方式 1/3
-
以 Maya 的 Mesh 為基礎,再利用 Houdini 追加細節
大地的製作方式 2/3
-
從 Houdini 輸出 HightMap 與 Mask
大地的製作方式 3/3
-
用 SplatMask 選擇質感
-
用 DetailMask 長出花草
-
把懸崖或岩石從上面放置
懸崖&岩石
-
利用 Houdini 進行程序建模
-
加上形狀、輸出素材混合等參數的 Mask
-
將產生的 Mesh 利用 Maya 加工等情況,就使用只再生 Mask 的工具
接著是關於海、河川等水邊的呈現。這部分會根據頂點動態的動作、流型圖的流動,還有依照水深的透明度變化、螢幕畫面空間的折射表現等而配合,進行基本的處理。甚至也特地準備了浪潮拍打岸邊時白色波紋的專用模型,讓其越靠近陸地時就有越大變化,以強調「拍浪感」。
海&河川
-
以 Gerstner Wave 為基礎的頂點動態
-
根據 Flow map 表現出流動
-
因應水深改變透明度
-
ScreenSpace 的折射表現
-
Normal Map 與 Flow Map
-
SpecularProbe 的 texture 以手繪製作
開發成員還說「我們在這真的下了很多工夫,請一定要介紹這部分」
接著是天空,為了要從水平線延伸出顏色的漸層,則是以 Precomputed Atmospheric Scattering 等新技術為基礎呈現。在雲層的表現上,先將在建模完成的雲上從六種方向打光後的結果壓製成兩張 texture,並且以真實世界的光為原型計算描繪色。
天空
-
以 Precomputed Atmospheric Scattering 等技術為基礎,然後再加上特定的漸層處理
雲朵
-
把從六方向(±xyz)打光後的結果,再壓製成兩張 texture
-
貼上 Billboard 並以光源向量為基礎計算描繪色
室內
-
建築物裡面使用光線映射表現
-
根據晝夜變換有各自的資料
-
乘算至 Base color
以上就是本次「《
寶可夢 朱/紫》繪出帕底亞地區 —— 徹底解說外觀的構造!」的演講內容了。在本次的演講中,可以感受到開發團隊是如何用盡了各式各樣的表現手法,進而呈現出《寶可夢 朱/紫》裡帕底亞地區光鮮亮麗的一面。
(C)2022 Pokémon. (C)1995-2022 Nintendo/Creatures Inc. /GAME FREAK inc.
ポケットモンスター・ポケモン・Pokémon は任天堂・クリーチャーズ・ゲームフリークの登録商標です。
Nintendo Switch のロゴ・Nintendo Switch は任天堂の商標です。