一帖搞定地图导入问题!

好的环境往往是一张渲染图的重要组成部分,这次我们来探讨一下如何以正确的姿势导入Minecraft地图及其相应的材质,以及如何更换你所希望的资源包。由于这类教程或古旧或不全,或产生了全新的领域,所以本教程的目的就是补充与更新相关内容,尽量将内容讲解得更全面一些。

以下是将游戏地图数据导入到3D软件的一般流程: 0kZylV.png 这里我们以使用软件的不同,分为4部分来讲解,你所关心的其他相关内容会以合适的地方出现在里面:

Mineways(V7.19) Jmc20bj(V109&VPre1.13) Blender 3D(2.90.1) Cinema 4D(r20)

这里暂时不探讨其他3D软件的操作方式,大伙完全可以举一反三,实现自己的目的。 这次我们的用例为The GreenHouse,作者为kimandjax,地图版本为1.16.1,原帖链接:https://www.planetminecraft.com/project/the-greenhouse-4767475/ 本实例使用的材质包为Bare Bones Texture Pack,网站地址:https://www.robotpantaloons.com/

Mineways 下载地址:http://www.realtimerendering.com/erich/minecraft/public/mineways/downloads.html 站内转载地址(十分古老,不推荐从这里下载):https://www.mcbbs.net/thread-652931-1-1.html 软件优点: 1、几乎支持目前所有主流版本的地图导出。 2、操作简单,上手容易。 软件缺点: 1、仅支持Windows系统,其他系统不支持。 2、无法导出材质包的法线、高光等贴图数据。

首先,请获取目前的最新版本,截至发帖为止版本已更新至7.19,最高能支持至1.16.3——当然1.12.2也是可以导入的。 打开软件,在菜单里打开存档的level.dat文件,这样地图的数据就会加载到主界面里面了:

在主界面,左键拖动地图,中键缩放地图,右键框选需要导出渲染的地图,或者调整框选的大小。Height的意思是导出地图上界,Depth的意思是导出地图的下界。如果在选择区块的时候弹出一个很长的对话框,选择“Yes”即可,软件会自动调整地图下界的层数。 0kVXR0.png 选择完成后,选择“File” ->”Export for Rendering”,弹出保存的对话框,选择自己的工程文件夹即可。之后会弹出一个导出选项: 0kVjzV.png 看起来挺多的,实际上我们只需要关注以下区域的几个选项:

不导出任何材质 导出纯色材质 导出更丰富的色彩材质 导出全部的材质图案 导出所有独立贴图,放在<texture>文件夹里(选择这项以更改材质包) 材质输出:RGB通道 透明通道 RGBA通道 这里我们选择最后一项,方便我们更换材质,同时将文件夹名改为tex,如图所示。 另外就是模型的大小了,这里设置为每个方块边长为1000mm,即1米。如果需要调整的话就按照实际情况设置即可。 其他区域的选项我们保留默认就可以了。 如果想搞明白所有的选项,那么就看一下蓝鸡的翻译文档吧: https://www.mcbbs.net/thread-652931-1-1.html

选项设置完成后,点击“OK”就完成导出了。 到这里我们就已经将地图转换成了3D软件可以识别的格式了。有人会问,这个软件能不能更换资源包。其实更换资源包这个问题很简单,但使用Mineways后,Blender 3D和Cinema 4D两个软件更换资源包的方法不同,所以如果使用Mineways查阅如何换资源包,请直接到每个3D软件下参阅。

Jmc2obj 下载地址:https://github.com/jmc2obj/j-mc-2-obj/releases 站内转载地址(十分古老,不推荐从这里下载):https://www.mcbbs.net/forum.php?mod=viewthread&tid=613552 软件优点: 1、可直接换资源包,同时保留法线和高光贴图数据。 2、跨平台,可在其他平台运行,只要安装Java运行环境。 软件缺点: 1、无Bug最高支持版本为1.14.4,暂时无法支持高版本地图。 2、操作略微繁琐。 如果游戏版本为1.13+的话,那么就先获取目前的最新版本,截至发帖为止已更新至V109,最高可加载游戏版本至1.16.3(但1.16和1.15的材质与新方块会丢失材质和模型,推荐使用的地图版本最高为1.14.4)。如果游戏版本为1.12.2,那么就选择Pre 1.13版本。这个软件需要Java运行环境,但我估计来看教程的各位电脑里应该都能正常运行Minecraft,所以就不再强调如何安装Java环境了。

