本文由 FrameSprite 作者工作流整理,AI 辅助编写,引用原始技术资料;构造案例不代表模型或引擎实测。
以逻辑画布记录手部、刀尖和法杖插槽,处理裁边、镜像与父节点变换,附插槽坐标样本。
为每个动作帧记录插槽位置、方向和遮挡层,坐标基于统一的未裁边逻辑画布。显示时先恢复裁边偏移,再应用角色翻转和节点变换。插槽附着独立武器或特效,不会自动修改已经画在角色图里的武器,也不能替代握持美术检查。
约定画布宽高、原点、轴方向和单位。使用像素中心或像素边界都可以,但不能混用。把角色脚底定位与手部插槽区分,前者决定角色在世界中的位置,后者决定附着对象。
为 idle、attack 等动作分别记录 hand、tip 或 muzzle;未出现的插槽标记不可见。图片帧替换或删除后同步更新表。不要按文件显示顺序盲目匹配,使用稳定动作名与帧编号。
若插槽在逻辑画布 (40,28),裁边偏移 (12,8),则裁边图内位置为 (28,20)。先固定一种变换顺序,再按逻辑画布镜像;不能只对裁边后宽度反转,否则不同帧裁边会改变位置。
插槽坐标先相对角色节点,再用节点变换转为世界坐标;若特效放在另一父节点下,还要转到该父节点局部空间。检查角色缩放、旋转和镜像同时发生的情况,不只测默认比例。
在每帧画一个小十字,检查握点、刀尖和层次。遮挡交替时,记录武器位于手前或手后;再用真实特效测试。验收参考角色图,而不是以某个偏移常数“看起来差不多”为准。
样本逻辑画布 64×64,插槽为 (40,28),裁边起点为 (12,8)。仅验证减法关系。
裁边图坐标是 (40−12,28−8)=(28,20);采用边界坐标约定时,逻辑水平镜像位置为 (24,28)。
真实握点需要逐帧标注;像素中心约定的镜像公式会不同。
用途 | 位置 | 附加字段 |
|---|---|---|
handheld | hand | angle / layer |
muzzle flash | muzzle | facing / visible |
blade trail | tip | previous point / layer |
cast effect | staff tip | orientation / action |
示例逻辑画布为 96×96,握持点为 (70,40),本帧裁切起点为 (18,12)。在裁切图里握持点是 (52,28);若用逻辑画布的像素边界坐标做水平镜像,位置则为 (26,40)。这两组数不能直接混用。把 canvas、trimOffset、socket 和坐标约定写进同一份元数据,并用两帧不同裁切量验证。插槽可以解决装备漂移,却不能修复图片里已经画错的手指或武器形状;先逐帧验收握持,再让运行时按数据放置独立装备。
位置正确但手指与物体穿插,仍是美术问题。帧灵输出之后先确定要烘焙武器还是独立附着;选择独立附着时保留足够手部轮廓,并验收空手与装备状态,不能把坐标表当成自动换装功能。
动作帧数量一样不代表插槽位置一样。把表与图片修订绑定,导入时校验动作名、帧数和逻辑画布。标注来源和审查者,比在每个特效脚本中散落不同修正偏移更容易维护。
本次补充由 AI 辅助整理,按公开原始技术资料核对。可下载的输入与预期结果是原创构造案例,不代表模型或引擎实测;实际项目应按步骤保留自己的验收记录。
需要附着的帧应明确记录;未出现时写不可见,不能靠前一帧坐标猜测。
裁边改变图片局部原点;插槽必须保留逻辑位置并减去裁边偏移。
不能。它只描述附着位置与方向,独立武器素材仍需准备。
常见原因是像素中心与边界坐标约定不同,应固定一种公式并记录。
Node2D transforms · Godot Engine
Texture frames and atlases · Phaser
原文:https://cn.framesprite.com/guides/sprite-animation-per-frame-sockets
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。