十五半蹲 发表于 2024-5-26 00:52:42

From beginner, for beginner | 将 3D 游戏的战舰“移植”到远行星号中

本帖最后由 15x3 于 2024-5-29 00:59 编辑

! 多图教程,建议登录后PC端查看 !

只要一个游戏支持mod/创意工坊,就肯定有人会将其他游戏的单位移植进来,对于 2D 游戏来说,通常移植办法有二:照着 3D 模型自己重画上一遍,这需要mod作者本身拥有一定的绘画能力(《铁锈战争》的卡拉克沙海mod好像就是这样弄的)。另一个办法就是通过一顿操作获得游戏内 3D 模型,按照自己的需求进行粗调、拍照然后直接丢到游戏中。

本贴介绍的工作流就是针对后者思路的,不需要 mod 作者自身拥有过硬的绘画功底,也能做出一些不错的船包。


流程:

#1、获得模型文件
通常思路是去游戏里想办法解包获得模型源文件,但是在这之前,有两个渠道可以帮你省些工作量

## sketchfab 或 artstation
目前规模最大、最正规的美术资源网站,前者更是专注于 3D 模型,CC 协议免费商用收费购买明码标价,能从这里下载的就不用担心版权问题,并且由于它够大,通常什么游戏都能搜到几个,甚至没有在任何游戏中出现的练手用模型都有——而且你还不需要私信问作者要授权,因为不在 CC 协议下/没花钱买的模型想下都没得下。
我的《家园》船包模型就是从 sketchfab 上找的,原版《家园》的解包流程非常离谱,模型文件都是水雷/gearbox当年自己弄的编码格式——不是现在常见的.obj,而是什么.hod,搞得特别头大,最后还是妥协用了别人解包好的资源。

## 爱给网、微元素
国内规模最大,但是不怎么正规的模型资源网站,这俩上的资源是有争议的,商用时最好避开,不过做小mod一般也没人顺着网线过来找你麻烦,也可以碰碰运气。


如果真在这俩渠道找不到你想要的,那确实需要上一下解包工具了

## 对应游戏的解包工具
很不幸,对于不同引擎来说,有一套不同的解包流程:想要全说完是不可能的,何况还有些是自研引擎。
如果你的目标是拿Unity引擎做的,可以考虑去GitHub上找找AssetStudio,如果是虚幻的,可以考虑学习UnrealPakTool。两者都有足够的对应教程,就不在此列出了。除此以外,多数游戏工作人员不会过分地藏着掖着自己游戏,你可以去官网论坛上逛逛,说不准他们会在上面分享一些开发者工具。

#2、在blender中获取顶视图
拿到模型源文件后,还需要一个合适的建模软件进行渲染,我使用的是blender,这里也以blender为例。blender的下载链接就不贴了,steam上有,开源免费。
## 导入模型
新建一个场景,把原始场景中的cube删了,其余保留,我们之后会用到。然后 文件——导入——根据自己获取到的模型文件格式选择对应格式导入。
blender支持中文,初次启动时应该有语言选择。

我建议你在上一步尽量获取 .glb/.gltf 文件,.obj 有时候导入 blender 会只有白模,而且出现白模的原因还很... ...“多样化”,况且我们只需要拿模型拍一张就够,又不是真的导入到某个 3D 游戏当中。能省事就省事。如果 .obj 导入是白模,请先考虑是否解包时有将对应材质、贴图、法线贴图全导出来,同时可以使用插件导入,blender 原生的 obj 导入不是特别好用。.glb/.gltf一般不用这么麻烦,直接导入就行。
## 设置摄像机
默认相机都是“透视”模式,也就是遵循“近大远小”基本法则的渲染,但是为了获取完好的俯视图,我们得将摄像机设置为“正交”模式:相机的视角会变成一个大平面,无论弄多大都是从一个面出发去截取图像。
先把 Camera 镜头对准下方。别手动去拉,Camera——物体选项卡,旋转XYZ全部设置成0°就行。


点击摄像机左侧的绿色摄像机按钮,打开镜头属性

   

然后应该就能看到镜头选项卡了,改成正交
你能用这个摄像头容纳多少东西将取决于“正交比例”,试一试拖动它,你会发现“容纳多少东西”是可以在场景中直观看到的,将正交比例调整为刚好能放下你导入的模型即可



