关于行走图优化核心
相关插件
核心插件:
◆Drill_CoreOfEventFrame 行走图 - 行走图优化核心
子插件:
◆Drill_EventFrameLayerAndZIndex 行走图 - 层级与堆叠级
◆Drill_CoreOfEventFrameWithMouse 行走图 - 行走图与鼠标控制核心
……
核心提供行走图的各种基本功能,优化功能结构。
并且定义了 行走图碰撞体 的结构。
| 该文档主要介绍 行走图自身属性 的定义、控制。 |
行走图属性
帧数
帧数: 指行走图播放行走动画的帧数。
以单行走图为例,单行走图一共有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表示。
行走图规则(指向)
行走图分为 行走图规则和行走图属性 两个部分。
行走图规则分为:单行走图、八行走图、图块行走图、其他规则(比如动画序列)。
行走图属性分为:帧数、朝向、中心锚点、碰撞体。

行走图规则相关介绍可以去看看文档:“7.行走图 > 关于行走图与图块.docx”。
另外 层级与堆叠级 其实也属于行走图属性,但由于不常用,所以没列出来。
层级与堆叠级
定义
层级: 指界面中 固定定义 并且用于区分层次的 贴图。
每个层级都有名字,比如:下层、图块层、中层、图片对象层 等。
堆叠级: 指处于相同层级下,区分贴图先后顺序的 数字参数。
堆叠级也叫图片层级,数字值越大,越在上面。
界面、层级、堆叠级的关系如下图。

(堆叠级也称”图片层级”,可以去看”0.基本定义 > 界面.docx”的层级与堆叠级章节)
查看方法
核心中提供了 行走图碰撞体 的显示。
使用下面插件指令能显示碰撞体:

示例中 设计-横版2D模仿 的效果是 绿色的文本显示:

默认层级
1)物体的层级
地图界面中,物体和图块被 简单划分 为一类层级。

但是实际上,它们层级要更复杂一点,如下图:

| 图块分为有星号和无星号两种,星号图块层 在 物体下层和物体中层 的上面,这也是为什么星号图块能挡住事件。 |
物体分为四个层级:** 物体原层级、物体下层、物体中层、物体上层**。
默认情况下,物体处于“物体原层级”。
即根据下图的优先级,自动切换 物体下层、物体中层、物体上层。

| 你可以使用插件修改层级,比如事件设置为“在人物下方”,但事件的层级可以设置为在“物体上层”。见后面章节:修改层级与堆叠级 。 |
2)层级查看与细节
使用“DEBUG堆叠级查看”时,由于层级名字太长,这里简化为了两个字:
"物原"表示"物体原层级","物上"表示"物体上层","上层"表示"上层"。

另外注意,记得随时打开debug查看层级,
并且注意“物中”和“中层”,不要写错了。
(这两个层级容易混淆)




默认堆叠级
1)变化的堆叠级
当贴图处于 物体原层级、物体下层、物体中层、物体上层 时,
物体的堆叠级 = 贴图y轴值
因此,打开“DEBUG堆叠级查看”时,
你会发现堆叠级的值为522,这是因为贴图处于y=522的位置。

| 地图镜头上下移动时也会影响堆叠级,因为镜头会让贴图的y值变化。 |
2)固定的堆叠级
当贴图处于 下层、中层、上层 时,
物体的堆叠级是固定值,不会受到任何其他因素影响。
注意,“堆叠级”与“图片层级” 是同一个东西,只是称呼不同。
物体贴图处于这些层级时,会根据堆叠级与界面装饰插件相互排序。
如下图,小爱丽丝处于 中层+堆叠级1,地图背景处于 中层+堆叠级8,
所以这个地图背景在小爱丽丝前面,从而遮挡住小爱丽丝。

修改层级与堆叠级
能修改的插件如下:
◆Drill_EventFrameLayerAndZIndex 行走图 - 层级与堆叠级
该插件提供了灵活的 层级与堆叠级 的切换,
事件注释和插件指令如下。


所以,设置层级后,要注意根据情况使用“附加堆叠级”和“固定堆叠级”指令。
(堆叠级可以设置为小数、负数)


这个插件的具体效果,可以去 设计-横版2D模仿 看看。也可以看看文档:“6.地图 > 地图设计-横版2D模仿.docx”。 |