《叛乱》武器模组制作教程(不仅适用于新手)

0 点赞
Insurgency
转载

在本教程中,我将尝试展示并解释如何将自定义武器模型导入《叛乱》。请注意,我以前从未写过教程,而且英语不是我的母语,所以有些内容可能不是很清楚。如果你有任何问题,请使用评论区。 简介 我们都见过这种情况。有人制作了武器替换模组,然后人们开始请求其他武器,或者希望它适用于不同的武器槽位。虽然有些请求是合理的,但有些则完全是荒谬的。 本指南适用于那些厌倦了提出请求(反正也没有模组制作者会去做)并想要自己制作模组的人。 你可能会问,既然已经有两个教程涵盖了完全相同的内容,其中一个是由Mr. Brightside制作的,为什么还要再做一个教程呢?其中一个由Tigg制作。虽然我同意我所涵盖的某些内容在这两份指南中已经解释得相当清楚,但我也补充了那些未被提及的内容,并尝试让指南对新手更友好,逐步进行讲解。 制作模组所需的所有软件均可免费获取,我已在第一部分添加了下载链接。 你可能会问的另一个问题是,从哪里获取模型? 这完全取决于你,你可以制作自己的模型和纹理,或者从Gamebana获取社区制作的模型,从Facepunch获取从其他游戏中提取的模型,或从各种其他模组网站(例如Nexus、Moddb或某些其他游戏的创意工坊)获取。如果你使用他人制作的模型,请务必注明模型制作者的功劳。如果可能,请先获得模型作者或纹理艺术家的许可,并在条件允许的情况下将他们列为贡献者。 本教程使用的模型是《战地:硬仗》中的SA58 OSW,由EA DICE制作。 1. 参考网格 本节中你需要用到的工具: Blender(需安装Source Tools插件) GCFScape Crowbar 现在你已经在Blender中导入了新模型。

我们想先做好准备工作,这样后续会更轻松。需要妥善进行平滑处理,准备好用于分配的顶点组,并整理好材质。 右键选择模型,然后按Tab键进入编辑模式。 打开UV/图像编辑器,点击UVs,然后选择“从岛生成接缝”。

然后勾选标记接缝和标记锐边。添加边缘拆分修改器并将角度设置为180°。或者你也可以取消勾选边缘角度。

切换到材质选项卡,查看材质的命名方式。你可以更改名称以便后续更轻松地处理纹理,也可以保持原样。重要的是要记住、写下或复制确切的材质名称,因为要使纹理正常工作,你的.vmt文件名称必须与Blender中的材质名称完全一致。

接下来,我们要准备顶点组。你也可以稍后再进行此操作,但当场景中只有一个模型时操作会更简单,你可以拆分模型并隐藏部分区域,以便在选择模型部件时更轻松地工作。 你需要选择模型的任何活动部件(Ctrl+L 是个好帮手),例如弹匣、拉机柄、快慢机、扳机等等。创建新的顶点组并相应命名(但名称也应特定于模型,这样你之后才能找到该组,添加一个简单的前缀会有所帮助),然后为模型的这些部件分配顶点组。完成后,你还应为武器本身创建一个顶点组,只需按 A 全选所有内容,然后取消选择你已创建的所有组,再重复一次创建顶点组的过程即可。

现在我们已准备好模型,你可以导入原始武器的参考网格,该网格是你从insurgency_models_dir.vpk中提取《叛乱》武器的.mdl文件并进行反编译后获得的。进行反编译时,你首先需要使用GFCScape提取.mdl文件,然后使用Crowbar对其进行反编译。第一人称模型(视图模型)带有v_前缀,第三人称模型(世界模型)带有w_前缀。

导入reference.smd后,你会发现新模型位置不对,而且大小可能与导入的武器网格不同。首先为导入的网格应用边缘拆分修改器(这样以后就不会忘记了)。

然后缩放并定位新模型,使其与导入的网格对齐。

正交视图(数字键5)、侧视图(数字键3)和线框模式(Z键)能让操作更便捷。

确保你也沿X轴对齐(数字键7)。新模型现已对齐,以便动画能够适配手枪握把或弹匣等重要部件。你可能会注意到拉机柄位置略有偏差,枪管过短,以及机械瞄具的位置完全不对。我们将在下一部分修复这些问题。

