【Unity】使用 asperite 輸出到 unity

前言

要獨立一個人快速的製作遊戲,其實使用簡化的美術方式是一個要素。
當選用 pixel arts 來進行的時候,aspertie 的動畫編輯功能真的很香
想當然,會想找一些工具來簡化把 pixel art 動畫轉入 project 的工作流程

這時候就找到了 AnimationImporer 這個香到不行的工具

順便貼一下如果自己手動的話要怎麼做:
https://www.youtube.com/watch?v=LY3LwPJR1cM&list=PLfQU2ch2UpvFO-H2MAwQ2dYekAwQ69IPM

使用效果

在asperite中將動畫用 Tag 標註片段,把他加到 Unity 專案的資料夾中,
用拖曳式的方式在 Unity 中把 asperite 檔案 拖到 plugin 中,就可以自動幫你轉成 sprite sheet、animation clip 、animation controller

安裝方式

參考官方教學的話有兩種方法
https://github.com/talecrafter/AnimationImporter

方法1. 把 repo 中 Assets 複製到 Assets\Plugins\
方法2. 使用 package manager 下載

兩種方法都用的話會跳 compile error 喔 XD

遭遇問題

無法正確更改 asperite 路徑

這個問題基本上要 你是用 Mac & 你的asperite不在預設路徑兩點齊聚才會發生

  1. 找不到 asperite
    嚴格來說,是無法選取 \Users\[你的帳號]\Library 資料夾
    因為 File Panel 的限制,所以也開不了隱藏資料夾,這邊我是選擇把 asperite 複製到 \Application 處理

  2. 複製出去的 asperite 無法選取
    由於我的 asperite 是用 steam 買的
    路徑是 ~\Library\Application Support\Steam\steamapps\common\Asperite\
    然後發現在更改 config 的時候跟本無法選用

爬了一下設定 在Assets\Editor\Asperite\AnimationImporterWindow.cs 中有限制 FilePanel 的副檔名,把這個限制拔掉就可以用摟。

            if (GUILayout.Button("Select"))
            {
                var path = EditorUtility.OpenFilePanel(
                    "Select Aseprite Application",
                    "",
                    "exe,app");  //把這裡改成 ","); 把限制拔掉
                if (!string.IsNullOrEmpty(path))
                {

但這個限制原本應該要沒有問題才對
因為其實MacOS 底下的 app 是一個副檔名為 .app 的資料夾來包裝的
不知道為什麼在這裡會出現問題

無法輸出檔案

修改了上述的問題之後,還是無法正常輸出檔案
最後發現是因為 被 call 的 asperite 無法正常執行
(我把Aseprite 複製到別的地方讓 Unity 去 call)

關鍵是因為… Aseprite 會需要同層的 data 資料夾裡面的資料

這邊不確定是不是因為是 steam 版的關係所導致的,
解決方式就是把 data資料夾也複製好一份(或者把路徑改成 steam上的版本也可以)

參考資料

關於

AI Computing / 武術 / 登山 / IT / - 貪多而正努力咀嚼的人生小吃貨