找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 8035|回复: 1

[游戏] 金水修改简易教程之贴图导入及sfe2的使用

[复制链接]

106

主题

2960

回帖

2万

积分

VIP名士

积分
21575
声望
19488 声
银两
268293 两
回帖
2960
精华
24
阅读权限
180
注册时间
2007-5-29
最后登录
2024-3-28

十年坚守侠士

发表于 2014-3-10 17:39 | 显示全部楼层 |阅读模式
在这之前先说一下金水的贴图文件结构。金水的贴图有两种结构,一是按照图片原格式存在文件夹里,大地图贴图路径就是.. \kys\resource\mmap\,场景贴图是.. \kys\resource\smap\。都在resource文件夹下,这里不再一一列举。
但这只是为了方便修改,发布正式版时,要将这些都压缩成imz文件,如smap文件夹的所有场景贴图,压缩成为smap.imz。而金水的引擎有对应的处理,使得二者都可以被使用,只要改动kysmod.ini配置文件,设定PNG_TILE=1,则读入文件夹中的贴图,改为0,则读入imz文件中的贴图。
至于生成imz文件这一工作可以通过ka的sfe2修改器来完成:

                               
登录/注册后可看大图

sfe2采用命令行操作,直接运行sfe2,你会发现他给出了一些命令的格式,如上图所示。
这个工具其实就是用来完成文件的压缩和解压的。压缩的命令是以w结尾的,或者可称为写入,将未打包文件压缩成封装的结构;解压则是以r结尾的命令,或者称为读取。对于贴图文件来说,解压就是将封装的文件解包成一个个可见的贴图,而对于数据文件来说,则按照一定的格式生成可以查看的xls表格文件。
为了使用这些命令,你可以在sfe2的文件夹下新建一个文本文档,然后将后缀改成cmd或者bat。然后在其中按图中的格式输入命令。
例如:
  1. sfeconsole -indexr F:\mod_projects\kys-pig3x\kys\smap index.xls ——将smap中的index.ka文件转换为可读的index.xls表格
  2. sfeconsole -rangerr -auto -pig3 ranger.grp ranger.idx ranger.xls ——将ranger.grp文件按照ranger.idx中所记录的分段数据长度,转换为可读的ranger.xls表格
  3. sfeconsole -imzw F:\mod_projects\kys-pig3x\kys\smap smap.imz ——将smap文件夹下零散的贴图,封装到smap.imz文件夹里
复制代码
注:ka的指令说明里有一些错误,如-rangerr命令后面的-file.grp是不应该有-符号的。这个有问题的话可以自己先多尝试一下。Cmd的命令,暂时不用的时候,可以用::注释掉。程序结尾最好加入pause来观察执行情况。


下面来讲解一下贴图的导入。
这是南窗之前最关心的部分,也是我们的游戏要实现的变革之一,所以这里先讲了。这一部分说简单也简单,说麻烦也很麻烦。
简单是因为在我们的构想中是准备采用整图导入的方式。不过由于要采取45度的视角,所以一张方形的图,一般要采用中间的菱形区域来布景,其他地方填充成空白。

就如这个金庸群侠传的大地图,它其实就是这样一个菱形。

                               
登录/注册后可看大图

但原来的金水绘图系统颇为麻烦,需要把每个场景图切分成为36*18的小方块

                               
登录/注册后可看大图
。然后再游戏中再进行拼接。这样虽说裁剪的时候麻烦,不过各种小区块可以不断重复利用,还是挺省资源的。
但为了打破原版的窠臼,导入更多更新更靓的图,采用这样的方法,就实在太麻烦了,切分都成大问题。
所以下面来详细讲解一下我们总结出的整图导入的方法:
1、    首先我们需要将素材图处理成合适的格式。金水的小场景都是64*64个格子的,每个格子在游戏里对应主角的一步,它是由上面所说的36*18的小方块构成的。
由于场景大小是固定的,所以目前最好直接导入相当于64*64个格子大小的贴图。需要将素材尽可能地接近45度视角,高变为2*64*18/2=1152,宽变为2*64*36/2=2304。当然怎样在不使图像失真严重的情况下变为这样,就是美工的问题了。转换完之后,可以将其四个角上占二分之一面积的部分设置alpha通道为0。这一步不是必须的,也可通过程序自动实现。
这样固定大小的场景自然是很不利于贴图的表现的,所以我们可以再研究一下程序看看是否可以很方便地对场景大小进行更改。
2、    将处理好的图片放入smap文件夹中,取一个没有被占用的序号,修改名字,如4127.png。
3、    写入偏移信息。偏移信息记录在smap文件夹下的index.ka中,可以按照之前讲的用sfe2将其转换为index.xls表格。查看改表格我们可以发现,这是个三列的表格,第一列是图像序号,第二列和第三列分别为x偏移,y偏移。

                               
登录/注册后可看大图

我们可在空白处加入序号4127,以及x偏移为0,y偏移为0,也就是该贴图会以图片的中心为基准,移到指定位置上。
写好保存之后,用sfe2将该表格重新转换为index.ka,覆盖smap中的原有文件。
4、    完成以上三步之后,我们就可以开始在sfe0.72修改器中可视化地添加该贴图了。打开sfe0.72(事先需要修改fishedit.ini配置文件,将游戏路径设置好),然后选择要加入改贴图的场景,之前有贴图的话,可以把所有地面层的贴图删除掉。将操作层设置为“地面层”,然后点击“选择贴图”,输入贴图序号4127,这时就可以将改贴图放置于鼠标指定的位置了。
由于我们将基准设置在了中心处(大量实践证明,大图基准设在中心是很有必要的,如果设在边角处的话,可能导致鼠标根本无法移动到想放置的地方去),所以我们要将该贴图放置在场景的正中间。由于场景xy坐标都是从0~63,所以可以将贴图中心放在(32,32)左右。可能有些偏,后面再细细调整。放置完之后记得保存当前场景进度。

效果图:

                               
登录/注册后可看大图


以上是场景图整图导入的全过程,当然引擎中贴图的程序由于之前没有这方面的考虑,还存在着一些bug,尤其是和地面贴图自动扩展的程序有冲突,所以这一部分程序还需要修改。

至于人物及物品贴图的导入,大致也是这个流程,只不过偏移的设置上有些区别。人物自然不能将中心放置在指定曲格上,而是应该以脚下为基准。x偏移一般设置成图宽的二分之一,y偏移则一般设置为图高左右的大小,这里可以根据人物占整个图像的比例进行微调。
不过需要注意的是,人物贴图一般导入的是事件层。事件层的编辑方式不太一样,当你选中事件层中某一编号的事件时,可以设定11个参数,就是综述里的ModifyEvent所涉及的Sdata中的参数。这里一般修改事件初始贴图序号就好了,注意这里要改成文件夹中序号的两倍,如4126,输入贴图序号的时候要输入8252.

2

主题

18

回帖

268

积分

师出名门

积分
268
声望
248 声
银两
4093 两
回帖
18
精华
0
阅读权限
25
注册时间
2012-6-30
最后登录
2014-10-30
发表于 2014-7-13 10:14 | 显示全部楼层
好麻烦,你们为什么不用RMXP制作呢?
梁羽生家园,梁迷网络的家http://www.yushengbbs.net
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|家园基金|梁羽生家园 ( 鄂ICP备16023429号-1 )

GMT+8, 2024-3-29 01:37 , Processed in 0.062499 second(s), 23 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表