现在是时候用新网格替换默认网格了。回到物体模式,右键点击新模型,然后按住Shift键右键点击默认模型。选择它们的顺序很重要。现在按下Ctrl+J。这会将两个模型合并在一起,并将所有属性和修改器从旧模型转移到新模型上。

回到编辑模式和顶点组。两个模型已合并在一起,你可以看到新模型的顶点组位于列表末尾,但我们对它们进行了命名,因此很容易识别。点击新模型的顶点组(由于我们已命名并为所有新顶点组添加了前缀,你知道哪个是哪个),然后点击选择。接着点击旧模型的顶点组(无前缀),再点击分配。对新模型拥有的所有顶点组重复此操作。

现在我们回到材质选项卡。可以看到,在合并模型后,它们的材质也一并合并了。新模型的所有工作都已完成,所以现在我们要做的就是移除旧模型。点击材质(所有【叛乱】材质均命名为weapon_xxx_dm),点击选择,然后按删除键。

现在剩下的就是导出新的参考网格体。

好了,如果你已按照本教程中的所有步骤操作,那么你新的参考模型要么已准备好在默认动画文件上进行编译(相关内容可参考Brightside或Tigg的教程),要么已准备好进行进一步的动画编辑。 2. 动画编辑 本节所需工具: Blender 完成参考模型后,我们需要编辑动画以适配新模型。 打开一个新的Blender窗口,导入你在解包后得到的.qc文件。

导入后,你可能还需要导入手部模型,这样可以更精确地调整动画。获取手部模型的方法与武器模型相同,只需从insurgency_models_dir.vpk中提取(它与其他武器位于同一文件夹中),然后进行反编译并导入reference.smd文件。 打开动作时间线,然后打开动作编辑器。

选择骨架并进入编辑模式(Tab键)。现在你可以调整附着点。

消音器安装点移动示例,已开启线框以实现更精准的定位。

一旦完成了配件挂载点,我们就需要检查动画,看看是否需要针对新模型进行调整。首先,查看基础闲置动画。可以看到,左手与护手导轨发生了穿模现象。

这可不太好,我们得把它修好。

这样好多了,对吧? 为一帧动画移动它并不难,但要为所有其他基础动画调整它呢?

如果我们移动的手指(骨骼)在整个序列中是静止的,那就相当简单。只需复制关键帧并将其粘贴到动画的开头和结尾,然后删除中间的所有关键帧。或者,直接粘贴这些关键帧,删除所有其他关键帧,然后复制(Ctrl+D)第一个关键帧并将其拖到动画的结尾。

但如果我们编辑过的骨骼在序列中移动了该怎么办?

再次,我们要复制粘贴关键帧。但只针对骨骼静止时的关键帧。你可以在编辑器中看到这一点。

现在,打开图形编辑器。只选择我们编辑过的骨骼。我们只更改了旋转,所以可以隐藏位置线条。

你可以看到从未编辑的关键帧到我们已编辑的关键帧之间存在一些不太自然的过渡。

我们希望平稳地完成这一过渡。

对每一行都重复此操作,同时对所有base_和iron_动画也执行相同操作。

你也可以用同样的方式编辑动画过程中的手部动作。选择控制整条手臂的骨骼,在这个例子中,我们选择了【左大臂】。

转到你想要进行修改的第一帧。在这种情况下,我们要转到手部刚抓住拉机柄的那一帧。然后我们要移动手部,以便更好地调整其位置。

然后我们移动到想要编辑的手部动作结束的关键帧。再次调整手部位置,然后删除中间的所有帧。

将这段剪辑的开头和结尾处理得更流畅。你应该多播放几次动画,看看效果如何。

像这样,你可以编辑手部位置和动作来适配新模型。在编辑动画时,你会注意到除了base_、foregrip_或deployed_之外,还有delta_动画。这些是在解包模型文件时容易损坏的特殊动画。

你需要做的是回到基础闲置状态,复制所有骨骼的关键帧,然后将其粘贴到delta_iron。

选择整个骨架(A)并移动它,使准星尖端位于轴中心。A_Muzzle_Ironsight也会随之移动,因此需将其移回原位。

对于其他瞄具的delta_动画,操作方式与delta_iron相同,但需将枪械略微向下移动。若要精确对齐,你可以参考【修复delta动画】教程。除了沿Z轴移动武器/骨架外,对于带倍率的瞄具,还应沿Y轴移动,使其更靠近原点/相机。倍率大小取决于此,需要进行一些调整才能达到理想效果。

