免費精靈動畫工具 · 直接在瀏覽器裡跑

精靈動畫工具:預覽與匯出精靈表動畫

做一個你自己的精靈動畫工具

描述一個角色,精靈動畫工具就會產出一張可以直接預覽的完成精靈表:待機、走、跑、攻擊與施法,八個方向,透明影格排在乾淨的網格上。

✦精靈
做一個 精靈動畫工具

精靈動畫工具做的事很單純:吃進一張精靈表——把所有動畫影格塞進同一張圖的網格——然後播給你看,讓你在美術進到遊戲之前就能判斷節奏、間距與剪影。Neta Studio 的精靈動畫工具會讀取精靈表,從圖片尺寸推測影格大小、欄數與播放順序,接著在瀏覽器的 canvas 上開始播。整個過程不上傳任何東西。

單張靜態影格對走路循環一點幫助都沒有。你要看的是第 3 格跟第 4 格的關係、接觸姿跟通過姿的對比,以及整體會不會因為某一格差了一個像素而飄掉。這些工具在載入時就直接播給你看,猜錯了再讓你手動修正影格大小、順序與 FPS。

預覽精靈表動畫

把 PNG 或 WebP 拖到 canvas 上。工具會讀取圖片本身的寬與高,再推一個合理的網格:它把尺寸做因數分解,找出 2 到 16 之間、能讓每一格接近正方形且落在常見精靈尺寸上的整數欄數。512×512、4 欄 128px 影格的精靈表,384×256、6 欄 64px 影格的精靈表,大多數情況都能猜中。300×300 就猜不中,因為 300 沒辦法被 16/32/64 整除,這時你得自己設影格大小。

播放跑在 HTML canvas 上,並設定 `imageSmoothingEnabled = false`,所以整數倍縮放時像素邊緣是硬的。放大到 4× 或 8× 走的是最近鄰,這正是像素圖要的:32px 的影格以 8× 顯示,就是螢幕上 256px 的精靈,每個來源像素展開成 8×8 的方塊。換成雙線性平滑,這些方塊會糊成一團灰。

因為一切都在 canvas 上處理,檔案不會離開你的機器。沒有上傳、沒有佇列、不用帳號。客戶還沒發表的精靈表也可以直接拖進來,它就只留在這個分頁裡。代價是超大的精靈表會受瀏覽器記憶體限制——4096×4096 的 PNG 解碼成 RGBA 大約 67MB,桌機沒問題,低階平板就很緊。

1

01

把 PNG 或 WebP 精靈表拖到 canvas 上。

2

02

讓工具從圖片尺寸推測影格大小、欄數與列順序。

3

03

先播一次。在動任何設定之前看完第一輪循環——通常它猜的已經是對的。

4

04

網格不對就手動覆寫影格大小與欄數,再重新檢查。

5

05

逐格拖曳檢查接觸姿,然後把 FPS 調高,用遊戲的實際速度感受這個循環。

騎士 — 6 格走路循環條,正在這個頁面上實際播放。

設定影格大小、順序與 FPS

真正決定你看到什麼的只有三個設定:影格大小、播放順序、速度。任何一個設錯,動畫看起來就是一團糟,而且原因跟美術完全無關。

影格大小是單一儲存格的寬與高,單位是像素。工具提供 16、32、64、128 這幾個標準選項,也可以自訂。這個值必須能整除精靈表的尺寸。400px 寬的精靈表配 128px 的影格,等於 3.125 欄,算圖時向下取整成 3 欄,右邊留下 16px 沒用到的像素——那些像素就會在最後一欄露出隔壁影格的一小條。如果你的影格右緣看起來被切歪,就是影格大小除不盡精靈表的寬度。

順序分 row-major 和 column-major。row-major(常見的預設值,也是多數匯出工具產出的格式)由左讀到右,再換到下一列。column-major 則是從上往下讀,讀完一欄再往右。一張以欄為單位匯出的走路表若被當成列來讀,播放順序會變成第 1 格、第 5 格、第 9 格——每一步都跳過四分之一段動畫。修法只是一個開關,但你得先認出症狀:動作在跳。

