UE5管理內(nèi)容-毛發(fā)創(chuàng)建XGen指南

本指南演示如何設(shè)置從Maya的XGen毛發(fā)創(chuàng)建系統(tǒng)導(dǎo)入Groom發(fā)束到虛幻引擎中。其中我們會用到一組屬性,它們在Alembic以及Grooms規(guī)格這篇文檔中有所介紹。
本指南使用Maya 2018.6創(chuàng)建資產(chǎn)。?
轉(zhuǎn)換舊有XGen說明
將導(dǎo)線轉(zhuǎn)換為NURBS曲線
請參考下列步驟將Groom的導(dǎo)線轉(zhuǎn)化為曲線,以便保存一組曲線并匹配你要轉(zhuǎn)換的導(dǎo)線。
將Maya菜單集設(shè)為?建模(Modeling),以便查看可用的正確菜單選項(xiàng)。

2.從主菜單中,點(diǎn)擊?生成(Generate)?下拉列表并選擇?XGen編輯器(XGen Editor)。?
3.在?XGen?窗口中,使用?工具(Utilities)?選項(xiàng)卡選擇?曲線的導(dǎo)線(Guides to Curves)。?

4.點(diǎn)擊?創(chuàng)建曲線(Create Curves)。
完成后,groom的輸出將類似下圖:?

將Groom轉(zhuǎn)換為XGen交互式Groom
若使用舊版XGen說明,需將groom轉(zhuǎn)換為?XGen交互式Groom(XGen Interactive Groom)。步驟如下:
選擇XGen Description節(jié)點(diǎn)。?

2.在?建模(Modeling)?菜單集中使用主菜單點(diǎn)擊?生成(Generate)?下拉列表,然后選擇?轉(zhuǎn)換為交互式Groom(Convert to Interactive Groom)。?

將樣條說明導(dǎo)出到NURBS曲線
請遵循以下步驟,將你選中的樣條說明導(dǎo)出成Alembic文件,該文件可以與插入的頭發(fā)一起導(dǎo)入為NURBS曲線。
選中你的XGen Spline Description節(jié)點(diǎn)。在?建模(Modeling)?菜單集中使用主菜單點(diǎn)擊?生成(Generate)?下拉列表。然后在列表中選擇?緩存(Cache)> 導(dǎo)出緩存(Export Cache)。?

2.在?導(dǎo)出緩存(Export Cache)?窗口中進(jìn)行以下設(shè)置:?
緩存時(shí)間幀(Cache Time Frame):?設(shè)置成?當(dāng)前幀(Current Frame)
多個(gè)變換(Multiple Transforms):?禁用
寫入最終寬度(Write Final Width):?啟用

3.為文件輸入名稱,文件類型選擇?Alembic。?

4.點(diǎn)擊?導(dǎo)出(Export)。
5.在?文件(File)?菜單中選擇?導(dǎo)入(Import)。這會打開?導(dǎo)入(Import)?窗口,然后將Alembic('.abc')文件放入場景。

導(dǎo)入完成后,XGen樣條說明就應(yīng)該已經(jīng)被導(dǎo)出為Alembic文件,并且將內(nèi)插毛發(fā)作為NURBS曲線導(dǎo)入。?