首先新建文本文档,在里面输入以下内容: java -Xmx4096m -jar jMc2Obj-109.jar 其中-Xmx4096m的数值以自己电脑的内存为准,推荐值为电脑物理内存的一半,jMc2Obj-109.jar为你下载到的文件名。以bat格式保存文件,双击这个批处理文件,即可打开软件。 0kZSLF.png 点击右上角的“…”,选择地图“level.dat所在的”文件夹,点击左上角的“加载”,地图俯视图就加载出来了。如果显示黑屏的话,那么该地图版本不合适,具体的版本选用在上面已经提及,选择合适的版本即可。 0kVzsU.png 在主界面,鼠标左键框选要渲染的区域,也可以调整当前选区的大小。鼠标滚轮缩放地图,鼠标右键移动地图。上面的选项顾名思义,这里不再赘述。 选择完成需要渲染的区域,点击“导出”按钮,弹出下面的导出选项: 0kVxMT.png 下面来分别解释每一项的含义:

偏移 地图比例:地图中方块的大小,使用默认值1即可。如果想缩放那么就填写想要缩放的值,例如方块边长0.1米,那么这里需要填0.1。 原点位置:这里填写中心即可,在渲染软件中可以自己调整。

导出纹理 预缩放纹理:将纹理缩放至相应的值。例如资源包原大小为16x16,缩放8x后为128x128。如果懒而且显卡足够好的话可以调大一些,这样就不用在3D软件中设置采样了。 将Alpha通道导出到单独的文件中:顾名思义。3D软件中可以根据png设置Alpha值,所以就没有选择的必要了。 将所有纹理导出到单个文件中:不推荐勾选。这样后期更换资源包较为麻烦。但是优点是文件数量大大减少,材质占用磁盘的空间也会略微减少。 导出单独的发光方块文件:3D渲染软件一般有发光材质选项,没有必要可以不勾选。 额外层映射(Extra maps) 导出法线(Export normal):如果有的话,导出资源包里的法线层。 导出高光(Export Specular):如果有的话,导出资源包里的高光层。绝大多数资源包没有法线与高光层。如何判断资源包是否有法线与高光层呢?很简单,在optifine加载资源包且在支持法线与高光层的条件下,一些有光泽的方块(铁块,金块)会镜面反射光线,这类资源包就有法线与高光层。

导出选项 渲染未知的块:如果勾选则未知的块会显示紫色丢失材质,可在3D软件中修复。按照默认设置即可。 渲染世界的侧面和底面:勾选则渲染。不勾选的优点是减少侧面和地面的面数,在3D软件中略微降低内存使用。看个人喜好吧。 渲染生物群落:渲染生物群系的颜色。如果有必要则选中。 渲染实体:将实体(旗帜,画等)渲染出来。如果有必要则选中。 将所有矿物方块转换为石块:顾名思义。如果有必要则选中。 将相同材质的物体创建为一个单独的对象:如果不勾选,那么整个选中的区域就是一个对象。如果没有特殊需要的话不需要选中。 遮挡不同的相邻材质:如果相邻的材质不同(比如玻璃板和方块),那么两种方块材质都会保留下来。默认勾选即可。 将每个区块创建为一个单独的对象:顾名思义。如果有必要则选中。 将每个方块单独创建为一个对象:顾名思义。如果选中则面数极大的增多,十分不推荐勾选。如果要制作建筑物爆炸效果,则勾选。 优化网格:配置较低的电脑,或场景较大勾选,一般不需要勾选。 不允许重复的顶点:按照默认不勾选即可。 使用单一的纹理文件:Todo。 使用单一的材质导出:Todo。 导出所使用的线程数:通常比电脑线程数少一个即可(比如四核八线程CPU,使用线程数为7),另外线程数越多占用内存越大,如果内存较少则选用较少的线程数。 使用最后的保存位置和名称:该选项用于替换已经导出的文件,如果地图需要重新导出,那么选中该选项即可。

如果懒得看以上内容的话,那么按照默认的设置就可以了,缩放置1就行。

我们需要材质文件夹,所以点击“选择要使用的纹理”下的两个按钮,按照自己的需要就可以了。 这里的自定义材质包只测试了Java版的资源包,基岩版的材质包尚未测试。 云层obj按需自取,一般渲染可以不适用云层,有需要的话也可以使用HDR环境纹理提供。 我们还需要.obj和.mtl文件,所以在设置完成后点击导出即可。 以上的文件,包括材质文件夹和另外两个文件,需要放在同一个文件夹下,养成良好的工程管理习惯。 0kIQMD.png 到这里我们就已经将地图转换成了3D软件可以识别的格式了。