FPS 和 `image_speed` 是兩個常被混為一談的旋鈕。FPS 是播放器每秒前進幾格。`image_speed`(GameMaker 的用語,也是很多人跑來搜尋的關鍵字)是精靈動畫速率相對於 room speed 的倍率;1.0 代表每個遊戲 step 播一格,0.5 代表每隔一個 step 才前進。在瀏覽器工具裡,直接設 FPS 就好。如果你是從 GameMaker 移植精靈、角色卻以兩倍速在動,先檢查 `image_speed`,不要急著重切精靈表。

設定值設錯時的症狀
影格大小16 / 32 / 64 / 128 / 自訂最後一欄邊緣被切歪,影格互相滲入
順序row-major / column-major每次前進都跳過四分之一段循環
FPS播放器內 1–60;遊戲常用值 8–24循環相對於移動速度不是太飄就是太抖
image_speed倍率,0.25–4.0從 GameMaker 精靈表移植過來後,精靈以 2× 速度播放

走路循環、待機與攻擊

角色的可讀性大半靠三種動畫撐起來,而它們出錯的方式各不相同。三者的失敗模式沒有共通點,所以一個只會循環播放單一通用片段的預覽工具,等於沒抓到重點。以下按動畫類型分開說明。

三者通用的原則:用遊戲最終尺寸預覽,不要放大看。在 8× 下看得清楚的走路,縮到 1× 常常就垮了,因為抬腿只有 2 像素,抬起的腳和地面之間的對比太低。要驗收之前,先把預覽縮到玩家真正會看到的大小。

走路循環:下、左、右、上,以及八方向的情況

四方向走路表通常排成下、左、右、上——「下」面向鏡頭、「上」背對鏡頭,「左」和「右」是水平的那一對。有些匯出工具用下、上、左、右。如果你按上、角色卻往後走,就是列序被對調了,上輸入播到了下那一列。這在播放器裡改兩行程式就好,不用重新匯出。

要做到八方向移動就得有斜向:左下、右下、左上、右上。用水平鏡射的四方向可以便宜地做出 4 列(左和右是同一張圖翻過來,這也是很多精靈表只有 4 列而不是 8 列的原因)。只有 4 個方向卻要支援斜向移動,引擎只能挑最接近的面向,斜向輸入時就會明顯地瞬跳。如果你的遊戲支援斜向移動,要嘛編 8 列各自獨立的圖,要嘛接受那個瞬跳。

影格數:16–32px 的角色,每個方向 6 到 8 格很常見。4 格走起來很有彈跳感,但在小尺寸下反而看得清楚;10 格的時候,接觸姿和通過姿之間的間隔已經密到需要逐格控時,而固定 FPS 的播放器表達不了這件事。瀏覽器工具是等速播放的,所以如果你打算在這裡預覽,精靈表就要用平均的間隔來排。

待機:擠壓與伸展

待機是玩家在什麼都沒發生時一直盯著看的動畫,所以每一格的份量最重。標準結構是一個呼吸循環:胸口起伏、肩膀抬一個像素、重心位移,再回到原點。擠壓與伸展是讓它不要看起來像有人用手指戳一張靜態圖的關鍵。下沉的那一拍,把角色垂直壓縮一到兩個像素、水平加寬一個像素;上抬的那一拍反過來做。

最常見的失敗是擠壓過頭。32px 的角色壓掉 4px 等於身高的 12.5%,看起來就是一塊果凍。32px 的精靈做 1 像素的垂直伸展是 3%,那才叫呼吸。如果你的待機看起來像在彈跳床上跳,八成是你縮放的是整個儲存格而不是裡面的角色——影格相對於網格變了大小。

用你實際上線的 FPS 來預覽待機。6 FPS 的待機會飄,12 FPS 才叫呼吸。慢速待機大多是同一張圖加上微小位移,所以你真正要檢查的是循環點:最後一格必須乾淨地接回第一格,肩膀的位置不能跳。

攻擊與施法:預備、衝擊、回復

一次攻擊是三個節奏不均的階段,不是等速亂打。預備是往後收——手臂上膛、身體蓄力,通常佔 2 到 3 格,而且是停住或放慢。衝擊只有一到兩格,是最快的部分,武器伸展到極限,姿勢最誇張。回復是收回來的過程,也是新手最常提早收掉的地方。6 格攻擊拆成 2 格預備、1 格衝擊、3 格回復,讀得出來;平均拆成 2-2-2,看起來就只是推了對方一把。