創(chuàng)建屬性
創(chuàng)建組ID屬性
可在一個(gè)或多個(gè)組中導(dǎo)出內(nèi)插毛發(fā)。虛幻引擎中可識別此類組,用于唯一材質(zhì)指定。?
創(chuàng)建組ID屬性時(shí)使用以下腳本:
創(chuàng)建導(dǎo)線屬性
當(dāng)你為groom創(chuàng)建導(dǎo)線屬性時(shí),只有標(biāo)記為?導(dǎo)線(guide)?的曲線才會被用于虛幻引擎中的模擬。若未在Alembic文件中指定導(dǎo)線,在導(dǎo)入U(xiǎn)nreal Engine的過程中,一定比例的內(nèi)插毛發(fā)將被內(nèi)部標(biāo)記為導(dǎo)線。?
導(dǎo)入無導(dǎo)線的groom時(shí),使用Groom導(dǎo)入選項(xiàng)可設(shè)置標(biāo)記為導(dǎo)線的內(nèi)插毛發(fā)比例。默認(rèn)僅10%的毛發(fā)用作導(dǎo)線。
創(chuàng)建導(dǎo)線屬性時(shí)使用以下腳本:
Groom_Width屬性
在Maya中,寬度值有一個(gè)特殊的行為,與其他DCC應(yīng)用不同的是,它可以遵循Alembic以及Grooms規(guī)格中的內(nèi)容,來獲取它們并使用它們來構(gòu)建groom。
Maya可以直接在曲線上導(dǎo)出寬度值,因此不需要導(dǎo)出自定義的?groom_width
?屬性;導(dǎo)入器會自動將這些值轉(zhuǎn)換為該屬性。如果?groom_wdith
?屬性在導(dǎo)入虛幻引擎時(shí)與groom一起存在,則它不會被覆蓋。如果?groom_wdith
?沒有被指定,或者不能從寬度值轉(zhuǎn)換,那么生成器將退回使用1厘米。
從Maya導(dǎo)出到Alembic
在Maya中,選擇要導(dǎo)出的導(dǎo)線和Group_ID曲線。
每個(gè)節(jié)點(diǎn)應(yīng)擁有唯一名稱。?
在?建模(Modeling)?菜單集中,使用主菜單點(diǎn)擊?緩存(Cache)?下拉列表,然后選擇?Alembic緩存(Alembic Cache)> 將選中項(xiàng)導(dǎo)出到Alembic(Export Selection to Alembic)。

3.在?導(dǎo)出選中項(xiàng)(Export Selection)?窗口中的?通用選項(xiàng)(General Options)?類別下,將?緩存時(shí)間范圍(Cache time range)?設(shè)為?當(dāng)前幀(Current Frame)。

4.在?屬性(Attributes)?類別下,輸入要羅列出的?屬性(Attribute)?命名,然后點(diǎn)擊?添加(Add)?按鈕。添加以下模式屬性:?

groom_group_id
groom_guide
5.在?文件名(File name)?文本框中為文件命名,并將?文件類型(Files of type)?設(shè)為?Alembic。

- 6.點(diǎn)擊? 導(dǎo)出選中項(xiàng)(Export Selection)
- ?按鈕。
將紋理應(yīng)用于毛發(fā)UV
以下步驟和包含腳本可以幫助你設(shè)置自己的XGen毛發(fā),該毛發(fā)可以導(dǎo)出到虛幻引擎,并且各個(gè)發(fā)束上呈現(xiàn)已應(yīng)用的紋理。?
在Maya的建模菜單中,選擇?生成(Generate)?>?創(chuàng)建交互式Groom樣條(Create Interactive Groom Splines)。?

2.你可以根據(jù)自己的偏好為項(xiàng)目創(chuàng)建導(dǎo)線并涂刷毛發(fā)。準(zhǔn)備就緒后,選擇?生成(Generate)> 緩存(Cache)> 創(chuàng)建新緩存(Create New Cache)?將曲線導(dǎo)出為?Alembic緩存(Alembic Cache)。

3.通過隱藏或刪除XGen頭發(fā)以將其移除。然后,在Maya場景中,使用源網(wǎng)格體重新導(dǎo)入之前導(dǎo)出的毛發(fā)曲線。

4.根據(jù)你的場景,頂部曲線下將有數(shù)千條樣條曲線,本例中為?SplineGrp0。編輯以下Python腳本,并將以下值替換為項(xiàng)目中的值:
export_directory
hair_file
curve_top_group
uv_mesh
5.在Maya中,使用更改后的數(shù)值運(yùn)行腳本。這?將?生成一個(gè)新的Alembic('.abc')文件,該文件可以導(dǎo)入到虛幻引擎中。?
6.在虛幻引擎中,使用?毛發(fā)?著色模型創(chuàng)建新材質(zhì)。在材質(zhì)圖表中,添加?毛發(fā)屬性(Hair Attributes)?表達(dá)式,然后將?根UV(Root UV)?插入紋理樣本的?UV?輸入中。?

groom_root_uv
?屬性為每個(gè)毛發(fā)指定了它所連接的底層網(wǎng)格UV。這個(gè)屬性是可選項(xiàng),如果沒有指定,引擎會使用球面貼圖自動生成一個(gè)根UV。
7.將導(dǎo)入的毛發(fā)Alembic文件從內(nèi)容瀏覽器拖到關(guān)卡中,然后向其指定毛發(fā)材質(zhì)。你應(yīng)該以如下形式結(jié)束:?
確保關(guān)卡中的毛發(fā)Alembic文件的寬度大于0。?