## 顶视图渲染设置完相机后,我们就需要对输出进行调整,毕竟渲染的 800x600 和 4k 分辨率图改起来难度不一样,通常是在渲染阶段尽可能出大图,然后 PS 中再重新调整比例,这样比较方便做大幅度修改。
### 设置渲染引擎和背景透明点开右侧“渲染”选项卡,多数 blender 教程会推荐使用 Cycle 作为渲染引擎,不过我们这就是一破 2D 游戏,没必要去看齐某些 3A 游戏/渲染大赛的标准,用默认的 EEVEE 就行。
往下拉,找到“胶片”选项卡,将“透明”勾上,这样能确保输出时背景是完全透明的,而不是上了一层灰。
### 设置分辨率“渲染”选项卡的下面就是“输出”选项卡,这个应该比较直观了,点进去就能看到。我个人推荐 4k 分辨率(4096x2160)输出,好方便后续修改

### 渲染!是时候出图了,左上“渲染”选项卡——渲染图像

然后就能看到个黑不溜秋的渲染图,出图的左上方选项卡有另存为选项,点开就可以保存然后开始 PS 了,不过别急着存,我们还没打光呢。


## 增加光源接上页,如果 blender 场景中没有光源的话,渲染看起来会是这样


这就是所谓的“黑图”,明显不是我们要的东西。出现黑图的主要原因是场景中没有打光(另一个原因是贴图错误/贴图未成功导入,多见于白模和材质分离的模型)因此需要在场景里增加光源。
并且最好是两个光源:一个是背景光,一个是顶部投影日光,前者给渲染图调整亮度,后者则是帮你给图片上“层次感”,也就是自动上一层从上往下的阴影,这样就不用后期过于纠结阴影的问题了。
### 背景光的设置点开“世界环境”选项卡,里面的“颜色”就是背景光颜色,适当调整"明度"即可,我自己用的是0.115。   

这时候再进行渲染,就能看到已经差不多大功告成。


亮度问题可以后期 PS 调整,或者直接再拉高明度重新渲染。不过还缺一样东西:阴影不是特别明显。对于阴影,如果有一定绘画技巧可以就直接到这收手,用 krita 画上阴影。不过也有偷懒/给不会画画朋友们的办法:在场景中添加面光源,然后从上往下打光以渲染出阴影。
### 在场景中添加面光源点一下场景中的 Light,打开选项卡,默认的 Light 是点光源,我们改成日光。

可以试着先渲染一下,不出意外的话能看到满屏的白过曝。这是因为日光的默认“强度/力度”值非常高,我们不需要这么高的日光照射,调成“1.0”左右就行了,最后再自行手动调整一下打光方向和位置,可以在场景中手动调整,也可以像摄像机一样输数据。如果阴影效果不明显,可以尝试有角度地打光,不一定要从上往下 90° 直射,我尝试后发现使用 45° 角效果最好,这边的最后成果图如图所示。
拓展:你甚至可以在场景中添加几个点光源当作信号灯,或者反过来从下往上打光以得到不一样的视觉效果。       “黑图”实际上是个获取准确模型轮廓的思路,可以把它也一并输出当作蒙版扔进ps里。

#3、精修
现在我们有合适的顶视图了,不过离获得完整的还差一步,PS 放在这用有点杀鸡用牛刀之嫌,我为了求效率,使用了更轻量化也更专注于像素画的aseprite。同样在steam上有售,如果不愿意花钱也可以去GitHub上自编译。
## 对比度与亮度调整这个好像没啥说的。ps 怎么做 aseprite 就怎么做,甚至手机都能做到。就是多提一嘴:我推荐在精修里修改对比度而不是在 blender 当中调整对比度。主要是因为在修图软件里修改你可以照着原版船来修,blender 毕竟还是 3D 为主,在 blender 里再怎么调整都得扔进修图软件里调对比/亮度。那不如不调,整个差不多的就扔 PS 里对照着来弄。
## 缩小,并剔除模糊细节
将渲染图缩小到一定标准,可以参考原版船的图片大小来弄,个人建议缩小算法用 RotSprite。缩小后可能会有些地方显得特别模糊,这时候就真避不开手动修改了。我自己只学过素描,就不在这班门弄斧。(其实有时候不弄也行)

另一个重点就是塞炮塔底座的贴图了,建议别忽略这一步,会影响游戏中的观感,当然也不是说一定要照着下面这个贴图模板里的来,基于模板舔几笔或者单独拉个对比度都是很快的,不需要什么绘画技巧就能来,试一试,Give it a shot

至于剩下的内容,论坛里已经有了完整的教程,可以参考教你如何把PNG变成宇宙飞船 - Mod制作资源 - 远行星号中文论坛 - (fossic.org)


