Zh/VMDL: Difference between revisions
m (REDESAILE moved page Dota 2 Workshop Tools/VMDL:zh-cn to Dota 2 Workshop Tools/Modeling/VMDL:zh-cn) |
mNo edit summary |
||
Line 1: | Line 1: | ||
{{Dota 2Tools topicons}} | |||
{{lang|Dota_2_Workshop_Tools/VMDL|title =VMDL}} | {{lang|Dota_2_Workshop_Tools/VMDL|title =VMDL}} | ||
{{Subpage Dota 2 Workshop Tools:zh-cn and Modeling:zh-cn}} | {{Subpage Dota 2 Workshop Tools:zh-cn and Modeling:zh-cn}} |
Revision as of 01:28, 8 May 2022
Whether you're building a commercial project or a modification for Half-Life® 2, you'll want to sign up as a Valve developer today. It's free to join and is open to anyone working with the Source engine and its software development kit.
GoldSrc and the Half-Life SDK
If you want to create a Mod for Half-Life or looking for more GoldSrc documentation, click above.
Source and the Source SDK
If you want to create a Source SDK Base mod, or content-based mod for Half-Life 2, Team Fortress 2 or looking for more Source documentation, click above.
Source 2 Documentation
If you want to port Source content to Source 2, create a content-based mod for Source 2 games or looking for more Source 2 documentation, click above. Otherwise, you can check out the following Source 2 games with Workshop Tools:
- Source Engine Features
- Why choose the Source engine for your mod?
- Read Making a Mod - building a team through the shipping process.
- Already using the SDK? Check the Source SDK FAQ for some helpful answers.
- New to Source coding? Get started with basic programming articles.
- Read (or add) a tutorial on Source development, or any part of the content creation process.
For help with using the wiki, see Help:Contents. For help with navigating the wiki, see Category:Entry pages or Category:Valve Developer Community. For more information on the community itself, see Community Portal.
|
© 2005–2025 Valve Corporation. All rights reserved. All trademarks are property of their respective owners in the US and other countries. See the Terms of Use for details
About Valve Developer Community · Privacy Policy · Third Party Legal Notices
带有 VMDL 扩展名的文件是内容端的文本文件,利用工具能够编译出游戏端的二进制文件(VMDL_C)。
一个模型被存在模型编辑器中后,会写出VMDL文件。当VMDL数据有更新时,或工具检测到变化,便会编译模型。
参考文档
- 动画(Animation)
- 附着点(Attachments)
- 击中范围(Hitboxes)
- 内外部引用(Internal External References)
- 细节等级群组(LodGroup)
- 材质群组(MaterialGroups)
- 材质映射(MaterialRemap)
- 网格(Mesh)
- 网格群组(MeshGroup)
- 物理网格(PhysicsMesh)
注意事项
- 每个VMDL文件的第一行是定义构架的文本,这并不是文件的唯一ID或是其他任意特性。
- VMDL里的文件路径,是相对于当前游戏的内容目录里。
- 元素
引用
的名称可以是内部的,也可以引用一个外部文件路径。 - 一个VMDL文件可以在没有提供全部字段的情况下被编译。
这个例子将会编译一个简单的静态道具:
<!-- schema text {7e125a45-3d83-4043-b292-9e24f8ef27b4} generic {198980d8-3a93-4919-b4c6-dd1fb07a3a4b} -->
CVModel CVModel_0
{
CVmeshList m_meshList = CVmeshList
{
CVmesh[] m_meshList =
[
CVmesh
{
string m_meshName = "test"
string m_meshFile = "models/test/dmx/mesh/test.dmx"
}
]
}
}
大型实例
一个空白CMDL文件如下:
<!-- schema text {7e125a45-3d83-4043-b292-9e24f8ef27b4} generic {198980d8-3a93-4919-b4c6-dd1fb07a3a4b} -->
CVModel CVModel_0
{
CVmeshList m_meshList = CVmeshList
{
CVmesh[] m_meshList =
[
]
}
CVphysicsMeshList m_physicsMeshList = CVphysicsMeshList
{
CVphysicsMesh[] m_meshList =
[
]
}
CVmodelInfo* m_pModelInfo = NULL
CVhitBoxSetListReference[] m_pHitBoxSetLists =
[
]
CVattachmentListReference[] m_pAttachmentLists =
[
]
CVanimGroupReference[] m_pAnimGroups =
[
]
CVNodeMaterialGroupListReference m_pMaterialGroupList = CVNodeMaterialGroupListReference
{
NodeMaterialGroupList_t* m_pObject = NULL
string m_sFileName = ""
}
CVMeshGroupListReference m_pMeshGroupList = CVMeshGroupListReference
{
MeshGroupList_t* m_pObject = NULL
string m_sFileName = ""
}
CVLODGroupListReference m_pLodGroupList = CVLODGroupListReference
{
LODGroupList_t* m_pObject = NULL
string m_sFileName = ""
}
CVpropBreakableListReference m_pPropBreakableList = CVpropBreakableListReference
{
CVpropBreakableList* m_pObject = NULL
string m_sFileName = ""
}
CVpropDataListReference m_pPropDataList = CVpropDataListReference
{
CVpropDataList* m_pObject = NULL
string m_sFileName = ""
}
CVConstraintListReference[] m_pConstraintLists =
[
]
string m_collision = ""
string m_sMDLFilename = ""
string[] m_scriptFiles =
[
]
CVMaterialRemapList* m_pMaterialRemapList = NULL
float m_flFbxScale = 1.000000
}