关于行走图与图块
名词索引
以下你可以按住ctrl键点击下面的词,可以直接定位到想了解的名词:
| 行走图规则 | 单行走图 八行走图 图块行走图其他规则扩展 |
| 行走图属性 | 帧数 朝向 中心锚点碰撞体 物体id规范 |
行走图规则
单行走图
单行走图(也称大图)的文件名必须要在开头加”
资源排布方式为下图所示:(每块48x48,共144x192)

需要注意的是,资源是被分成了12等分,但是并不代表每等分必须是48x48像素。
比如下图,可以是48x96像素:(每块48x96,共144x384)

在这12等份中,分别表示不同的情况,每个朝向默认3帧,并且是以2->1->2->3->2…的往返方式播放的。(多帧行走图、锁定帧 插件可以额外修改顺序)

八行走图
八行走图(也称一般图)的文件名没有要求,只要开头不是”$”即可。
资源排布方式为下图所示:(每块48x48,共576x384,12*8等分)


同样的,每等分不一定必须48x48,可以设置成其他大小。
比如下图,可以是48x96像素:(每块48x96,共576x768)


如果物体不需要旋转,不需要考虑朝向,不需要步行动画,
那么每个等分可以代表不同的物体,如下图。(12*8个48*48的物体)

图块行走图
图块行走图是 没有朝向、没有帧数 的行走图,
只能按照图块大小(48x48)来进行约束,如下图。

| 图块没有”-小型摆件-”的分类设计,作者我为了方便,去掉几个图块的空间作为分类名。 |
原设定之所以把各种场景元素都集中在图块中,是因为为了节约资源图片的内存占用,每读取一张图片,会多占用一部分内存。
加载资源等待时间长、内存占用大 对于手机端和网页端是相当麻烦的问题。
(PC电脑中读取速度非常快,不存在这种问题。)
其他规则扩展
1)单图标
来自插件:
◆Drill_EventIcon 行走图 - 图标行走图
该插件能把行走图变成一个图标。

2)动画序列
来自插件:
◆Drill_EventActionSequence 行走图 - GIF动画序列
该插件能把行走图变成一个动画序列。

详细可以去看看文档介绍:“7.行走图 > 关于行走图GIF动画序列.docx”。
3)其它引擎界面的设定
以STG界面为例。
该界面要求使用八行走图,并且处于上下的等分形成一组,对应八个方向。
即 1/5、2/6、3/7、4/8 为一组,对应 下/左/右/上/左下/左上/右下/右上 八个方向。

详细去看看STG的文档介绍:“33.STG”。
行走图属性
帧数
帧数: 指行走图播放行走动画的帧数。
以单行走图为例,单行走图一共有3x4=12个等分,横向的3列为帧数。
并且第2帧为初始帧。

使用插件 多帧行走图 可以扩充横向的帧数,
如下图默认分成3(帧数)x4(方向)=12等分,修改为n帧后,行走图将分成nx4等分。

(多帧行走图插件的介绍可以去看看文档“7.行走图 > 关于多帧行走图.docx”)
朝向
朝向: 指行走图的朝向。
以单行走图为例,单行走图一共有3x4=12个等分,纵向的4行为朝向。

注意,游戏脚本中,朝向的值为:2下/4左/6右/8上。
这对应了小键盘的四个方向。(如果有八方向行走图,1/3/7/9将对应斜向朝向)

| 行走图资源中的朝向也是从上往下按照2/4/6/8顺序排列,所以你看到的行走图都是 下/左/右/上 的顺序。 |
中心锚点
1)纵向比例
行走图的中心锚点在事件正下方的点,如果只改变高度,可以按照48的倍数改变,也可以自定义高度。

2)横向比例
如果你要改变宽度,需要注意宽度问题,偶数比例会出现半个图块的占用情况。
所以横向的比例建议用1,3,5,7……奇数比例的宽度。

碰撞体
1)定义
碰撞体: 是指游戏中用于模拟碰撞检测的多边形。
(你可以百度搜索“碰撞体”,这里只是一个2d多边形检测用的对象)
矩形碰撞体: 是指设置资源后,系统自动根据 资源大小+贴图变换 来确定的碰撞体。
目前常用于检测鼠标是否接触到行走图。
行走图优化核心插件提供了 行走图碰撞体 的显示。
使用下面插件指令能显示碰撞体:

示例中 行走图管理层 显示效果是 紫红色的矩形+中心锚点+id数字 。

2)碰撞体范围
以鼠标悬停响应开关为例,
比如 鼠标管理层 中,当鼠标接近小爱丽丝的行走图时,她会切换事件页。

碰撞体的范围,与行走图的大小相关,
如下图的,48x96大小的情况。

3)碰撞体注意事项
注意,如果事件页第一页为高的行走图48x144,而第二页为小的行走图48x96,
那么当鼠标悬浮在缺失区域时,会出现事件页不停地来回切换的问题。


