新手求教关于图片透明区域剪辑的问题(附图)

role weapon 组合

我有一个节点叫做role,然后下面有个子节点是weapon,分别放了人物和武器的贴图上去。

人物和武器不剪辑透明区域并且都将锚点设置为左上角,人物和武器贴图就可以正确重合,否则位置就不对,武器会直接到人物的头上。

但是这样的话,我要控制人物移动的时候,透明区域也跟着一起动,导致人物移动的逻辑不好写,而且后面要给武器加攻击判定啥的,也会很麻烦。

纯小白,我试了一下官方文档说的将精灵组件下的Trim设置为false,Size Mode设置RAW,但是不管用,求助求助,卡快两天了,以前遇到问题都是自己百度结合chatgpt和官方文档,这个实在是想不到好的解决办法。

对了,人物和武器的图片大小是不一样的。

我想过先剪辑再手动调整,但是那样就很。。。,我看文档介绍图片剪辑的那块,说美术有时候是会这样画的,这样帧动画的动作什么的也都是美术做的,程序就不用管那么多。

自学看课程也没有讲到类似的东西,救救。。

我有一个思路:

在人物和武器精灵初始化的时候,通过代码为他们加上一个刚体,刚体的大小和位置就通过获取图片的有效区域来决定,然后游戏的移动之类的就控制缸体的移动。

但是这样就算实现了,那我播放序列帧动画的时候,是不是每一帧播放之前都得去做一下刚体的改变,这样会不会太耗费资源了,而且这月是不是要重写一下cc.animation还是说需要自己写一个动画组件。

希望有懂的大佬能解解惑

1677588949748 这样就好了

是的大佬,这样是能正确显示位置,但是如果人物要移动,比如进行转向的时候,由于左边透明区域很多,调整一下人物精灵的转向,显示出来的效果就像是人物瞬移了一段距离

如果 你移动位置 建议做动画

好的吧,我以为有其他更好的解决办法来着 例如只针对有效区域(非透明区域)做出操作 我不知道有没有办法实现 谢谢大佬

把这两张图片放在一个 node 上,node 的锚点正好对齐人物脚底位置,然后通过 node 来转向是否可以。

楼上正解。

谢谢回复,回头用你的方法试试看。
目前用了另一个方法,就是在翻转的时候直接重设节点的x。
比如从右翻转到左,就把节点翻转后,并设置节点的x = 宽度 * 2 - 人物的大致宽度,反之亦然
人物宽度是60左右,播放动画时由于人物动作有时候会大一点小一点,但是肉眼看不太出来。
如果有可能的话,可以从左到右取颜色值,宽度 - 颜色不透明的位置就是当前人物的有效宽度了
目前已经基本上够用,不知道后续会不会有啥别的问题。