UE5管理內(nèi)容-Alembic for Grooms規(guī)范

毛發(fā)渲染與模擬功能旨在提供毛發(fā)導(dǎo)入、渲染和模擬(基于發(fā)束)的最小可行實現(xiàn)。本更新不提供毛發(fā)梳理解決方案。毛發(fā)的造型或梳理需要在Maya等第三方DCC工具中用XGen工具或插件剃毛和理發(fā)(Shave and a Haircut)來執(zhí)行。也可使用其他工具,如Ornatrix、Yeti或Houdini。
本文檔介紹了Alembic文件的一種非正式模式,以標(biāo)準(zhǔn)化毛發(fā)梳理的導(dǎo)入操作,并將毛發(fā)信息導(dǎo)入虛幻引擎,以供毛發(fā)渲染與模擬功能使用。在生成毛發(fā)梳理(Hair Grooms)時,只要遵循此模式,Unreal Engine即可直接導(dǎo)入這些梳理(grooms)文件。導(dǎo)入后,UE4支持的渲染和物理相關(guān)屬性將映射到Alembic文件中的對應(yīng)屬性。?
目標(biāo)
定義梳理專有的非正式Alembic元數(shù)據(jù)模式,以便將毛發(fā)導(dǎo)入虛幻引擎。?
檢查Unreal Engine支持的毛發(fā)相關(guān)屬性,并將這些屬性映射到Alembic。
曲線
從標(biāo)準(zhǔn)Alembic曲線模式中讀取毛發(fā)的常規(guī)形狀:?
寬度
根據(jù)此規(guī)范導(dǎo)出的Groom屬性讓導(dǎo)入程序在構(gòu)建Groom時能夠檢索和使用這些屬性。但是,寬度屬性沒有特殊行為。例如,在Maya等DCC應(yīng)用程序中,寬度數(shù)值直接導(dǎo)出到曲線行,因此不需要導(dǎo)出自定義的?groom_width
?屬性;導(dǎo)入程序?qū)袽aya的寬度數(shù)值轉(zhuǎn)換成?groom_width
?屬性。值得注意的是,如果你的Groom中存在?groom_width
?屬性,那么在導(dǎo)入期間不會被覆蓋。如果未指定?groom_width
?屬性,或者無法從寬度數(shù)值轉(zhuǎn)換為該屬性,虛幻引擎中的構(gòu)建器將會后退,使用1厘米來作為寬度值。
使用以下命令可為每個ICurve存儲曲線寬度:
使用以下命令可為每個曲線存儲曲線寬度:
使用以下命令可為每個cv存儲曲線寬度:
注意,導(dǎo)入器支持?kUniformScope
,但未經(jīng)過測試。
命名規(guī)則
屬性名必須小寫,不含空格或特殊字符。
所有屬性必須使用以下前綴:
舉例而言,groom_id
、`groom_color`或`groom_width`都符合命名規(guī)則。?
范圍和優(yōu)先權(quán)
本文檔中的屬性都有指定范圍。該范圍控制可在哪個梳理的?級別上對屬性進行定義。?
可用范圍包括:?
Constant
針對帶?AbcGeom::ICurves
?對象的所有曲線,這些參數(shù)都擁有單一值。
Uniform
針對?AbcGeom::ICurves
?對象中的每個曲線,這些參數(shù)都擁有一個值。
Vertex
針對每個cv每條曲線,這些參數(shù)都擁有一個值。
常規(guī)屬性
本節(jié)介紹整體應(yīng)用于梳理的屬性。這些屬性應(yīng)添加到最頂部的節(jié)點:IXForm或ICurves。
groom_version_major
int16
否
用于識別此文件符合梳理方案的哪個?主要版本。
1
groom_version_minor
int16
否
用于識別此文件符合方案的哪個?次要版本。
4
groom_tool
字符串
是
生成此文件的工具的名稱和版本。用于調(diào)試和跟蹤問題。
groom_properties
字符串
是
該字符串描述用于生成此梳理的參數(shù)。這些是工具專屬的選項,用于調(diào)試。
幾何體參數(shù)
所有幾何體參數(shù)都是可選的,但如果導(dǎo)出的Groom中沒有這些參數(shù),則會求助于內(nèi)部行為。?
groom_ guide
int8/16/32
常量/統(tǒng)一
是
根據(jù)導(dǎo)入的發(fā)束和抽取設(shè)置生成導(dǎo)線。
0 = 無導(dǎo)線 / 1 = 導(dǎo)線
groom_group_id
int32
常量/統(tǒng)一
是
所有發(fā)束將組合到一起。
[0, INT_MAX]
groom_root_uv
float32/64[2]
統(tǒng)一
是
通過將發(fā)束的根投射到球體上來計算根UV。?
此屬性是可選的。如果未指定,將使用球體映射在引擎中自動生成根UV。
[-FLOAT_MAX, FLOAT_MAX]
groom_id
int32
統(tǒng)一
是
發(fā)束不會具有ID。此屬性應(yīng)在調(diào)試中使用,與?groom_closest_guides
屬性搭配。
[0, INT_MAX]
groom_color
float32/64[3]
頂點
是
后退到黑色。
[0, FLOAT_MAX]
groom_closest_guides
int32[3]
統(tǒng)一
是
計劃專門用于在虛幻引擎外計算的插值數(shù)據(jù)。
[0, INT_MAX]
groom_guide_weights
float32[3]
統(tǒng)一
是
計劃專門用于在虛幻引擎外計算的插值數(shù)據(jù)。
[0, FLOAT_MAX]