欢迎光临散文网 会员登陆 & 注册

计算瓜游立绘拼图坐标的亿些补充说明

2020-10-06 10:55 作者:Deficuet  | 我要投稿

水一篇专栏天书补充一些上一篇没讲的东西

记录一下自己上过的

我的上一篇专栏,没看过的建议先看这本天书(

这是谢菲皮肤的两张立绘,上篇专栏已经水过了谁是主立绘谁是副立绘,副立绘粘贴在主立绘上的坐标怎么算等问题。最后也讲到了该思路同样适用于能代皮肤那样的需要更多张立绘贴在一起的场合。

然而我少考虑了一点(亿点

好家伙

谁该粘贴在谁上面,谁应该先粘贴。

我又回去翻了翻Unity文件,其实也挺简单的

关于RectTransform的命名遵循上一篇专栏写的

还是那个熟悉的无后缀无扩展名的文件,这里我是从与文件名相同的GameObject开始找的

一路找到layers,打开它的m_Children,发现有三个子项,都是RectTransform类

把三个子项都打开,找到它们的名字

拿第0项举例,它叫"nengdai_4_n"。对其它两项进行同样的操作,可得名字分别是"nengdai_4_front"和"nengdai_4_middle"

再结合观察游戏里能代的立绘和被拆开的几个立绘的部件

易得先粘贴"nengdai_4_n",再粘贴"nengdai_4_front",最后粘贴"nengdai_4_middle"

也就是从layers所有子对象的第0项开始往下按顺序粘贴到layers的父对象上

问题都解决了(看似是)可以开始算坐标了,上一篇专栏就是讲算坐标的思路的

码了点代码用来跑坐标

依次是_n,_front,_middle在主立绘上粘贴的坐标。然后来康康结果吧

wtm直接尬住

好家伙又有问题。回去看看粘贴立绘的步骤

第一步,把主立绘resize到 4100x4295 的尺寸,长宽比值约为0.9546。回来看看主立绘的尺寸

长宽比值约为 1.2999  ,明显是对不上的

在主立绘的RectTransform所属的GameObject的m_Component底下找

第一项是RectTransform,暂时不管。第二项是CanvasRenderer,没用,不管。第三项是MonoBehavior,我们要的是这个,展开它

找到最下面的 mRawSpriteSize ,1955x2048 这就是主立绘原本应有的大小。1955x1504 的尺寸只能说是立绘有效信息的尺寸,剩下了大片空白就裁掉了。

还原立绘尺寸的方法,这里不能用缩放了,而是直接扩展出一片空白。扩展方向则是Unity的RectTransform的x,y的两个正方向,即向右和向上。在python的PIL库中我采取的方法是先把立绘图片打开,赋值给变量 p_main。之后新建一张空白图片,尺寸为 1955x2048,模式为RGBA,四个通道的值为 (0, 0, 0, 0),赋值给变量 b_main。然后把 p_main主立绘上下翻转,再粘贴到 b_main 的 (0, 0) 坐标上,最后把 b_main 整体上下翻转。

对于剩下的副立绘做同样的操作还原尺寸。这回再进行粘贴

一转VSCode

结果非常的Amazing啊

这下应该没啥问题了 有问题就再水几篇天书

计算瓜游立绘拼图坐标的亿些补充说明的评论 (共 条)

分享到微博请遵守国家法律