====== 贴图 ====== 贴图是 Mindustry 不可缺少的一环,没了它每一个东西就都显示成 “oh no”了。 Mindustry的贴图风格很简单、但同时也充满限制,从其他地方胡乱搬来贴图会很违和。 你可以 [[https://github.com/Anuken/Mindustry/tree/master/core/assets-raw/sprites|在此]]查看全部的原版贴图 **切记,未经允许盗用他人贴图极其破坏圈子氛围,当然灵感来源和引用其他模组的贴图是可以的** **“开源的东西,我想干嘛就干嘛”这种借口不可认可和接受,小心吃黑名单** ===== 画图软件 ===== 强烈建议用支持透明度和导出PNG格式的画图软件。推荐下面这些: ==== 桌面端 ==== - **[[https://www.aseprite.org/|Aseprite]]** * 初学可能有点难,但是习惯了极其顺手; * **付费** 软件,但是如果 **[[https://github.com/aseprite/aseprite/blob/main/INSTALL.md#compiling|自行编译(必须自用)]]**就是免费的了; * 有许多对于 Mindustry 贴图制作有益的特性 * 镜像 * 调色板 * 动画 * 层叠 (也能导出单个图层) - **[[https://libresprite.github.io/#!/|LibreSprite]]** * Aseprite 的拷贝,相对于原版来说不是最新的,能力也不足,你完全不需要用它 - **[[https://www.piskelapp.com/|Piskel]]** * 简单的像素艺术软件,不如 Aseprite 和 LibreSprite 那么强大,但已足矣。既有在线版也有可下载的离线版,二者完全相同。 * 不能导出单个图层 - **[[https://www.pixilart.com/|Pixilart]]** * 在线贴图制作工具,比 Piskel 有更多的功能,但是没有镜像。如果你熟悉像素艺术,更推荐使用本软件。 * 对于 Mindustry 的贴图制作绰绰有余 - **[[https://www.getpaint.net/|Paint.NET]]** * 非常基础的画图软件,不要和 3D 画图搞混, Paint.NER很好用。但是不如上面这些方; * Paint.NET缺乏 Mindustry贴图制作的基本特性。但你可以手动下载,并用插件弥补; * 尽管如此,还是不推荐为了方便用这个,如果你能下载,更建议下个 Piskel 或者 LibreSprite,这才是生产力级像素画图软件。 ==== 移动端 ==== - **[[https://play.google.com/store/apps/details?id=io.anuke.novix|Novix Pixel Editor]]** * 老旧但可靠,被Anuke开发然后扔了,没有广告,虽然有一点点老,但是对于移动端用户还是很可靠的,拥有镜像功能。 * 偶尔会出现大图被猫反杀的情况(指过大的图片偶尔会被破坏)。 - **[[https://play.google.com/store/apps/details?id=com.PixelStudio|Pixel Studio]]** * 最有名的像素制图软件 * 和 PC 版没什么不同 * 有广告 - **[[https://play.google.com/store/apps/details?id=jp.ne.ibis.ibispaintx.app|Ibispaint X]]** * 很少用做贴图制作,用之前需要设置一下。 * 支持许多工具,比如八进制镜像、迷雾和倾斜,以及图标选择和图层 * 能轻松地画复合贴图,但对于简单贴图有些过头了 * 也有广告 ===== 尺寸 ===== ==== 方块 ==== 最小的方块是 ''%%32px × 32px%%'' ,这是一个 1x1 的方块。增大方块尺寸就得增加贴图尺寸,边长每增加一,贴图变长就需要增加 32px,所以 2x2 的方块就是 ''%%64 × 64%%'' ,凡是方块都得遵守这个规定。 * ''%%1×1%%'' : ''%%32px × 32px%%'' * ''%%2×2%%'' : ''%%64px × 64px%%'' * ''%%3×3%%'' : ''%%96px × 96px%%'' * ''%%4×4%%'' : ''%%128px × 128px%%'' * ''%%5×5%%'' : ''%%160px × 160px%%'' 但是,这些并没有限制你,贴图尺寸不对,游戏也会照常加载他们。然后,你就能看到一个特立独行的贴图,或者直接演变成灾难 ==== 物品、液体和状态效果 ==== 对于这些内容,最小尺寸是''%%32px%%'',可以再大一些,游戏会调整显示成 ''%%32px%%'',但是并不会扩大,所以 ''%%32px%%'' 是最小值。 ==== 单位 ==== 单位贴图比其他的更加宽松,但不要试图降低贴图尺寸到 ''%%48px%%'' 以下。而且要记住,单位越大,''%%hitSize%%''就得调得越大。 ===== 贴图存储 ===== 贴图直接扔在 ''%%sprites/%%'' 及其子目录下即可,内容解析器会自动递归浏览。 游戏里的图像为了高效率的调用会打包成 “atlas”。在 sprites/ 目录下的第一个子目录,比如 ''%%sprites/blocks%%'' ,决定了在放置贴图的 atlas 中的页。把方块材质扔进单位页可能会导致延迟,你最好类似原版那样组织贴图文件。 游戏会根据名称来寻找材质,比如 ''%%content/blocks/test-turret.json%%'' 的名称是 ''%%test-turret%%'',''%%sprites/test-turret.png%%''也是如此,所以这个贴图就由这个方块使用。 简单来说,游戏会寻找三种材质:方块、单位和物品。因此,贴图应该放在他自己的子目录下: - 方块贴图放在 ''%%sprites/blocks%%'' - 单位贴图放在 ''%%sprites/units%%'' - 物品贴图放在 ''%%sprites/items%%'' 游戏有时会修改一些贴图。炮塔和单位会有''%%3-4px%%'' 的灰边,所以再制作贴图是需要预留空白。默认外圈半径和颜色能通过修改 ''%%Block%%'' 和 ''%%UnitType%%''里的 ''%%outlineRadius%%'' / ''%%outlineColor%%''实现自定义。 ==== 覆盖 ==== 你可以覆盖原有贴图,把贴图文件放在 ''%%sprites-override/%%'' 就可以了。 ===== 后缀 ===== 游戏会为一个方块寻找数个材质。 对于炮塔,由于他的他的类型,游戏会寻找名称文件''%%-heat%%'',也就是会寻找 ''%%test-turret-heat.png%%'' 。(这个就是发射一次后重载时的贴图) 对于方块和工厂来说,还有 ''%%-top%%'' 和''%%-liquid%%'',这些会放置在他的每一个层上。 阅读源码就可以得知每个方块各自加载的贴图,他们通常在各自的类中的''%%load()%%''方法里。(core.atlas.find的参数就是调用的贴图) ===== 调色板 ===== 正如其他游戏一样, Mindustry 有自己的调色板。 强烈推荐初学者坚持从自己的贴图里吸取颜色,虽然他会看起来很违和甚至超凡脱俗,你也会让Discord 的 #spriting 版很糟心。 方块调色板: {{Pal-mindustry.png|Pal-mindustry.png Pal-mindustry.png}} 自然墙与地板调色板: {{Pal-mindustry-evn.png|Pal-mindustry-evn.png Pal-mindustry-evn.png}} 如果你用了一个正确的画图软件,把这些图片导入为调色板即可。 ===== 画风与阴影 ===== Mindustry 有简单但充满限制的画风,生搬硬套只会显得违和。由于大环境影响,处于善心,一些规则和指南都发出来帮助模组制作者创作出符合游戏的贴图。 Mindustry是 2D 游戏,所以我们需要添加深度比如凸起和凹陷,我们管这个叫做阴影,尽管真实材质仍然是 2D 的,尽可能的让他在游戏里看起来像 3D 。 根据光的入射位置,**凸起**需要涂成**亮色**,**平坦处**需要涂成**中性色**,**凹陷**需要涂成**暗色**,先 3D 画图,再 2D 投影,是 Mindustry 一种普遍的贴图画法。 记住,指南只是个初级玩意,你可以随便变通,但请先理解最基本的东西,并且要先做出不违和的成果。 ===== (注意,以下都没有考虑方块的基底,由于其材质固定,所以不做考虑) ===== ==== 方块阴影 ==== {{Alloy-smelter.png|Alloy-smelter.png Alloy-smelter.png}} 这里使用合金冶炼厂作为示例。 对于方块,光从**右上角**入射,所以,越靠近光源就需要越亮的颜色,并且使用中性色的斜线分割亮部和暗部。 通常来说,工厂有三类颜色: * 基础颜色,有三个 * ''%%B0BAC0%%'' | 亮色 * ''%%989AA4%%'' | 中性色 * ''%%6E7080%%'' | 暗色 * 印花颜色,也有三种: * ''%%FEB380%%'' | 亮色 * ''%%EA8878%%'' | 中性色 * ''%%BC5452%%'' | 暗色 * 底部颜色 * ''%%4a4b53%%'' **基础颜色**代表了方块的主要颜色,这种颜色通常限制为亮灰和暗灰,在所有的方块里看起来都是相同的。 **印花颜色**代表方块的**作用**或**用途**,用于区分方块。选择印花颜色需要根据方块的用途,例如: **塑钢压缩机** {{Plastanium-compressor.png|塑钢压缩机 塑钢压缩机}} 塑钢压缩机的印花颜色是绿色,绿色的印花和塑钢的颜色相同,因此你可以把这个方块和塑钢产生联想。 **底部颜色**代表了方块里部的颜色,也就是没有光的地方,所以要用暗色。这也能代表方块的开口,例如合金冶炼厂。 请注意,不同的方块根据其类型需要不同数量的材质。例如,墙只要一张,就是它自己,而像单位重构工厂这种方块需要四张。请参考 [[#后缀|后缀一节]]。 模组示例: * Flin#8261的模组 [[https://github.com/FlinTyX/DiverseTech|DiverseTech]]中的单位掩体, * [File: Flintyx-unit-bunker.png] * #4783的模组 [[https://github.com/Eschatologue/Unlimited-Armament-Works|Unlimited Armament Works]]中的蒸汽压锤 * {{Unlimited-Armament-Works-steam-press.png|fig:Unlimited-Armament-Works-steam-press.png}} ---- ==== 炮塔阴影 ==== 对于炮塔来说,光**从右向左**打 {{Ripple.png|浪涌 浪涌}} 这里使用浪涌作为示例。 炮塔有两到三类颜色,每种两个: * 基础颜色 * ''%%7B7B7B%%'' | 亮色 * ''%%4D4E58%%'' | 暗色 * 印花颜色 * ''%%FEB380%%'' | 亮色 * ''%%EA8878%%'' | 暗色 * [可选项] 炮管颜色 * ''%%2C2D38%%'' **基础颜色**,即身体颜色,是炮塔的主要颜色,其范围包括铜棕、白色或者暗灰。 * 铜棕 * Duo.png {{Scorch.png|Scorch.png}} {{Hail.png|Hail.png}} -通常代表低级炮塔,比如**双管炮**、 **火焰炮**,、**冰雹炮**等 * ''%%C9A58F%%'' * ''%%8F665B%%'' * 白色 * [[Arc.png|电弧]] {{Lancer.png|蓝瑟}} {{Parallax.png|牵引光束}} {{Segment.png|裂解光束}} -通常代表用电射击的炮塔,例如**电弧**、**蓝瑟**、**牵引光束**、**裂解光束**等 * ''%%F4F4F4%%'' * ''%%C1C3D4%%'' * 深灰 * {{Swarmer.png|蜂群}} {{Cyclone.png|气旋}} {{Meltdown.png|熔毁}} -大多数情况下,深灰代表中高级炮塔。 * ''%%7B7B7B%%'' * ''%%4D4E58%%'' 炮塔的**印花颜色**和正规方块的相似,代表着用途或设计原型 **炮管颜色**是一个可选项,是炮塔炮管的颜色,通常适用于大炮或者导弹发射器 {{Swarmer.png|蜂群}} {{Ripple.png|浪涌}} * ''%%2C2D38%%'' === 非常规方法 === * **炮塔中性色** * 还有一个不走常规路的方法,就是把中性色添加到炮塔里,使其看起来像平面,而不是非黑即白。 * 有一个[[https://github.com/Eschatologue/Unlimited-Armament-Works|Unlimited Armament Works]]模组的”Skyhammer”作为例子 * {{Unlimited-Armament-Works-skyhammer.png|fig:Unlimited-Armament-Works-skyhammer.png}} ---- ==== 资源阴影 ==== 资源的阴影简单的一批,光可以从上面来,可以从上到下穿过,用右到左也可以。 为了不让其看起来像 2D 平面,最好选择三二种颜色。 示例: {{Item-copper.png|Item-copper.png}} {{Item-plastanium.png|Item-plastanium.png}} {{Item-graphite.png|Item-graphite.png}} {{Item-coal.png|Item-coal.png}} {{Item-surge-alloy.png|Item-surge-alloy.png}} {{Item-scrap.png|Item-scrap.png}} {{Item-pyratite.png|Item-pyratite.png}} {{Liquid-cryofluid.png|Liquid-cryofluid.png}} ==== 单位阴影 ==== 现在我们到达了阴影最难的部分。 单位越大,阴影就越错综复杂。单位阴影中,光可能是**自上而下**或**自前到后**。亮色和暗色的强度在单位重要的部分有所变化。 上文提到,亮色代表着**凸起**,中性色代表着**平面**,暗色代表着**凹陷** === 单位基础颜色 === {{Spriting-unit-shading.png|Spriting-unit-shading.png Spriting-unit-shading.png}} 请注意观察上面的图片,这使用日蚀作为示例。随着贴图靠近尾部,亮色就变得越少而中性色和暗色也来越多。 被光照射的部分颜色更亮,而没被照射的部分颜色更暗,平面使用中性色。 {{Spriting-unit-shading-illustration.png|Spriting-unit-shading-illustration.png Spriting-unit-shading-illustration.png}} 上面的图像粗略地模拟了单位 3D的样子。 * 基础颜色,有三个 * ''%%B0BAC0%%'' | 亮色 * ''%%989AA4%%'' | 中性色 * ''%%6E7080%%'' | 暗色 === 单位印花颜色 === 单位的印花只有两种颜色——亮色和暗色,这代表了单位在游戏中的类别。 -黄色是核心单位,即核心产出的单位。 * {{Gamma.png|Gamma.png}} {{Beta.png|Beta.png}} * ''%%FFD37F%%'' | 亮色 * ''%%D4816B%%'' | 暗色 * 橙色代表**袭击**单位,即用于攻击对手 * {{Fortress.png|Fortress.png}} {{Horizon.png|Horizon.png}} * ''%%FFA665%%'' | 亮色 * ''%%D06B53%%'' | 暗色 -绿色代表**辅助**单位,能够建造、治疗和保护你的单位 * {{Poly.png|Poly.png}} {{Retusa.png|Retusa.png}} * ''%%84F491%%'' | 亮色 * ''%%62AE7F%%'' | 暗色 * 紫色代表**专业**单位,这些单位独一无二,不能放置在以上类别。(不要把目光局限于爬爬) * {{Crawler.png|Crawler.png}} {{Arkyid.png|Arkyid.png}} * ''%%BF92F9%%'' | 亮色 * ''%%665C9F%%'' | 暗色 **你也可以随意选取印花颜色,只要你整个模组保证风格统一即可** === 单位队伍/能源颜色 === 单位能源用于区分不同队伍,他是材质顶层的单独材质 {{Spriting-unit-cell.png|Spriting-unit-cell.png Spriting-unit-cell.png}} 能源自动染上所在队伍的颜色。 {{Fortress.png|Fortress.png}} {{Fortress-cell.png|Fortress-cell.png}} 上面是堡垒和他的能源,能源贴图应该只有以下两种颜色 * ''%%FFFFFF%%'' | 亮色 * ''%%DCC6C6%%'' | 暗色 这就是为什么推荐使用能导出单个图层的画图软件,因为你可以画一整个单位再分割涂层,只需要操作一个文件。 === 单位武器 === 单位武器和炮塔和单位的阴影规则相同。可以是自上而下或从右到左。 {{Zenith-missiles.png|Zenith-missiles.png}} {{Large-artillery.png|Large-artillery.png}} {{Large-laser-mount.png|Large-laser-mount.png}} 武器旋转中心点是贴图中心,如果你想挪动旋转中心,挪动贴图位置即可。 === 单位贴图制作步骤 === {{Spriting-unit-stepbystep.png|Spriting-unit-stepbystep.png}} 单位贴图制作共分五步 1.瞎画一些基本的图形,然后拿暗色重重的涂上去,画出来,慢慢地在每个部分之间添加线条,形成不太清晰的基本图形,然后试着去变成清晰的不规则或曲线图形,确保他看起来很好——大多数情况下不瞎画画不出来好单位,确保进行下一步之前你调整得足够满意。 2.提炼出图形,并且在线条递增45度处变形,你可能得扭一扭,不要太像之前的涂鸦。
  1. 加花,印花不容易画好,我展示了三个例子展示他的工作方式——你必须自己试试,然后才能看哪一种适合你。现在就添加印花,是因为稍后要绕着印花加图案,先画好对后面的步骤有益。
4.粗糙的标记出来亮部和暗部。在亮部画在上部之后,你就应该马上标记出来你想要照亮哪一个图形和光的明暗,以避免之后回来再想。少覆盖一些,暗部最好只占30%到40%。另外,注意预留出印花旁边的空间以增加层次,使其看起来更令人满意。 5.最错综复杂的部分——增加细节。你没有多少小聪明可以耍,你必须逐渐擅长这件事。然而,我用的方法是:当不确定加什么的时候,就添加能源。他们看起来像印花,你也可以在印花周围添加图形,细节不要太多,使用任何方便的拐角,在大块空间上添加图形。 > 作者 Zhenьkotron#9493, 校对者 Geschiedenis#4783 ---- ==== 环境贴图 ==== 环境贴图和其他风格不太一致。**增加45°不再适用** 环境贴图占了游戏内容大多数,但不是重点。最好的画法就是大同小异。 === 地板 === 地板只有两种颜色,变化的数量由你决定。 * 原版示例: * {{Basalt1.png|Basalt1.png}} {{Basalt2.png|Basalt2.png}} {{Basalt3.png|Basalt3.png}} * {{Dirt1.png|Dirt1.png}} {{Dirt2.png|Dirt2.png}} {{Dirt3.png|Dirt3.png}} * 模组示例 : * {{_Endless-Rusting-Demo-_classem-stolnene1.png|_Endless-Rusting-Demo-_classem-stolnene1.png}} {{_Endless-Rusting-Demo-classem-stolnene2.png|_Endless-Rusting-Demo-classem-stolnene2.png}} {{_Endless-Rusting-Demo-classem-stolnene3.png|_Endless-Rusting-Demo-classem-stolnene3.png}} * {{_Endless-Rusting-Demo-ebrin-drylon1.png|_Endless-Rusting-Demo-ebrin-drylon1.png}} {{_Endless-Rusting-Demo-ebrin-drylon2.png|_Endless-Rusting-Demo-ebrin-drylon2.png}} {{_Endless-Rusting-Demo/ebrin-drylon3.png|_Endless-Rusting-Demo/ebrin-drylon3.png}} {{_Endless-Rusting-Demo-ebrin-drylon4.png|_Endless-Rusting-Demo-ebrin-drylon4.png}} {{_Endless-Rusting-Demo-ebrin-drylon5.png|_Endless-Rusting-Demo-ebrin-drylon5.png}} {{_Endless-Rusting-Demo-ebrin-drylon6.png|_Endless-Rusting-Demo-ebrin-drylon6.png}} > 贴图由 Sh1penfire#0868 的 [[https://github.com/Sh1penfire/Endless-Rusting-Demo|Endless-Rusting]] === 环境静态墙 === 不要和建筑墙搞混,**墙有三种颜色**,正如地板,变体的数量由你决定。 墙也有2x2的版本,这是可选的。 * 原版示例: * {{Dacite-wall1.png|Dacite-wall1.png}} {{Dacite-wall2.png|Dacite-wall2.png}} {{Dacite-wall-large.png|Dacite-wall-large.png}} * 模组示例: * {{_Endless-Rusting-Demo-classem-wallen1.png|_Endless-Rusting-Demo-classem-wallen1.png}} {{_Endless-Rusting-Demo-classem-wallen2.png|_Endless-Rusting-Demo-classem-wallen2.png}} > 贴图来自 Sh1penfire#0868 的 [[https://github.com/Sh1penfire/Endless-Rusting-Demo|Endless-Rusting]] === 矿物 === 矿物显示在地板之上,它们是玩家获取资源和放置钻头的地方。 * 原版示例: * {{Thorium1.png|Thorium1.png}} {{Thorium2.png|Thorium2.png}} {{Thorium3.png|Thorium3.png}} * {{Scrap1.png|Scrap1.png}} {{Scrap2.png|Scrap2.png}} {{Scrap3.png|Scrap3.png}} * Modded Examples : * {{_Endless-Rusting-Demo-melonaleum1.png|_Endless-Rusting-Demo-melonaleum1.png}} {{_Endless-Rusting-Demo-melonaleum2.png|_Endless-Rusting-Demo-melonaleum2.png}} * {{_Endless-Rusting-Demo-taconite1.png|_Endless-Rusting-Demo-taconite1.png}} {{_Endless-Rusting-Demo-taconite2.png|_Endless-Rusting-Demo-taconite2.png}} {{_Endless-Rusting-Demo-taconite3.png|_Endless-Rusting-Demo-taconite3.png}} > 贴图来自 Sh1penfire 的 [[https://github.com/Sh1penfire/Endless-Rusting-Demo|Endless-Rusting]] === 石头 === 石头是玩家可以破坏,随机出现在地板上的环境方块。他有自己的文件,不在环境贴图子文件夹。 * 例子: * {{Boulder1.png|Boulder1.png}} {{Boulder2.png|Boulder2.png}}\\
    • {{Sand-boulder1.png|Sand-boulder1.png}} {{Sand-boulder2.png|Sand-boulder2.png}}
=== 树 === {{Spriting-props-white-tree-screenshot.png|Spriting-props-white-tree-screenshot.png Spriting-props-white-tree-screenshot.png}} 树绘制于大多数方块之上,单位可以穿过,它们只是表现为地图上的叶子。 记住树有影子,你也需要自己画。 * 例子: * {{Spriting-props-white-tree.png|fig:Spriting-props-white-tree.png}} * {{White-tree-shadow.png|fig:White-tree-shadow.png}} ----