起源2概述/将起源1的模型转换到起源2

From Valve Developer Community
< Half-Life: Alyx Workshop Tools:zh-cn
Revision as of 01:58, 22 May 2020 by Hl2awpp (talk | contribs) (Created page with "{{otherlang2 |title =起源2概述/将起源1的模型转换到起源2 |en=S2General/Converting_Source_1_Models_to_Source_2 }} 起源2有一个内置的转换系统,用于...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
English

起源2有一个内置的转换系统,用于从起源1获取旧的.mdl模型文件并将它们转换为起源2的模型格式。这并不是一个完美的系统,可能时不时会编译失败导致崩溃,还会丢失flex,但是如果您需要将大量的资源从起源1移植到起源2,那么它将是非常棒的。

支持的MDL格式

该系统对于导入的.mdl格式非常挑剔。到目前为止,Source Filmmaker是最成功的移植模型的地方,得益于SFM已经发布了大量游戏的内容。但是,《半条命2》和《求生之路2》等都经过了测试并且不兼容,幸运的是,Valve已经从这些游戏中移植了很多内容。

To do: 这可能与头文件有关,头文件很容易修改。请做更多的测试来确定哪些分支是最稳定的。

创建.vmdl文件

要转换.mdl文件,首先必须为您的内容端(content)创建一个正确的文件结构。 举个例子,我们移植一个来自 Half-Life 2中的模型, 将位于HL2目录下的 "models/humans/group01/male_07.mdl" 这个模型移植到 Half-Life: Alyx中去:

首先你需要安装Half-Life: Alyx的创意工坊工具集,然后通过工具集启动器创建一个Addon,在内容端(content)对应的文件夹中存放你要编译的原始文件,游戏端(game)则是起源2引擎自动为我们存放的已经编译完成的文件。

现在我通过工具集启动器创建一个名为hl2的Addon,创建完成后,在“content”和“game”文件夹中都会有一个对应的名为hl2的文件夹,具体路径:“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2”和“steamapps\common\Half-Life Alyx\game\hlvr_addons\hl2”。

接下来,您需要将.mdl及其有关的文件复制到与起源1中相同的文件结构中。例如,male_07模型文件在原HL2游戏中的路径为“models/humans/group01/male_07.mdl”,那么您就需要将模型文件复制到“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01”中去。

您安放完模型文件之后应该是下面这个样子:

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.mdl”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.dx90.vtx”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.phy”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.vvd”

最后,您需要在此目录下新建一个与模型名字相同的文本文件,并将扩展名从.txt改为.vmdl。

此时再次确认一遍您的文件夹中是否含有以下内容:

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.mdl”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.dx90.vtx”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.phy”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.vvd”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\models\humans\group01\male_07.vmdl”

然后用您喜欢的文本编辑器(Notepad++或记事本)打开male_07.vmdl,并添加以下代码,保存并关闭文件,然后打开Half-Life: Alyx的创意工坊工具集。

<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
	m_sMDLFilename = "models/humans/group01/male_07.mdl"
}
Note.png Note: 如果您使用了启动参数'-nocustomermachine',则不需要这样做。您可以在模型编辑器中修改m_sMDLFilename这一行。

完成后,在您的资源管理器(Asset Browser)中就可以找到male_07.vmdl模型文件,它已经自动将自己编译成了.vmdl_c文件!

此时编译好的vmdl_c文件会自动保存在镜像于内容端(content)路径的游戏端(game)中,具体路径为:

“steamapps\common\Half-Life Alyx\game\hlvr_addons\hl2\models\humans\group01\male_07.vmdl_c”

创建.vmat材质文件

现在唯一剩下要做的就是为该模型创建对应的材质文件 了,缺失材质的模型就会呈现红色线框的状态,起源2的.vmat材质文件的名称和存放路径需要与起源1中的.vmt文件结构一致,这样才能被移植的模型自动识别。下面详细描述一下:

male_07该模型在起源1中用到的.vmt材质名称和路径为:

“materials/models/humans/male/mouth.vmt”

“materials/models/humans/male/eyeball_l.vmt”

“materials/models/humans/male/eyeball_r.vmt”

“materials/models/humans/male/group01/mike_facemap.vmt”

“materials/models/humans/male/group01/citizen_sheet.vmt”

在起源2中需要创建相同的文件结构来保持一致,所以您创建的.vmat材质文件的名称和路径应该为:

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\materials\models\humans\male\mouth.vmat”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\materials\models\humans\male\eyeball_l.vmat”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\materials\models\humans\male\eyeball_r.vmat”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\materials\models\humans\male\group01\mike_facemap.vmat”

“steamapps\common\Half-Life Alyx\content\hlvr_addons\hl2\materials\models\humans\male\group01\citizen_sheet.vmat”

材质文件全部创建完成无误后,在资源管理器(Asset Browser)中您就可以看到male_07.vmdl可以正常显示材质贴图了,如果模型依然还是红色线框,请在资源管理器(Asset Browser)里选中模型,右键点击Full Recompile,重新编译即可。

编译完成的.vmat_c材质文件会自动镜像内容端(content)的路径存放在游戏端(game)中:

“steamapps\common\Half-Life Alyx\game\hlvr_addons\hl2\materials\models\humans\male\mouth.vmat_c”

“steamapps\common\Half-Life Alyx\game\hlvr_addons\hl2\materials\models\humans\male\eyeball_l.vmat_c”

“steamapps\common\Half-Life Alyx\game\hlvr_addons\hl2\materials\models\humans\male\eyeball_r.vmat_c”

“steamapps\common\Half-Life Alyx\game\hlvr_addons\hl2\materials\models\humans\male\group01\mike_facemap.vmat_c”

“steamapps\common\Half-Life Alyx\game\hlvr_addons\hl2\materials\models\humans\male\group01\citizen_sheet.vmat_c”

注意事项

这个自动转换工具的最大问题,就是移植后的模型,它的flex会失效。一些flex顶点数据会完全损坏(例如来自SFM的HWM模型)。

另一个问题是缺少对某些起源1引擎分支的支持,因此导入不是来自Source Filmmaker的起源1模型可能非常困难。

To do: 注意其他问题并测试与更多游戏的兼容性。

相比于原文,我在这里详细讲解了移植的全步骤,其他介绍的地方可能翻译的不太准确,如果有错误,欢迎大家前来修改完善!这个移植功能虽然会丢失flex,但如果你是用来移植静态物体,或是不带flex的起源1的SFM模型,这个自动移植功能是个很不错的选择! --译者留

相关文档