我正在创建一个名为“Hitboxer”的应用程序,旨在帮助2D游戏开发者,特别是像素艺术家,创建自定义的碰撞盒子。
我正在用Python + raylib从头开始构建一个游戏,并遇到一个问题:尝试为每个帧在精灵图中编写碰撞盒子太麻烦了。如果我想改变动画,很多东西都需要重新编码。使用Unity或Godot的人通常会选择一个胶囊或矩形作为碰撞盒子/伤害盒子,并在整个动画中保持一致,这是可以接受的,尤其是在2D游戏中,会给玩家一些缓冲空间,而不是严格地将碰撞盒子拟合到角色轮廓中。但是,对于我来说,以及我想要的感觉,我更喜欢它稍微靠近一些。
所以我试图使用Aseprite中的“切片”功能来在每个帧中标记出碰撞盒子的位置和大小。但是,结果没有办法导出JSON文件(我需要导出JSON文件,因为我的游戏会解析JSON数据来遍历帧和碰撞盒子),也没有Lua脚本来解决这个问题。所以我说算了,决定自己创建一个工具,包括所有我想要的功能。
(我在GitHub上有一个完整的功能列表,我不想在这里塞满它。)
我最终想添加很多功能,例如:
- 贝塞尔曲线和形状工具,使您可以为像素和HD艺术创建真正独特形状的伤害盒子
- 可定制的JSON布局,使您可以根据游戏解析数据的方式结构输出,编辑元数据名称并添加自己的类型
- 与Unity和Godot的集成,以及将其放入他们的资产商店
自从我使用Hitboxer以来,它已经很好地融入了我的工作流程:
在Aseprite中创建一个动画(精灵图)-->导出到Hitboxer中以获取JSON元数据-->将该文件发送到我的游戏引擎进行解析。
我只找到一个其他人遇到了同样的问题:https://community.aseprite.org/t/is-there-a-way-to-slice-single-frames/2020 - 所以这可能最终会对任何人都没有用😭,但我觉得它很酷,我非常感激任何的反馈,无论您是否认为这在未来会有用,还是有任何想法的特性。
我创建一个碰撞盒子、编辑它并直接将JSON文件导出到我的游戏仓库的视频。
点击这里尝试它(注意:还在早期开发阶段,目前仅在Linux和Windows上):https://github.com/DihyahAdib/Hitboxer2.0/releases/tag/v3.1.5
评论 (0)