【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不在預設路徑
兩點齊聚才會發生
-
找不到 asperite
嚴格來說,是無法選取\Users\[你的帳號]\Library
資料夾
因為 File Panel 的限制,所以也開不了隱藏資料夾,這邊我是選擇把 asperite 複製到\Application
處理 -
複製出去的 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上的版本也可以)