查看: 1158|回复: 5

[有事请教] 如何实现像fear and hunger一样的肢体系统?

[复制链接]
梦石
0
星屑
139
在线时间
20 小时
注册时间
2025-2-5
回帖
11
发表于 2025-9-23 03:31:19 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
请教一下:
我现在尝试在自己的游戏里加入类似fear and hunger的肢体系统,我目前的想法是,设置许多敌人作为肢体,再在敌群里面将其拼接。 我现在遇到的问题是在敌群功能里很难手动将这些肢体完美对其,所以我想知道是不是应该在Troop.json里直接设置肢体的X和Y坐标,以及如何确定我该输入的各肢体的x和y坐标。
QQ20250923-032642.png fear3.png
梦石
0
星屑
11954
在线时间
7379 小时
注册时间
2015-4-26
回帖
393
发表于 2025-9-23 07:14:38 | 显示全部楼层
问题1:是不是应该在Troops.json里直接设置肢体的X和Y坐标
答:是的

问题2:如何确定该输入的各肢体的x和y坐标
答:这个问题应该从素材自身的制作方式入手。假设你有一个128×128的敌人整体图片psd文件,而这个文件有敌人的四肢和身体总共5个图层,并且当这些图层都可见的时候呈现的就是你想要的整个敌人的视觉效果,那么应该分别将四肢和身体在其他图层设为不可见的情况下各自输出为PNG文件,你得到的就是5个128×128的敌人身体部位文件,并且当这些图片“边缘”全部对齐的时候就是你想要的整个敌人的视觉效果。那么该输入的各肢体的x和y坐标也呼之欲出了:所有部位的x坐标应该都是相同的,y坐标也是。

另:如果你在制作敌人身体部位的时候仅仅是将敌人的整体图片进行切割处理,那么在MV最终呈现的效果中会原因不明地出现缝隙(尽管已经对齐),一个简单的补救方法是在切割图片时要保留一些切割后相互重叠的部分(例如一张包含“123”文字的图片切割为“12”和“23”两张图片),不过此时在MV最终呈现的效果中一些半透明的像素会因为在两张图片重叠而加深颜色。参考:https://rpg.blue/thread-400182-1-1.html

评分

参与人数 1赞 +1 收起 理由
alexncf125 + 1 在线时间6666 小时

查看全部评分

回复

使用道具 举报

梦石
0
星屑
139
在线时间
20 小时
注册时间
2025-2-5
回帖
11
 楼主| 发表于 2025-9-23 08:29:30 | 显示全部楼层
本帖最后由 1061580242 于 2025-9-23 08:41 编辑
煎蛋流Kira☆ 发表于 2025-9-23 07:14
问题1:是不是应该在Troops.json里直接设置肢体的X和Y坐标
答:是的


感谢大佬的回答!
我尝试过你说的这种思路,这样做确实能做到比较完美的拼接,但在rpgmaker里,似乎载入的整个图片包括哪些透明的部分都会被视作可选中范围。也就是说当鼠标掠过那些巨大的透明部分的时候,系统也会认为玩家选中了这一部分的敌人。(至少我这里是这样的,我不确定是不是插件导致的) 而即便是想用键盘的上下左右键来选择敌人,实际上也会因为这些图片有着同样的X和Y坐标而混淆,而如果不做成屏幕一样大,就又需要面对如何完美拼接的问题了。 我看了一下fear and hunger的游戏文件,作者把每个部位导出为只包住该肢体的最小矩形 PNG,于是鼠标/键盘选择就准确指向该肢体的可见区域附近。
而对于作者的这种做法,我的问题依然是在于:他是如何实现这些矩形的完美拼接的,以至于两个凭借相同的怪物出现在同一个战斗中也看不出任何问题。我认为作者肯定是在Troop.json直接定义了肢体的X和Y坐标,但我现在还不知道该如何确定应该填入的X和Y坐标的具体的值
回复

使用道具 举报

梦石
0
星屑
11954
在线时间
7379 小时
注册时间
2015-4-26
回帖
393
发表于 2025-9-23 14:08:33 | 显示全部楼层
1061580242 发表于 2025-9-23 08:29
感谢大佬的回答!
我尝试过你说的这种思路,这样做确实能做到比较完美的拼接,但在rpgmaker里,似乎载入 ...

按照你所说的,我尝试将敌人图片分割成各个图片边缘紧贴可见部分的小图片,然后导入到MV中,再编辑Troops.json文件中的x和y坐标的时候发现跟想要的结果有很大出入,我大概明白你疑惑的地方在哪里了。

经过探索发现,MV的“敌群”中敌人图片的坐标实际上是图片底部中央的点的坐标(而非常规的图片左上角的点的坐标),这才导致了敌人各个部位的坐标不能直接套用图像编辑软件中的坐标。我也怀疑是这个问题导致了前面“原因不明地出现缝隙”的现象。

所以在编辑Troops.json文件的图片坐标时,只要先将敌人各个部位图层在图像编辑软件中的坐标差值转换为它们在MV中的坐标差值,再在“敌群”中选定一个部位作为基准后,根据其余部位跟这个部位的坐标差值计算出它们的坐标就可以了。为了方便计算,我做了个Excel表格。
MV敌人部位图片数据计算表格.zip (9.02 KB, 下载次数: 3)

不过我没有鼠标选定敌人的插件,不确定能否解决你选定敌人的问题。
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2025-9-23 18:52:51 | 显示全部楼层
你应该用的一张敌人图其他部位都是空白的透明图才对
回复

使用道具 举报

梦石
0
星屑
139
在线时间
20 小时
注册时间
2025-2-5
回帖
11
 楼主| 发表于 2025-9-24 17:15:38 | 显示全部楼层
煎蛋流Kira☆ 发表于 2025-9-23 14:08
按照你所说的,我尝试将敌人图片分割成各个图片边缘紧贴可见部分的小图片,然后导入到MV中,再编辑Troops ...

感谢大佬的帮助,大佬提供的Excel表格非常有用!
我这边问过了恐惧与饥饿的作者,他的方法也是在Troop.json里直接修改敌人的X和Y坐标,没有用额外的插件。
我这边是用到了一个实时显示鼠标坐标的插件,再在肢体上的拼接点上添加辅助点来尝试让这这些拼接更轻松。

评分

参与人数 1赞 +1 收起 理由
煎蛋流Kira☆ + 1 我很赞同

查看全部评分

回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部