这是因为切换事件页后,行走图变了,碰撞体范围也变了,导致两个事件页之间反复来回切换。
因此,要注意保持行走图大小一致。
如果事件页为空白时,也要配置空的相同大小透明图片,以确保 碰撞体范围 不变。
物体id规范
打开 ”DEBUG碰撞体查看” 时,你会发现玩家、事件、玩家队员的编号不一样。

使用插件指令,获取 事件id、玩家队员id、载具id 时,
也会发现写了找不到时返回-1,若为玩家则返回-2。

这个插件指令的表示方法并不是零散的,而是统一的设定,如下:
| 类型\id值 | 大于0 | 0 | -1 | -2 |
| 事件id(event_id) | 正常id值(1表示地图里id为1的事件) | 无效 | 找不到对象 | 表示玩家 |
| 玩家队员id(follower_id) | 正常id值(1表示玩家身后第1个队员) | 无效 | 找不到对象 | 表示玩家 |
| 载具id(vehicle_id) | 正常id值(1表示小船,2表示大船,3表示飞艇) | 无效 | 找不到对象 | 表示玩家 |
由于玩家是一个非常特殊的存在,能同时具备事件、玩家队员、载具的相似功能,
所以这里插件指令获取id值时,如果是玩家,都按-2表示。
子插件
【行走图 - 行走图优化核心】(指向)
插件本体:
◆Drill_CoreOfEventFrame 行走图 - 行走图优化核心
◆Drill_CoreOfEventFrameWithMouse 行走图 - 行走图与鼠标控制核心
◆Drill_EventMouseHoverSwitch 物体 - 鼠标悬停响应开关
行走图优化核心有专门的文档介绍,可以去看看:

【行走图 - 多帧行走图】(指向)
插件本体:
◆Drill_EventFrameNumber 行走图 - 多帧行走图
◆Drill_EventFrameLock 行走图 - 锁定帧
多帧行走图有专门的文档介绍,主要为横向 帧数 的扩展功能。
详细去看看文档:“7.行走图 > 关于多帧行走图.docx”
【行走图 - 玩家接近自动透明化】
插件本体:
◆Drill_CoreOfEventFrame 行走图 - 行走图优化核心
1)功能说明
该插件中,你需要提供高度大于48像素的单行走图、八行走图等分,
来作为柱子、云朵、屋檐等阻挡物。

2)碰撞体范围
上图可以看到,透明化 根据 玩家的行走图等分(碰撞体) 与 柱子行走图等分(碰撞体) 的相交情况来触发。
量子妹身后的小爱丽丝,不属于玩家行走图,所以就被柱子挡住了。
另外,插件默认设置为:绕到背后透明。
假设量子妹的身高很高(比如48x96像素),那么她站在柱子前面时,量子妹碰撞体与柱子碰撞体是相交的,但这时候柱子不应该透明,所以才有“绕到背后透明”的设置。

| 该插件在实际使用时,容易出现歧义,注意了解一下常见问题:自动透明化的插件功能没有效果 。 |
常见问题(FAQ)
自动透明化的插件功能没有效果
| 问题名称 | 自动透明化的插件功能没有效果 |
| 问题图示 | ![]() ![]() |
| 问题描述 | 如图,在游戏中不透明,单独建立一个工程,也一样不透明。 |
| 原理解析 | 1.首先,作者我单独建立一个工程,没问题。![]() 2.然后,只能说群友太莽了,没有行走图的结构认识,做出匪夷所思的操作。为了方便,群友用的是 图块行走图,而且把本来为高塔的48x96行走图,给拆成了两个事件。插件不是这样用的啊…… 3.插件定义还有个细节,如下图。 “绕到背后透明”是为了解决48x96 的行走图情况。如果玩家和柱子在同一个y图块位置时,柱子则不会透明。但就是因为这个设定,导致群友以为没生效。 |
| 解决方案 | 1.如果把行走图拆成了多个事件,那么多个事件都加下面的注释。=>玩家接近自动透明化 : 开启=>玩家接近自动透明化 : 条件 : 只要接触就透明2.或者,将行走图用ps或者其他方式,改成48x96的高度即可。玩家只要站在该事件后面的图块,就自动透明。 |
| 鉴于群友问我为什么要把这个 透明化插件 弄的那么复杂?作者我的回答是:因为这个插件一开始就不是按你想的这个拆散48x48行走图写的。举个例子,我设计的是“包子”,包子要用蒸笼,要用水蒸熟。但你要的是“汤圆”,然后你把包子直接扔水里煮了,我大呼不能这样做,要用蒸笼,你问为什么要用蒸笼?难道扔水里煮就不能吃了吗?我无言以对,确实,水煮可以吃。但不是你这样做的啊……现在你问我为什么做出来的这个包子那么难吃?无奈,作者我的回答是:因为包子一开始就不是按你想的那样设计出来的。 |



2.然后,只能说群友太莽了,没有行走图的结构认识,做出匪夷所思的操作。为了方便,群友用的是 图块行走图,而且把本来为高塔的48x96行走图,给拆成了两个事件。插件不是这样用的啊……