梦开始的地方——FC游戏开发指南(4)像素画?
(本系列是一个回归电子游戏原点的特别系列,作者 @goodorc_gamedev)
第4期了,这一次咱们变身美工,体验几十年前戴着镣铐画画的美术创作过程。
1、Tile简介
在电脑上玩过FC模拟器的同学,可以去找一个马里奥1代的rom文件,用YY-CHR打开(直接拖到YY-CHR窗口里就行)。

打开以后,会发现这个文件的前半部分是乱的,实际是程序和其他数据,所以是混乱的二进制数据。而最后一段,能明显看出马里奥大叔的形象,以及“01234”、“1UP”等游戏中的字符。
这一段二进制数据正是游戏中所用到的所有图形~~
观察会发现,所有图形被做成了一块一块的,每一块是8x8=64个像素。这个小块就被称为Tile瓦片。滑动滚动条发现tile一共有2屏,不到512个小块。
印象中超级玛丽的内容还算是丰富多彩,但是实际上这512个小块就是它的全部素材了。小号的马里奥大叔是4个tile,吃了蘑菇会变成8个tile,宽度没变,高度是原来的两倍。

所有的背景砖块、花草树木、蘑菇乌龟、白云旗杆、鱼鸟库巴、金币子弹,甚至还有开始界面、分数字符,全都用这不到512个tile完美表现出来了。
2、色彩限制——调色板
到这里可能有人要问,这个图的配色怎么这么阴间?好像不是正确的颜色吧?
确实……FC为了极限压缩内存显存,不仅要求画面是基于tile的,而且还要求每个tile内的颜色不能超过4种。甚至这4种中的第一种必须是保留的透明色,所以实际能用的颜色只有三种!
仔细看看马里奥大叔你就明白了,美工已经尽力了。

观察上图蘑菇的描绘,可以看到美术用橙色表示了蘑菇本体与下方阴影色,绝了。
我们知道,路易吉是马里奥的换色,在换色时,必须整体更换调色板:

所以路易吉的帽子和衣服必须同色,因为马里奥就是同色的。衣服帽子的颜色不可能不相同。
3、创建字符表文件CHR
至此我们已经对基础知识略有了解,可以着手开始画chr了。
在FC游戏大师中新建代码和资源 -> 4K图形图案,即可创建chr文件。

创建好chr文件,或者双击打开已有的chr文件,就会弹出YY-CHR工具,在里面编辑像素画即可。

4、用YY-CHR工具画像素画
双击打开我们一开始创建好的my_chr文件画图。我说一下使用要点:
1、注意基础设置,设置错了会给后续工作带来很大麻烦,甚至要重画(不要问我怎么知道的)。
文件格式:2BPP NES
排列方式:正常显示。只有正常显示模式才能和其他软件配合!
画面左、画面右两个勾选框,只是显示/隐藏参考点用的,不用管。
2、简单使用方法
简单来说,就是在左侧选中某一个tile,在右边调色板中选一个颜色,在右边直接画就行。
最左上角的0号tile应当留空~~ 未来编程时需要空白tile的时候,用0号就代表空白。
★ 倍率:非常有用的选项,选择x16就是画一个tile(8x8像素),如果要画大一点的图比如马里奥大叔4个tile,可以选择x8。还有x4、x2、x1以此类推,最常用的就是x8。
3、编辑调色板
在调色板中可以选取颜色,调色板本身的颜色也可以编辑。
FC能用的颜色仅有固定的52种,也就是最前面那一页的颜色。选择颜色时,不要拖动颜色列表到下面。这52种颜色编号有64个,很多编号颜色是重复的。

某些颜色显示不正,第16色应该是大红色。
★ 调色板的限制:
一个调色板仅有4个颜色,每一个tile只能用一个调色板,点击不同的调色板就可以看到你的图在不同色彩配置下的效果。
建议初学者仅使用4个调色板,我的打飞机项目也仅用了4个调色板。如果超过4个调色板,内存地址会和我的项目略有区别。
为统一规范,我们规定透明色一律用0F表示,且每个调色板的第一个颜色必须是0F透明。
4、YY-CHR的编辑工具非常强大
YY-CHR支持框选、复制粘贴、平移、画长方形等等功能,大家多尝试。特别注意调整图形位置时不用重画,用框选工具就能搞定。
绘制黑色矩形方块就能起到清屏效果。
鼠标右键可以取色!~~非常方便。
5、抄袭方法【狗头】
估计大部分同学和我一样,并不会画画【汗】
推荐一个超强的tile图参考网站:https://www.spriters-resource.com/
该网站有大量网友整理的各个游戏的精灵图,完全可以临摹甚至拷贝。

拷贝方法
下载合适的图片文件,用windows画图工具打开。在画图工具里按ctrl键+鼠标滚轮放大。

使用油漆桶工具,将背景改为纯白色(表示透明)。
然后使用框选工具,选择图形范围,复制。
在YY-CHR中选择一个位置,粘贴即可。

这里的操作非常古怪,颜色识别也很乱,大家多试验。
再次提醒:YY-CHR的图形编辑功能十分强大,移动位置很方便。
之后,颜色需要手动重新调整,先根据图片选择一套调色板,逐步调整。
上图中剑的颜色有问题,超出4种颜色范围了,暂时去掉。修改颜色后如下:

是不是有那味了?
本期截图好累,暂时先到这里,下次继续。
(本文作者@goodorc_gamedev,欢迎加入游戏开发群欢乐搅基:1082025059
对游戏开发感兴趣的童鞋可戳这里进一步了解:http://www.levelpp.com/)