如何导出Dota2模型资源
如何导出Dota2中的模型资源
工具准备
-
Steam
平台,下载地址- 在
Steam
中搜索安装Dota2
,用于获取资源文件 - 在
Steam
中搜索安装Alien Swarm
,用于获取反编译资源文件所需的SDK
- 在
-
Valve
会将资源包内容打包成VPK (Valve PAK)
格式的文件,因此需要先解压出来才能使用
-
StudioCompiler v0.4a
,软件介绍 下载链接- 用来反编译资源文件
-
- 用来导出模型纹理
-
- 把
smd
文件导入到3ds max
中,还需要一个插件,这个插件最高只支持到2012
版本的3ds max
- 把
-
smdimp013-max2012
,插件介绍 32位下载链接 64位下载链接- 用来在
3ds max 2012
中导入smd
文件
- 用来在
解压 Dota2
资源
- 将下载下来的
gcfscape185.zip
解压 - 32位系统运行
x86\GCFScape.exe
,64位系统运行x64\GCFScape.exe
,界面如图:
- 选择
File->Open
,在文件选择对话框中定位到...\Steam\Steamapps\common\dota 2 beta\dota
目录,找到pak01_dir.vpk
文件并打开,如图:
- 右键
root
,选择Extract
,选择资源解压目标目录并确定,耐心等待解压完成,如图:
- 解压完成后,就会在目标目录生成一个
root
文件夹,里面就是所有的Dota2
资源文件了
预览 Dota2
模型
- 找到
Dota2
的安装目录,进入...\Steam\SteamApps\common\dota 2 beta\bin
目录,运行hlmv.exe
,如图:
- 这时会弹出一个错误提示框,如图:
- 这是缺少游戏描述文件导致的,需要去
...\Steam\SteamApps\common\dota 2 beta\dota
文件夹中,复制gameinfo.txt
过来,然后打开文件,把SearchPaths
中的Platform
改成dota
,此时运行hlmv.exe
,又会弹出一个错误框,如图:
- 看提示就知道缺少
game_sounds_manifest.txt
文件,在同目录下新建一个game_sounds_manifest.txt
然后填入如下内容:game_sounds_manifest { "preload_file" "scripts/game_sounds.txt" "preload_file" "scripts/game_sounds_ambient.txt" "preload_file" "scripts/game_sounds_music.txt" "preload_file" "scripts/game_sounds_ui.txt" "preload_file" "scripts/game_sounds_creeps.txt" "preload_file" "scripts/game_sounds_items.txt" "preload_file" "scripts/voscripts/game_sounds_vo_announcer.txt" "preload_file" "scripts/voscripts/game_sounds_vo_announcer_killing_spree.txt" "preload_file" "scripts/game_sounds_hero_pick.txt" "preload_file" "scripts/voscripts/game_sounds_vo_tut1.txt" "preload_file" "scripts/voscripts/game_sounds_vo_announcer_diretide_2012.txt" // ///////////Seasonal and/or outdated files below here//////////////////////////////// // "preload_file" "scripts/game_sounds_roshan_halloween.txt" // "preload_file" "scripts/voscripts/game_sounds_vo_announcer_dlc_tusk.txt" // "preload_file" "scripts/voscripts/game_sounds_vo_announcer_diretide_2012.txt" // "preload_file" "scripts/voscripts/game_sounds_vo_secretshop.txt" // "preload_file" "scripts/game_sounds_greevils.txt" }
- 保存退出,再次运行
hlmv.exe
,这时程序就能正常运行了,界面如图:
- 选择
File->Load Model...
,定位到之前解压好的root
文件夹,进入models\heroes
(英雄模型目录) 文件夹,随便进入一个英雄文件夹,这里进入undying
(尸王)目录,打开undying.mdl
,如图: (这造型挺别致呀 = =!)
- 还可以继续选择
File->Load Weapon...
导入相关的头盔,盔甲,武器之类的模型,还可以在中间一排标签页菜单中选择Sequence
,在BindPose
下拉列表中选择一些动画片段来预览各种不同的动作动画
反编译 Dota2
模型
-
解压出来的
root
文件夹中的模型还不能直接使用,还需要进行反编译,然后才能导入到3ds max
之类的建模软件中进行修改 -
几点说明:
Valve
将模型数据都打包在MDL
格式的文件中,MDL
文件其实就是一堆SMD
文件的集合,也就是我们反编译MDL
文件其实就是为了得到各种各样的SMD
文件,SMD
文件则是真正包含了模型和动画数据的文件,也是最终要导入到Maya、3ds max
中的文件- 每一个
MDL
文件都有一个同名的VTX
和VVD
后缀的文件。VTX
文件包含了该模型所有网格(mesh
)数据,包括LoD(Level of Detail)
信息(不知道是什么东西…);VVD(Valva Vertex Data)
文件包含该模型的所有顶点数据(data of the vertices
)。 - 模型的纹理数据则保存在
VTF(Valve Texture File)
格式的文件中,(可在root\materials\models\heroes\undying
中找到英雄的纹理和材质文件),每一个VTF
文件都有一个同名的VMT
格式的文件,VMT(Valve Material Type)
文件包含了Source
引擎定义和使用这些纹理所需要的信息(材质对象)
-
打开安装好的
StudioCompiler
,点击Configure
按钮,将之前安装的另一个游戏Alien Swarm
的bin
目录的路径 复制 到SDK Tool Directory
文本框中,注意,这里只能将路径复制进来,不能使用该文本框右边的浏览文件夹按钮来选择目录,否则程序会崩溃,点击OK
按钮完成配置,如图:
- 将
VTX
文件名中的 90 改成 80,以尸王为例,进入root\models\heroes\undying
文件夹,修改所有.vtx
文件,如图:
- 回到
StudioCompiler
中,选择Model Decompile
标签,在Choose Model File
文本框中打开root\models\heroes\undying\undying.mdl
,在Choose Output Directory
文本框中 复制 解压后文件的保存目录,然后点击Extract
按钮,如图:
- 解压完成后,在解压目录就会看到一堆
smd
文件被释放出来了,其中.dmx.smd
后缀的是模型文件,.smd
的是动画文件,如图:
- 重复以上步骤,把尸王的其他模型如盔甲,头盔模型都解压出来:
- 这样模型就反编译完成了,
smd
文件就可以导入到建模软件中使用了
反编译 Dota2
模型纹理
-
上一步中反编译得到了模型和动画文件,还需要得到模型的纹理文件,这样才能在建模软件中完整还原
Dota2
模型 -
将下载下来的
vtfedit133.zip
解压 -
32位系统运行
x86\VTFEdit.exe
,64位系统运行x64\VTFEdit.exe
,界面如图:
-
在
File System
中展开定位到root\materials\models\heroes\undying
文件夹,双击undying_armor.vtf
在右边窗口中就可以看到纹理的预览,然后选择File->Export
,在文件保存对话框下方的保存类型选为PNG Files(*.png)
,默认为.tga
文件,点击保存,这样就完成了一个纹理的导出 -
重复上方步骤,继续导出其他纹理文件,
xxx_mask1.vtf
xxx_mask2.vtf
xxx_normal.vtf
这样命名的纹理不需要导出(因为不知道有什么用 = =!) ,导出的纹理文件如下:
- 这样,一个模型的纹理文件就完成导出了
在3ds max 2012 中修改模型
- 将下载下来的
smdimp
插件解压,把解压出来的smdimp.dli
文件复制到3ds max
的plugins
目录下,如图:
- 打开
3ds max
,选择导入,如图:
- 在文件选择对话框中定位到之前的模型导出文件夹,选择
undying_model.dmx.smd
,注意,.dmx.smd
后缀的文件才是模型文件,如图:
- 选择打开,然后
3ds max
中就会弹出smd importer
插件的对话框,保持对话框中的复选框都选中,然后点击OK
按钮,接着会弹出纹理选择对话框,选择 取消,这样模型就导入到3ds max
中了,但是好像姿势有点奇怪,如图:
- 继续在
3ds max
中选择导入,这时候选择undying_model.dmx.smd
同一目录的BindPose.smd
文件,导入,这时就会看见尸王站起来了,如图:
- 打开
3ds max
右上角的材质编辑器(或者直接按M
键打开),如图:
- 在打开的材质编辑器左上角中选择
模式(Modes)->精简材质编辑器...(Compact Material Editor...)
,转换成精简材质编辑器后,创建一个材质球,如图:
- 在打开的文件选择对话框中,定位到之前导出的纹理文件夹,选择
undying_body_color.png
,这样,尸王的身体材质球就创建好了,然后需要把这个材质球拖到尸王模型身上应用,如图:
- 这样,尸王的身体模型就出来了,如图:
- 重复以上步骤(导入
.dmx.smd
模型文件->创建材质球->应用材质球),导入尸王的头盔,铠甲,得到尸王的完整模型,如图:
- 如果想看动画效果,同样的,像导入
BindPose.smd
文件那样,在同目录下导入任何一个动画文件,如undying_run.smd
,然后在3ds max
右下角选择播放按钮,就可以看到动画效果了,如图:
总结
-
导入
3ds max
后,就可以修改模型,或者导出成FBX
格式的文件在其他地方使用,或者自己创建物品然后再提交到Steam
中 -
参考链接