因為播放器是等速播放,技巧在於用重複影格做出預備的停頓,而不是去改逐格控時。兩格一模一樣的預備,就是那個停頓。一格衝擊,就是那下爆點。這跟手工繪製精靈表用的是同一套做法,移植到任何引擎都不會走樣。

施法動畫多了一個問題:特效必須在某個特定影格出現與消失。如果精靈表把飛彈或魔法陣直接畫進影格裡,播放器就得知道什麼時候生成真正的物件——通常是衝擊的第一格。如果特效是獨立物件,精靈表就保持乾淨,把生成時機綁在衝擊影格的索引上,而不是綁在實際的秒數上。

  • 影格拖曳軸在不動 FPS 的前提下逐格前進,檢查接觸姿與衝擊影格。
  • 最近鄰縮放2× 到 8× 的整數倍縮放,關閉平滑,像素圖才不會糊掉。
  • 網格疊層切換顯示推測出的儲存格邊界,確認影格大小真的除得盡精靈表。
  • 列順序切換在 row-major 與 column-major 的讀取順序之間切換,修掉跳格的動作。

用一句描述生成走路循環

手工畫出走路循環的八列要花好幾個小時,換來的卻是一張還得丟進播放器檢查的精靈表。Agent Sprite Forge 把這件事反過來:你寫一段角色描述,它把精靈表生出來。一句描述、八個方向,出來的表已經切好網格、影格帶透明通道,腳底還有錨點參考線,擺進場景才不會上下浮動。

第一輪的時候,錨點參考線比畫得好不好更重要。腳沒有共用同一條地平線的走路循環,不管畫得多好,看起來都像在彈跳床上跳。因為生成的影格帶著錨點,你可以把精靈表丟進動畫工具播一次,看地平線有沒有守住——這是靜態圖給不了的檢查。

生成結果就是一張普通的精靈表:有列有欄、背景透明、影格尺寸標準。沒有任何一部分被鎖在 Neta Studio 裡。把它匯出,丟進動畫工具做一輪預覽,引擎要單列就重切,然後往下走。如果生成器給了你用不到的方向——比如左後方,因為你的遊戲只支援四方向——在重切那一步把那列忽略掉就好。

1

01

在 Agent Sprite Forge 裡描述角色:剪影、色盤、面向、動畫組。

2

02

生成八個方向的走路循環。

3

03

精靈表以網格形式交付,影格帶透明通道,並附腳部錨點。

4

04

丟進精靈動畫工具,用目標 FPS 播這個循環。

5

05

跑完整整一輪,檢查地平線。會飄就重新生成或重切。

精靈動畫軟體:該比較什麼

該用哪個工具,取決於你手上已經有什麼。一張完成的精靈表加上一個節奏問題,跟一張空白畫布加上一個不存在的角色,是兩件不同的事。下面的表把起點對應到適合的工具,也包含那種「引擎內建的動畫工具就是正解、外掛播放器純屬多餘」的情況。

一條簡單原則:要預覽就用播放器,要自己畫就用編輯器,要生成就用生成器。大部分的混亂來自拿播放器當編輯器用——播放工具修不好一個爛的接觸姿,而沒有播放功能的繪圖工具也調不出節奏感。

你的起點適合的工具
已經有完成精靈表,要檢查節奏這個瀏覽器播放器 — 拖進來、播放、設定影格大小與 FPS
空白畫布,要自己畫像素圖Aseprite — 圖層堆疊、影格時間軸、洋蔥皮
完全沒有角色,需要一整套Agent Sprite Forge — 一句描述、八個方向、輸出已切好網格
精靈表已經在遊戲專案裡引擎內建的動畫工具 — Unity 的 Animator、Godot 的 AnimatedSprite2D、GameMaker 的精靈編輯器
只想做一次預覽給別人看GIF — 不需要執行環境,到處都能播,不用播放器也會循環
魔法師 — 4 格施法,正在這個頁面上實際播放。

匯出 GIF 或重切後的精靈表

兩種匯出就能涵蓋大部分情況。第一種是動畫 GIF:目前這個循環、目前這個 FPS、目前這個倍率,存成單一檔案。GIF 不需要執行環境,任何聊天視窗、審稿工具或議題追蹤系統都能播。要傳給一個絕對不會安裝任何東西的協作者,就是這個。代價是 256 色的色盤,對多數像素圖沒差,但在柔和漸層上會出現明顯色帶——如果你的精靈有平滑的光暈,就等著看它色階化。