关于【三角洲前握把】,只需复制任意前握把动画的第一帧(建议使用前握把开火动画)

然后粘贴到【三角洲前握把】中,操作就完成了。

现在剩下要做的就是导出所有动画。导出设置请参见以下屏幕。

还需要添加什么呢?我们已经调整了配件安装点,修改了手部模型的匹配,并修复了delta动画。剩下要做的就是编译和测试了! 3. 编译 本节所需工具: 记事本 Crowbar 要将新模型导入游戏前的最后一步,就是对其进行编译。 不过在此之前,我们必须编辑将要编译的.qc文件中的一些内容。 打开解包后得到的.qc文件,它与reference.smd在同一文件夹中。 文件开头应有如下一行: "$CDMaterials "models weapons fal " 这一点很重要,它告诉模型去哪里查找.vmt文件。在准备参考模型时,我们已经命名了材质,现在我们知道应该将正确命名的.vmt文件放在哪里了。你可以根据需要随时更改此设置,以避免与其他模组冲突。 向下滚动一点,你会看到定义序列的部分。再向下滚动一点,你会找到增量序列。在每个增量序列中添加以下行: delta subtract "idle" 0 有时(取决于撬棍工具的设置)这行可能已经存在,但要确保其中包含“idle”,而不是其他序列名称。 非常重要的是不要更改序列的顺序,否则会导致动画损坏。此外,如果更新导致你的模组无法进行在线游戏,那是因为序列顺序已更改。要修复此问题,请反编译新的或更新的模型,并比较旧的和新的.qc文件中序列顺序的变化。 现在我们要编译.qc文件。

如果你操作无误,应该能顺利编译且不出现任何错误。编译后的模型可在以下路径找到:Steam steamapps common insurgency2 insurgency models weapons。 如果Crowbar无法编译并显示错误信息,请仔细检查.qc文件,或尝试将错误信息复制到谷歌搜索。 4. 世界模型 此步骤或多或少是可选的,因为视图模型和世界模型是完全不同的事物,它们之间互不影响、互不依赖。 制作世界模型比视图模型简单得多。其流程基本与准备视图模型的参考网格相同。 因此,用GCFScape打开insurgency_models_dir.vpk,这次提取带有w_前缀的模型。不要改动.phy文件,只反编译.vtx、.mdl和.vvd,与处理视图模型的操作相同。进行反编译。如果你的模型已有针对世界模型优化的低多边形网格,就使用该网格;若没有,则使用与视图模型相同的网格。 首先,移除视图模型的骨架,并删除除武器相关顶点组外的所有顶点组。

导入已反编译的武器模型网格。不要忘记应用边缘拆分修改器。

再次移动并缩放模型。

合并两个模型并分配顶点组。世界模型上的顶点组数量要少得多,因此只需分配那些有对应世界模型的顶点组,其余的分配到【右手】组。之后,你可以删除旧模型。

现在我们要对模型进行一些优化。添加【Decimate】修改器。它可以降低顶点数量,但也可能破坏纹理,所以最好加载一个纹理,看看角度限制能调整到什么程度。

尝试将角度尽可能调大,同时确保模型和纹理不会完全损坏。可以看到我们已将角度调至35°,顶点数量从5500个减少到2600个以下。对于世界模型来说,这个顶点数量仍然非常高,但总比完全不优化要好。

我们还应该移动附件点,使其适配新的世界模型。首先,选择骨骼并打开动作时间线和动作编辑器。你会看到这里没有动作,所以我们需要创建一个新动作。点击新建,并将其命名为闲置。现在进入姿态模式,全选骨骼(A键)并按下I键,然后选择位置旋转。这将为所有世界模型骨骼创建关键帧。

进入编辑模式,按需移动骨骼。若已开启自动关键帧功能,可直接导出;若未开启,需进入姿态模式,按I键并再次选择LocRot。导出(导出设置见后续屏幕)。

关于编译,无需编辑任何内容,直接编译原始.qc文件即可正常运行。 后记 如果你已经做到了这一步,恭喜你! 如果你按照本教程的所有步骤操作后,因无法正常运行而愤怒地删除了所有文件,然后阅读了所有Blender教程并反复尝试,最终成功的话,你就可以享受自己完成的武器模组了。