#4、其他个人心得(无关碎碎念)
到这里实际上整个流程就差不多了,最后再来点个人做船的心得,供各位参考。
## 严格执行 “先跑通技术,再积累内容” 的流程没有美工、策划的电子游戏顶多不好玩,但没有程序的电子游戏会变得不能玩。

做mod同理。建议上来就对着技术难关搞突破——哪一部分你觉得最难搞定,那一开始就搞它。别上来就搞策划案和文案,就我个人3次 gamejam 的经历,策划案与文案是最整个游戏开发最简单的内容。把最难的部分放到最后做会让mod的难产可能性直线上升。
我就算在这说了也会有人继续往这个坑踩,我以前也踩过:主要的客观原因是写策划是整个游戏开发中正反馈最即时的部分,其他开发环节通常会延后得到反馈——两案写爽的例子不在少数,但是写程序/美工写爽的倒是挺少听到(那种爽也和写策划的不一样,更多的是一种折磨结束后的狂喜,而不是创作的快乐)。
## 做好规划,控制工作量“面多加水,水多加面”在游戏开发里是个很可怕的事情——这意味着你的工作量会被无限放大,到头来很大概率还会影响质量。
如果对这个概念不太清晰的话,个人建议去玩玩《戴森球计划》——模块化、标准化设计和拆东墙补西墙哪个在后期更给力这个游戏上能很好地体现出来。
最好有的放矢:弄个TODO LIST、结合番茄工作法、做版本控制 ... ... 训练自己的方法有很多,全尝试一遍,找个适合的就行,在此就不一一阐述。
除此以外,了解游戏在表现上的优势与不足,哪些在堆积内容时需要被重视,哪些可以适当忽略,并且将它们付诸到行动中。
这主要是确保你的工作量能被最高效率地利用,把“好钢全打在刀刃上”,而不是对着玩家可能在游戏中看1秒不到的地方花上几个月的时间去打磨。
就我个人而言,我认为《远行星号》的像素细节不需要特别被重视,不需要在每个地方都做到 pixel-perfect,但是数据方面的差别化设计比较重要,后期打磨时我也是着重这方面的内容。

这些理解可能因人而异,并且也和你自己的技术栈息息相关——上述理解就有可能会被专业美工人员反驳,或者被擅长java的程序盆友质疑(程序方面,我偏python、C#、Lua一点,而且还是半路出家,不算科班计算机人,对java的语法确实不够了解)
## 别将自己局限在一个游戏中,你值得更多得承认,这话放在哪个modder论坛都不太合适,有砸场子之嫌。但是如果你真想以modder作为敲门板砖,好哪一天拿它砸开游戏制作的大门的话,我认为这就是最好的方式:
为不同的游戏做mod的同时,你也会了解不同优秀游戏的设计思路,去了解策划、程序、美术是如何在不同的体系下有机地结合到一起的。并在这个过程中找到最适合你自己的那一套模式。
当你找到它时,你就离独立游戏开发不远了。
我也在这条路上往前走:几年前还在僵毁开服、给潜渊症做mod,现在已经开始积极学习 Godot,甚至偶尔给 Godot 的中文文档贡献翻译。希望能在这条路上遇到你。

最后容我宣传一下基于本贴方法制作的《家园》船包,已经可玩,不过还在打磨数据,等我过几天就上传{:tieba_18:}

做完了,可以从这下载《家园》舰船拓展 - Mod制作发布 - 远行星号中文论坛 - (fossic.org)










15x3 发表于 2024-5-26 00:53:34

本帖最后由 15x3 于 2024-5-26 15:28 编辑

{:tieba_23:}神tm发了,我还没码好呢,赶紧删掉{:tieba_36:}
怎么这条也不能删啊???


施工完毕,该启动远神了

相位自走洗衣机 发表于 2024-5-29 01:42:25

是三渲二,我加入了三渲二.jpg{:5_134:}

MMMMocizuki 发表于 2024-7-11 11:22:18

学到了,不过单纯的顶视图似乎并不美感,也不能很好的体现出原本舰船的特色。可能还需要对发动机、侧舷之类的结构进行一些调整

15x3 发表于 2024-7-13 17:01:13

chenxingyi 发表于 2024-7-11 11:22
学到了,不过单纯的顶视图似乎并不美感,也不能很好的体现出原本舰船的特色。可能还需要对发动机、侧舷之类 ...

是的,能为后续补充创作提供完善的底图作为3d模型足矣,类似绘画中在画板上放3D模型然后对着描的操作
页: [1]
查看完整版本: From beginner, for beginner | 将 3D 游戏的战舰“移植”到远行星号中