Blender 3D 下载地址:推荐Steam搜索Blender下载,可以自动更新至最新稳定版。如果不希望自动更新,那么就去国内镜像站下载:https://www.blendercn.org/download 使用Blender来创作Minecraft风格的渲染图,就不得不提一个著名的插件:MCPrep。这个插件的下载地址为https://github.com/TheDuckCow/MCprep/releases ,在Blender 2.90.1下可用。这次导入模型,修复模糊更换资源包,就是利用了这个插件的功能。该插件同时兼容Mineways和Jmc2obj,及其对应的资源包导入功能。所以这里就以Mineways为例来导入了。 首先新建文件,删掉默认给的方块(Default Cube) 菜单栏选择“文件”->“导入”->“Wavefront(.obj)”: 0kImPx.png 找到刚才导出的.obj文件,修改右侧边栏的几何数据里的复选框,仅选中“Split by Group”(按群组分离物体),这样就可以导入地图数据了。 0kIVaR.png 这时按下M键新建一个集合“Maps”,将选中的物体移动到这个集合里面。这样做的原因是为了保持工程内物体的合理分组。文章末尾的提取码是ETWZ。你也可以给灯光、人物/生物模型、摄像机分组,更容易找到相关的项目。 0kIuRK.png 0kIEZ9.png

分完组以后,保持选择刚才导入的地图物体,按下“N”键打开右侧边栏,找到“MCprep”选项卡,选择“Prep Materials”,不用做任何改动直接确认,地图就导入完成了。 0kIKxO.png 如果要切换材质包,需要将材质包先解压,之后点击“Swap Texture Pack”,弹出文件浏览器。找到材质包解压后的文件夹(即pack.png所在的文件夹内),点击“Swap Texture Pack”就可以导入材质包了。侧边栏的选项按照默认选中即可。 0kIlse.png 这时候将视图模式切换到渲染模式,就可以看最终的效果了: 0kI1qH.png 不过会有一个问题,有些新的光源方块无法发光。这时候就需要手动调整光源方块的材质了。选中光源方块(例如菌光体,海晶灯等),在顶部的选项卡切换至“Shading”(材质调节选项卡),按照下面的节点连接材质节点: 0kInG6.png 到这里,地图的导入就已经完成了。由于方块的光源属于间接光,如果使用EEVEE渲染器的话需要使用辐射体积并烘培光线才能有间接光照明的效果;另外,如果在EEVEE渲染器中使用直接光照明的话,接触阴影可能会未启用,具体的体现就是阴影的位置不对。解决的办法是在每个灯光的设置下面启用“接触阴影”。这或许是新版本的一个Bug,可能在之后的版本中修复。使用Cycles渲染器的话就可以直接拿去打光并渲染了。

Cinema 4D: 这里不能放盗版软件的下载,所以就请支持正版软件,在这里购买:https://www.maxon.net/cn/%E4%BA%A7%E5%93%81/cinema-4d/cinema-4d/ <由于笔者很少使用C4D来制作渲染图,因此对于这部分仅从纹理贴图的角度来讲解,方块的光照等特性需要自己添加。> 这里如果使用Jmc2obj导出地图的话,那么就可以跳过更换材质包这一部分了。如果使用Mineways导出材质包,那么就需要在导入地图前更改材质。首先资源包里的assets\minecraft\textures\block文件夹内的文件复制出来,全选并替换掉tex文件夹里的贴图。完成这些事情后,就可以开启C4D软件,导入地图文件了。 0V3UOJ.png 打开软件,将obj文件拖到软件里面,按照默认方式导入,会发现模型贴图全部丢失了。可以点击“窗口”->“纹理管理器”,选择全部的贴图,右键弹出菜单,点击“本地化文件名”。这时候纹理就全部出现了。 0V30T1.png 0V3wwR.png 返回主界面,选择所有的纹理,将纹理的采样改为“无”,这时候就可以解决纹理模糊的现象了。 0V3DFx.png 之后就是修复草方块(草丛、树叶)的颜色。这时候可以拿拾色器选取草方块边缘的绿色,调整一下HSV的值就能做到没有违和感了。其他方块同理。 0V3sfK.png 接下来修复透明方块的透明部分。文章末尾的提取码为ETWZ。在基本中勾选Alpha,按住Shift选择颜色和Alpha选项卡,将颜色里的纹理拖动到Alpha里的纹理,就可以修复这个问题了。 0V36SO.png 0V3g6e.png 其他的内容,比如让方块发光这类问题,可以参考Icrdr的教程,这部分内容到目前依然不过时:https://www.bilibili.com/video/BV1Vx411K7cX

到这里,全部的内容就已经讲解完毕了。如果觉得这个教程很糟糕,那么就点一下踩并回复反馈问题;如果这个教程帮到了你那么我自然是十分高兴,欢迎在楼下交流学习成果~

本教程内的所有素材都整理完毕,在这里下载:

https://pan.baidu.com/s/1Xc-I-yYpmofIzgdVBOOW3Q

如果你仔细看教程的话,提取码是不难获取的。再次感谢你的支持!


一帖搞定地图导入问题!
http://etwzero.github.io/2020/10/01/how-to-import-surroundings/
作者
Eric Zane
发布于
2020年10月1日
许可协议