我正在创建一个名为“Hitboxer”的应用程序,旨在帮助2D游戏开发艺术家,特别是像素艺术家,为他们的角色创建自定义碰撞盒。

我正在从头开始用Python + raylib编写一个游戏,遇到一个问题:尝试为每个帧在精灵表中编写一个碰撞盒太麻烦了。如果我想改变动画,很多内容都需要重新编码。如果使用Unity或Godot,人们通常会选择一个胶囊或矩形作为碰撞盒/伤害盒,并保持其一致性整个动画,这是可以接受的,尤其是在2D游戏中,给玩家一些缓冲空间而不是精确地匹配角色轮廓。这是大多数人推荐的做法。但是,对我来说和我想要的“感觉”来说,我更喜欢它稍微接近一些。

所以我尝试使用Aseprite通过“切片”功能来创建碰撞盒,标记出每个帧中碰撞盒的位置和大小。但是,通过切片无法导出JSON文件(我需要这个,因为我的游戏通过JSON数据来迭代帧和碰撞盒),也没有Lua脚本来解决这个问题。所以我就说 forget了,决定自己创建一个工具,包含我想要的所有功能。

(我在GitHub上有一个完整的功能列表,我不想在这个帖子中显示它。)

我最终想添加更多功能,如:

  • 贝塞尔曲线和形状工具,使你可以为像素和HD艺术创建独特形状的伤害盒
  • 可定制的JSON布局,使你可以根据游戏解析数据的方式来结构输出,编辑元数据名称和添加自己的类型
  • 与Unity和Godot的集成,以及将其发布到他们的资产商店

自那以后,我一直在使用Hitboxer,它很好地融入了我的工作流程:
在Aseprite中创建动画(精灵表)-> 将其导出到Hitboxer中获取JSON元数据-> 将该文件发送到我的游戏引擎进行解析。

我只找到一个其他人有同样的问题:[https://community.aseprite.org/t/is-there-a-way-to-slice-single-frames/2020](https://community.aseprite.org/t/is-there-a-way-to-slice-single-frames/2020],所以这个工具可能只对我有用,但我觉得它很酷,希望可以得到任何反馈:你是否认为它在将来可能有用,还是对功能有任何建议。

你可以在这里尝试它 -它还处于非常早期的开发阶段,所以请注意(Linux & Windows目前支持):[https://github.com/DihyahAdib/Hitboxer2.0/releases/tag/v3.1.5](https://github.com/DihyahAdib/Hitboxer2.0/releases/tag/v3.1.5]