VMDL 材质群组

From Valve Developer Community
Jump to: navigation, search
English (en)
... Icon-Important.png

材质群组(Material Groups)提供了一种方式来对你的模型建立不同的材质,这些通常被称之为皮肤。

显示

  • 材质群组(Material Groups) 在大纲(outliner)中的 "材质群组列表(Material Group List)" 菜单下。
  • 选择材质组选项将切换到该材质组所在的视窗。

创建

编辑

  • 添加材质群组:选择“材质群组列表(Material Group List)”项,在属性编辑器中按下绿色“+”按钮。
  • 编辑材质群组:在大纲(outliner)中选择。
Tip.pngTip:第一个材质群组需要匹配到模型上的默认材质,其他则要匹配到模型的材质数。

数据结构(Data Structures)

VMDL中LOD群组数据如下:

CVNodeMaterialGroupListReference m_pMaterialGroupList = CVNodeMaterialGroupListReference
{
	NodeMaterialGroupList_t* m_pObject = &NodeMaterialGroupList_t_0
	string m_sFileName = ""
}

m_pMaterialGroupList

VMDL中CVNodeMaterialGroupListReference的参考:

Attribute Friendly Name Description Type Default Value
属性 易记名称 描述 类型 默认值
m_pObject 指向 NodeMaterialGroupList_t NodeMaterialGroupList_t*
m_sFileName 包含外部材质群组列表的相对路径 string

NodeMaterialGroupList_t

一个NodeMaterialGroup_t元素列表。在VMDL中如下所示:

NodeMaterialGroupList_t NodeMaterialGroupList_t_0
{
	NodeMaterialGroup_t[] m_materialGroups = 
	[
		NodeMaterialGroup_t
		{
			string m_name = "default"
			string[] m_materialList = 
			[
				"models/sdk_character/materials/base.vmat",
                                "models/sdk_character/materials/hair.vmat"
			]
		},
		NodeMaterialGroup_t
		{
			string m_name = "hair_green"
			string[] m_materialList = 
			[
				"models/sdk_character/materials/base.vmat",
                                "models/sdk_character/materials/hair_green.vmat"
			]
		}
	]
}

NodeMaterialGroup_t

Attribute Friendly Name Description Type Default Value
属性 易记名称 描述 类型 默认值
m_name Name 材质群组名称 string
m_materialList Materials 一个与该组关联的材质组路径(相对路径)列表 string[]
Note.pngNote:在上面的例子中,切换到材料群组 "hair_green" 依然会保持身体的材质,但头发会切换成绿色的材质。