計算瓜游立繪拼圖坐標的億些補充說明

水一篇專欄天書補充一些上一篇沒講的東西
記錄一下自己上過的當

我的上一篇專欄,沒看過的建議先看這本天書(


這是謝菲皮膚的兩張立繪,上篇專欄已經(jīng)水過了誰是主立繪誰是副立繪,副立繪粘貼在主立繪上的坐標怎么算等問題。最后也講到了該思路同樣適用于能代皮膚那樣的需要更多張立繪貼在一起的場合。
然而我少考慮了一點(億點

誰該粘貼在誰上面,誰應該先粘貼。
我又回去翻了翻Unity文件,其實也挺簡單的

還是那個熟悉的無后綴無擴展名的文件,這里我是從與文件名相同的GameObject開始找的

一路找到layers,打開它的m_Children,發(fā)現(xiàn)有三個子項,都是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在主立繪上粘貼的坐標。然后來康康結果吧

好家伙又有問題?;厝タ纯凑迟N立繪的步驟

第一步,把主立繪resize到?4100x4295 的尺寸,長寬比值約為0.9546?;貋砜纯粗髁⒗L的尺寸

長寬比值約為 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 整體上下翻轉。
對于剩下的副立繪做同樣的操作還原尺寸。這回再進行粘貼

結果非常的Amazing啊

這下應該沒啥問題了?有問題就再水幾篇天書