第二種是重切後的精靈表。動畫工具會拿載入的精靈表跟它的影格設定,寫出一張排列方式不同的新圖:翻頁式單列、四方向的四列,或是同樣的網格但換一種儲存格大小。只要儲存格大小不變、只是重新排序,重切是無損的。一旦改了儲存格大小,工具就得重新取樣,而像素圖只要不是整數倍取樣,邊緣就會軟掉。

最常見的重切是翻頁式單列:把一段動畫的每一格從左到右排成單一列,不換行。有些引擎和 CSS 精靈技巧要的就是這個形狀。拿 6 格的走路,重切成 6 格一列,這條圖就是影格寬的 6 倍、影格高的 1 倍。如果你要的是這條圖的 GIF,精靈表轉 GIF 的工具可以從打包好的精靈表做出一樣的循環匯出。

匯出前先確認影格大小和欄數。匯出用的是你在播放器裡設定好的網格,不是它載入時猜的那個。如果你為了修正切歪而覆寫了猜測值、卻沒重新確認影格數,匯出的精靈表就會沿用錯的格數。

1

01

把影格大小、欄數和 FPS 設好,讓預覽是正確的。

2

02

要好分享的循環就選 GIF,要重新打包的精靈表就選重切。

3

03

要翻頁式單列,就重切成單列。

4

04

下載。整個過程都沒有上傳,所以匯出的檔案就在本機。

Knight character portrait generated from one written description
Rena Dawnlight — 上面那條 6 格騎士走路背後的描述。
The Cyclops' Island — 一款等角像素風 3D 遊戲,從一段文字描述做出來的。

走進它所屬的那個世界

精靈是沒有地方站的角色。最後一步是別人沒提供的:把你剛做好的精靈表放進一個有人可以走來走去的世界裡——一座小島、一顆行星、一個下雨的街角。這個網站上的每個世界都是從一段文字描述做出來的,發佈成一個可以直接玩的頁面。

常見問題

我預覽精靈表時,它會被上傳嗎? +

不會。精靈表在你的瀏覽器裡解碼,並在 HTML canvas 上播放。沒有上傳步驟,伺服器上也不會留副本。這也代表超大的精靈表會受瀏覽器記憶體限制,而不是某個檔案大小上限。

為什麼我的精靈表右緣看起來被切歪? +

你的影格大小除不盡精靈表的寬度。400px 的精靈表配 128px 的影格是 3.125 欄;算圖時向下取整成 3,多出來的像素就跑到最後一欄去了。換一個除得盡的影格大小,或把精靈表裁成倍數。

為什麼動畫每次前進都跳過四分之一段循環? +

精靈表是 column-major,而播放器用 row-major 在讀。切換順序設定就好。症狀很明確:動作是一段一段跳,而不是平順地一步步前進。

image_speed 是什麼?跟 FPS 差在哪裡? +

image_speed 是動畫速率相對於遊戲 step 的倍率,最常在 GameMaker 的匯出檔裡遇到。FPS 是每秒前進幾格。移植之後精靈變成兩倍速,通常是 image_speed 是 2.0,而不是 FPS 設錯。

我可以預覽帶斜向的單列圖條嗎? +

可以,前提是精靈表裡真的有那些列。八方向就是八列,或是四列加上左右鏡射。沒有斜向的列,支援斜向移動的遊戲就會瞬跳到四個面向中最接近的那個,螢幕上看得出來。

匯出的 GIF 會掉畫質嗎? +

GIF 的色盤上限是 256 色,所以平塗的像素圖撐得住,柔和漸層會出現色帶。如果你要的是精確的像素,請匯出重切後的精靈表而不是 GIF,保留原始的影格資料。

回到 3D 遊戲產生器

31 個完成的 3D 世界、遊戲與場景全都在同一個頁面上——每一個都可以玩。

平台: Neta Studio頁面: 精靈動畫工具:預覽與匯出精靈表動畫接著讀: /app/agent-sprite-forge-skill · /app/agent-sprite-forge-skill/knight-walk · /app/agent-sprite-forge-skill/mecha-cat

從素材庫預覽精靈表

這個素材庫裡的每個資產都是背景透明、可直接進遊戲的 PNG,而且附有當初使用的描述 — 精靈表素材與免費精靈表,依動作、風格與主題分類。免費瀏覽與下載。

×