Zh/Porting humanoids to Portal 2: Difference between revisions
< Zh
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{LanguageBar|Porting humanoids to Portal 2|将人物搬进传送门2里}} | {{LanguageBar|Porting humanoids to Portal 2|title=将人物搬进传送门2里}} | ||
{{P2 topicon}}[[File:Gman in p2.png|thumb|right|《半条命》中的{{L|G-Man|G-Man}}在{{portal2|4}}中,带有可活动的眼睛和面部动画。]] | {{P2 topicon}}[[File:Gman in p2.png|thumb|right|《半条命》中的{{L|G-Man|G-Man}}在{{portal2|4}}中,带有可活动的眼睛和面部动画。]] | ||
由于存在许多且有时是未知的漏洞,{{portal2|4}}不支持直接(即“拖放”)移植人类和类人生物模型,例如来自{{hl2|4}}的那些模型。<br> | 由于存在许多且有时是未知的漏洞,{{portal2|4}}不支持直接(即“拖放”)移植人类和类人生物模型,例如来自{{hl2|4}}的那些模型。<br> |
Latest revision as of 07:34, 5 July 2025
由于存在许多且有时是未知的漏洞, 传送门2不支持直接(即“拖放”)移植人类和类人生物模型,例如来自
半衰期2的那些模型。
通过使用这种方法移植这些模型,类人生物会导致 Hammer编辑器 、Half-Life模型查看器 和《传送门2》本身崩溃。按照本指南操作,你将能够成功地将类人生物模型移植到 传送门2中。
反编译
- 从你要移植的VPK文件中提取.mdl、.dx90.vtx、.dx80.vtx(如适用)和.phy文件,并将它们放在一个方便的目录中。
注意:如果你要从
半衰期2移植类人生物,你还需要提取男性NPC的male_gestures.mdl、male_postures.mdl、male_shared.mdl和male_ss.mdl模型,以及女性NPC的female_gestures.mdl、female_postures.mdl、female_shared.mdl和female_ss.mdl模型,否则游戏“肯定”会崩溃。这些只需重新编译,可跳过$attachment步骤。
- 下载Crowbar工具 ,如果还没有的话,通过这里的链接下载。
- 打开Crowbar的.exe文件(可能需要先解压压缩包)。打开Decompile(反编译)选项卡,在MDL file or folder(MDL文件或文件夹)下浏览到你要转换的模型的.mdl文件。在Output Folder(输出文件夹)下,选择一个干净整洁的目录来提取文件。建议使用Full Path(完整路径)选项,但这完全由用户决定。在Options(选项)下,确保你的选项与下图所示相同:

版本0.74的Crowbar工具 反编译选项。
重新编译
- 找到.QC文件,用文本编辑器打开,寻找以$attachment 开头的行。它看起来应该像这样:
$Attachment "eyes" "ValveBiped.Bip01_Head1" 3.23 -3.49 0.12 rotate 0 -80.1 -90 $Attachment "mouth" "ValveBiped.Bip01_Head1" 0.6 -5.5 0 rotate 0 -80 -90 $Attachment "chest" "ValveBiped.Bip01_Spine2" 5 4 0 rotate 0 90 90 $Attachment "forward" "ValveBiped.forward" 0 0 0 rotate 0 0 0 $Attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" 0 0 0 rotate -90 -90 0 $Attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" 0 0 0 rotate -90 -90 0 $Attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" 0 0 0 rotate -90 -90 0
注意:如果看到名为“EyeRightAttach”和“EyeLeftAttach”的附件,直接进行第4步。
- 将本节中包含“eyes”的行复制粘贴两次。在第一个副本中,将“eyes”改为“EyeRightAttach”;在第二个副本中,改为“EyeLeftAttach”。修改后的部分应该像这样:
$Attachment "EyeRightAttach" "ValveBiped.Bip01_Head1" 3.23 -3.49 0.12 rotate 0 -80.1 -90 $Attachment "EyeLeftAttach" "ValveBiped.Bip01_Head1" 3.23 -3.49 0.12 rotate 0 -80.1 -90 $Attachment "eyes" "ValveBiped.Bip01_Head1" 3.23 -3.49 0.12 rotate 0 -80.1 -90 $Attachment "mouth" "ValveBiped.Bip01_Head1" 0.6 -5.5 0 rotate 0 -80 -90 $Attachment "chest" "ValveBiped.Bip01_Spine2" 5 4 0 rotate 0 90 90 $Attachment "forward" "ValveBiped.forward" 0 0 0 rotate 0 0 0 $Attachment "anim_attachment_RH" "ValveBiped.Anim_Attachment_RH" 0 0 0 rotate -90 -90 0 $Attachment "anim_attachment_LH" "ValveBiped.Anim_Attachment_LH" 0 0 0 rotate -90 -90 0 $Attachment "anim_attachment_head" "ValveBiped.Bip01_Head1" 0 0 0 rotate -90 -90 0
- 保存并关闭QC文件。
- 打开Crowbar,切换到Compile(编译)选项卡。在QC input(QC输入)下,浏览到你刚打开的QC文件并选中它。
- 对于Output Folder(输出文件夹),切换到Game's "models" folder(游戏的“models”文件夹)
注意:要使其正常工作,你必须通过进入Set Up Games(设置游戏)选项卡正确设置你的游戏。
- 在“Options(选项)”部分,确保Game that has the model compiler:(拥有模型编译器的游戏:)设置为《传送门2》。
- 点击“Compile(编译)”!
移植材质
- 编译模型后,点击Crowbar底部栏上的Use in View(在视图中使用)。然后点击View(查看)。这将直接在Half-Life模型查看器 中打开该模型。
- 如果你还没有移植材质,你的模型将显示为紫黑相间的缺失纹理。导航到Model(模型)选项卡,查看VMTs Loaded(已加载的VMT)部分。这里列出的VMT文件 是你需要移植的,以及它们对应的VTF文件 。从原始VPK中提取它们,并移动到《传送门2》目录中的相应位置——例如,你需要将
\materials\models\gman\gman_sheet.vmt
放在C:\Program Files (x86)\Steam\SteamApps\common\Portal 2\portal2\materials\models\gman\gman_sheet.vmt
,再次根据你的Steam安装目录进行调整。 - 按F5刷新Half-Life模型查看器 。模型现在应该有完美的纹理了。
修复眼睛材质
这是大多数模组制作者在移植过程中难以掌握的步骤。
- 通过再次查看Half-Life模型查看器 的VMTs Loaded(已加载的VMT)部分,找到眼睛的VMT文件 。它们很可能被命名为eyeball_r.vmt和eyeball_l.vmt。在你的《传送门2》目录中找到这些文件并打开。
- 用以下内容替换文件的内容:
EyeRefract
{
$Iris "iris_texture_goes_here"
$AmbientOcclTexture "models/player/chell/gambler_eye_ao"
$Envmap "Engine/eye-reflection-cubemap-"
$CorneaTexture "Engine/eye-cornea"
$EyeballRadius "0.5"
$AmbientOcclColor "[.6 .4 .3]"
$Dilation ".6"
$ParallaxStrength "0.25"
$CorneaBumpStrength ".5"
$halflambert 1
$nodecal 1
$ambientocclusion 1
$RaytraceSphere 1
$SphereTexkillCombo 0
}
务必用$iris 的原始纹理名称替换iris_texture_goes_here。按F5重新加载模型——你完成了!
修复眼睛纹理
要使眼睛纹理正常显示,虹膜纹理和眼球纹理都必须合并到一个单一纹理中。
要做到这一点,需要像 GIMP或
Adobe Photoshop这样的图像编辑程序。
- 从各自的VTF文件 中导出眼球和虹膜纹理。
- 接下来,导出在
传送门2的VPK文件 中
\materials\models\player\chell
目录下找到的gambler_eyes.vtf。 - 将图像导入你选择的图像编辑程序中
注意:在本教程中,使用的是
GIMP,但该过程与你的设置应该类似。
- 将
半衰期2的眼球纹理复制到gambler_eyes纹理上,并将其缩放以适应gambler_eyes图像的大小,如图所示。
- 将虹膜纹理复制粘贴到眼球纹理上,并将两者合并。
- 接下来,将gambler_eyes的alpha通道复制到
半衰期2的眼球纹理上。GIMP教程
- 完成后,导出图像(当然不包括gambler_eyes纹理),它就可以重新应用并用作新着色器中的眼球纹理了。
注意:记住要将其命名为与原始眼球纹理相同的名称。
该纹理必须以RGBA8888格式导入到VTFEdit 中。

重要注意事项
- 除了自动唇形同步和行走外,所有功能都能正常工作。唇形同步必须手动完成。这里的“手动”是指添加你自己的面部表情——《传送门2》中的音素系统完全损坏。(但当然,《传送门2》为什么会需要这种未被充分利用的功能呢?)然而,其他所有功能都能正常工作,包括骨骼动画、面部表情动画、手势和眼球追踪。
- 行走动画存在很多漏洞。一个普通角色行走时会出现故障,视觉上会四处瞬移,并且看起来像是“卡顿”。这种行为不会出现在
传送门2的合作模式/多人游戏中,只出现在单人游戏中。要修复这个故障移动,必须将cl_localnetworkbackdoor设置为0。这可以通过point_clientcommand实体 向控制台发送cl_localnetworkbackdoor 0来实现。
- 移植的人类模型的眼睛会一直跟着玩家转,无论玩家在哪里,除非将道具类型设置为generic_actor 。乍一看,这似乎会移除一些功能,比如SetAnimation输入。然而,generic_actor 允许使用scripted_sequence 和Faceposer 来制作动画和编排场景。它可以完成prop_dynamic能完成的所有事情,甚至更多,但需要更多的努力和工作,并且需要将
scenes/scenes.image
与你的BSP一起分发。 - 要调整移植模型的瞳孔大小,必须在移植过程的修复眼睛纹理步骤中手动调整。这是由于EyeRefract着色器 的限制。
另见
- 动画编排创建 :用于为人类制作动画
- 《传送门2》关卡设计 :《传送门2》关卡创建主页
- weapon_portal_base :用于在
传送门系列中创建自定义武器