UE5管理內(nèi)容-使用毛發(fā)的Groom緩存

Groom緩存(Groom Cache)?是Groom資產(chǎn)的一個(gè)擴(kuò)展文件,用于播放在其它數(shù)字內(nèi)容創(chuàng)建(DCC)應(yīng)用程序中模擬,并使用Alembic導(dǎo)出到虛幻引擎的Groom動(dòng)畫(huà)。Groom緩存Alembic作為一種Groom Alembic,包含了可以將屬性動(dòng)畫(huà)化的時(shí)間樣本。支持動(dòng)畫(huà)化的屬性有頂點(diǎn)位置、寬度和顏色。
Groom緩存類型
可以導(dǎo)入到虛幻引擎的Groom緩存Alembic文件有兩種:導(dǎo)線Groom緩存和發(fā)束Groom緩存
導(dǎo)線Groom緩存(Guides Groom Cache)?僅支持導(dǎo)線的頂點(diǎn)位置動(dòng)畫(huà)化。它利用引擎內(nèi)的發(fā)束插值來(lái)將導(dǎo)線動(dòng)畫(huà)轉(zhuǎn)移到渲染的發(fā)束,需要Groom資產(chǎn)啟用每個(gè)Groom組的模擬。這適用于播放僅將頂點(diǎn)位置動(dòng)畫(huà)化的Groom動(dòng)畫(huà),引擎內(nèi)發(fā)束插值就足以達(dá)到預(yù)期的效果。這種Groom緩存比起發(fā)束Groom緩存更加輕量化并節(jié)省性能。
發(fā)束Groom緩存(Strands Groom Cache)?包含了每根發(fā)束的動(dòng)畫(huà)化屬性,使其比導(dǎo)線Groom緩存消耗更多內(nèi)存和帶寬。換來(lái)優(yōu)點(diǎn)是除了頂點(diǎn)位置以外還支持寬度和顏色,帶來(lái)更多的靈活性,并且有更高的保真度,包含了和DCC應(yīng)用中計(jì)算的完全一致的模擬。這種Groom緩存不使用引擎內(nèi)插值,不需要啟用Groom資產(chǎn)的模擬。當(dāng)前發(fā)束Groom緩存的限制是它必須包括頂點(diǎn)位置動(dòng)畫(huà),不能只包含寬度和顏色動(dòng)畫(huà)。
發(fā)束Groom緩存可以用于播放不能在引擎內(nèi)模擬的Groom動(dòng)畫(huà),或者用于應(yīng)對(duì)模擬和插值不能達(dá)到預(yù)期的效果的情況。比如說(shuō)顯示毛發(fā)生長(zhǎng)得更長(zhǎng)更粗的動(dòng)畫(huà)。
注意若想將Groom緩存和Groom資產(chǎn)搭配使用,它們必須有同樣的拓?fù)浣Y(jié)構(gòu),比如同等數(shù)量的發(fā)束、頂點(diǎn)、每個(gè)發(fā)束的頂點(diǎn)等等。如果想要讓毛發(fā)變短,全局和每根發(fā)束的頂點(diǎn)數(shù)量都不能改變,只能在動(dòng)畫(huà)中調(diào)整它們的位置來(lái)表示毛發(fā)長(zhǎng)度。
將Groom緩存導(dǎo)入虛幻引擎
由于Groom緩存是一個(gè)帶時(shí)間樣本的Groom,Groom緩存Alembic在導(dǎo)入時(shí)會(huì)被認(rèn)作為普通的Groom。然而,Groom導(dǎo)入選項(xiàng)(Groom Import Options)?中會(huì)顯示一個(gè)?Groom緩存(Groom Cache)部分,其中將?導(dǎo)入Groom緩存(Import Groom Cache)?啟用。

可以禁用導(dǎo)入Groom緩存來(lái)僅導(dǎo)入Groom資產(chǎn)。無(wú)法導(dǎo)入僅有導(dǎo)線的Groom資產(chǎn)或者Groom緩存。
對(duì)于僅有發(fā)束的Groom,導(dǎo)入時(shí)會(huì)使用插值設(shè)置自動(dòng)生成導(dǎo)線,這些設(shè)置用于為導(dǎo)線Groom緩存生成導(dǎo)線。如果Alembic中已經(jīng)包含了導(dǎo)線,會(huì)為Groom資產(chǎn)和Groom緩存使用這些已有的導(dǎo)線,除非啟用了Groom導(dǎo)入選項(xiàng)中的?覆蓋導(dǎo)線(Override Guides)?,位于?組(Groups) > 序號(hào)[n](Index [n]) > 插值設(shè)置(Interpolation Settings)。

如果已經(jīng)有了一個(gè)與要導(dǎo)入的Groom緩存拓補(bǔ)結(jié)構(gòu)兼容的Groom資產(chǎn),可以禁用?導(dǎo)入Groom資產(chǎn)(Import Groom Asset)?并指定要使用的Groom資產(chǎn)。?

導(dǎo)入時(shí)會(huì)將指定的?Groom資產(chǎn)(Groom Asset)?的導(dǎo)入設(shè)置應(yīng)用到要導(dǎo)入的Groom緩存上。抽值和插值設(shè)置尤為重要,它們能夠保證Groom資產(chǎn)和Groom緩存導(dǎo)入同樣的拓?fù)浣Y(jié)構(gòu)。

導(dǎo)入Groom資產(chǎn)(Import Groom Asset)?禁用時(shí),必須指定一個(gè)?Groom資產(chǎn)(Groom Asset)?才能導(dǎo)入Groom緩存。?
Groom緩存部分其它的設(shè)置用于控制導(dǎo)入動(dòng)畫(huà)范圍,比如指定起始和結(jié)束幀,以及跳過(guò)Groom動(dòng)畫(huà)起始部分可能存在的空幀。

在虛幻引擎中使用Groom緩存
導(dǎo)入Groom緩存之后,可以將其應(yīng)用到一個(gè)?Groom組件(Groom Component)?的?Groom緩存(Groom Cache)?插槽。

Groom緩存只能與拓?fù)浣Y(jié)構(gòu)兼容的Groom資產(chǎn)搭配使用,因?yàn)樗鼈儽旧聿话ㄤ秩綠room發(fā)束需要的渲染數(shù)據(jù)和資源。
如果Groom組件已經(jīng)有了一個(gè)?Groom綁定(Groom Binding),那么無(wú)法將?Groom緩存(Groom Cache)?(2) 分配至該Groom組件,這種情況時(shí)Groom緩存分配插槽會(huì)是灰色。

對(duì)于導(dǎo)線Groom緩存,Groom資產(chǎn)必須為每個(gè)?Groom組(Groom Group)?啟用模擬,從而在使用編輯器內(nèi)播放(Play-in-Editor)(PIE) 時(shí)讓Groom動(dòng)畫(huà)能夠顯示出來(lái)。?
在關(guān)卡序列中使用Groom緩存
Groom緩存可以在關(guān)卡序列中使用和控制,需要在Actor上添加一個(gè)帶有Groom組件的?Groom緩存(Groom Cache)?軌道。

如果Groom組件已經(jīng)有了一個(gè)Groom緩存,那么軌道上的Groom緩存部分會(huì)自動(dòng)調(diào)整大小來(lái)適應(yīng)動(dòng)畫(huà)范圍。否則就需要手動(dòng)設(shè)置大小。?
