角色精靈表製作器:從一句提示詞產出完整精靈表
做出你自己的角色精靈表製作器
用一句描述做出角色 Sprite — 待機、走路、攻擊、八方向。透明影格、乾淨網格、可直接進引擎。接著把角色放進能走進去逛的 3D 世界。
角色精靈表製作器會吃一段文字描述,回傳一張完整精靈表:待機、走路、跑步、攻擊、施法,涵蓋八方向,放在透明影格上,排在固定網格裡,原點設在腳底。你輸入角色 — 體型、剪影、調色盤、手持武器、服裝層次 — 工具就會把描述中的每個姿勢繪出來,而不是只給你一張得自己重畫的英雄影格。
Sprite 與精靈表的差別,就是圖片與動畫系統的差別。一張好的待機影格是一幅畫。一張精靈表則是一台狀態機:引擎可以循環的影格數、可以索引的方向,以及每個格子裡都一致的角色,讓走路循環不會在播到一半時變形。Neta Studio 會從提示詞建出整張精靈表,再讓你把角色放進能走進去逛的 3D 世界。
一句提示詞,產出整張角色精靈表
你用白話描述角色:物種或身體結構、相對網格的高度、體格、髮型或頭盔、服裝層次、手上拿什麼、調色盤範圍,以及美術方向(像素、手繪、平面向量)。製作器會把它解析成角色規格,再從同一份規格繪出完整矩陣 — 每個動畫、每個方向。輸出是一張精靈表,不是讓你挑姿勢的選單。
單一影格幾乎看不出一個角色在遊戲裡能不能用。它一動起來,有三件事必須成立:剪影在你實際繪製的尺寸下仍要可讀、調色盤不能影格之間跑掉、軸心不能亂飄。精靈表會讓這些限制馬上現形。你看得到走路排在待機旁邊,看得到第 3 影格對第 1 影格,於是在漂移進到引擎之前就先抓到。
從同一段描述出發,也讓角色可以重現。改提示詞 — 把斗篷換成板甲、把調色盤調冷兩階 — 你就重新產生整張精靈表,且變更套用到每個地方。你不是在手工修四十張影格,只為了配合一個新的顏色決定。
01
寫下角色描述:體型、以網格單位計的高度、體格、服裝與手持物品、調色盤、美術方向。
02
設定影格網格:正方形格子、盡量貼齊 2 的次方、動畫列順序寫進文件。
03
產生精靈表,並把每個動畫的第一張影格拿來對最後一張 — 它們應該相鄰,而不是一模一樣。
04
用最終顯示尺寸檢查剪影,不要放大來看。
05
匯出透明 PNG 影格,使用文件記載的網格,原點設在腳底。
待機、走路、跑步、攻擊、施法
五個動畫就能涵蓋大多數 2D 角色:待機、走路、跑步、攻擊、施法。待機是角色一生大半時間都在播的呼吸循環。走路是移動循環,通常也是腳掌觸地最明顯的那個。跑步是同一套動作加快,加上更多軀幹前傾。攻擊是一次性播放,包含預備、接觸影格、收招。施法是帶停格的一次性播放 — 角色維持某個姿勢,直到投射物或 AOE 結算完。
影格數比大家想的更重要。在遊戲實際尺寸下 — 角色大約 32 到 64 像素高,畫面為 320×180 或 640×360 — 四張走路影格讀起來像走路;六張讀起來更順;八張開始得不償失。跑步循環常常四張就夠。待機是二到四張;兩張是經典的呼吸,四張可以加入次要動作,例如搖擺或武器上下晃。攻擊通常是三到五張:預備、接觸、餘勢、回復。施法是四到六張,其中一張為停格。
這裡的失敗模式是時間安排,不是影格數。四張走路影格如果匯出時沒有設定影格間延遲,就會以引擎影格率播放,看起來像抖動,不像踏步。精靈表會附上每個動畫的建議 fps,讓引擎匯入器有一個合理的預設值可以覆寫。
| 動畫 | 影格數 | 循環 | 備註 |
|---|---|---|---|
| 待機 | 2–4 | 是 | 呼吸或搖擺;第一張與最後一張影格相鄰 |
| 走路 | 4–8 | 是 | 腳掌觸地放在偶數影格讀起來最乾淨 |
| 跑步 | 4 | 是 | 比走路更前傾、步幅更長 |
| 攻擊 | 3–5 | 否 | 預備、接觸、餘勢 |
| 施法 | 4–6 | 否 | 包含一張停格影格,用來等待結算 |
一句描述產出八方向
八方向代表精靈表涵蓋 N、NE、E、SE、S、SW、W、NW — 以 45 度為一階繞完一圈。俯視與等角遊戲需要這個,因為玩家從固定攝影機看角色,而且可以往任何方向移動。四方向(N、E、S、W)會讓對角線變成視覺上的謊言:角色往東北走,Sprite 卻朝東。八方向讓朝向與移動向量一致。
精靈表的排版是一個矩陣:每個方向一橫列,動畫中每張影格一直行,或是每個方向一個區塊,裡面用相同順序容納所有動畫。只要順序有寫進文件,兩種都行。Unity 的 Sprite Editor 用網格切圖;Godot 的 AnimatedSprite2D 要個別的 region rect,或是一張切好的 texture;GameMaker 的 Sprite Editor 吃網格加上每張影格的 origin。你在引擎裡索引的順序必須跟精靈表繪出的順序一致,否則角色會月球漫步。
微妙的地方在過渡影格。如果你只繪出八個標準朝向,當移動向量跨過 22.5 度邊界時,Sprite 會在朝向之間跳拍。兩種緩解方式:繪出八個朝向,並用一段短的轉身動畫補過邊界;或是接受跳拍,讓角色旋轉直接吸附到最近的八方向之一。兩種都合理;精靈表兩種都支援,因為它不假設一定要有轉身影格。
整組角色保持一致
Sprite 工作裡真正的失敗是漂移。角色一在某個頭身比、某組調色盤、某個線條粗細下產生。角色二之後才產生,提示詞用字不同,回來時高了半個頭,膚色更冷,輪廓更粗。在隊伍畫面裡並排一看,就不像同一個遊戲的角色。
漂移來自描述不夠明確的提示詞。如果第一個提示詞寫「矮壯、低飽和大地色調色盤、32 像素格子、1 像素輪廓」,第二個只寫「穿盔甲的騎士」,你描述的就不是一組角色 — 而是兩個不相干的東西。把風格子句在整個角色群裡保持一致,只變動身分子句:物種、體格、裝備,以及指定調色盤範圍內的顏色。
Agent Sprite Forge 的設計就是用來把風格子句固定住。你從共用的風格規格產生整組角色,所以頭身比、輪廓粗細、調色盤範圍保持不變,只有個別角色不同。測試很簡單:把整組角色的待機影格依最終顯示尺寸排成一列。如果其中一個讀起來像別的遊戲,那就是風格規格漂移了。
讓整組角色維持同一種風格
在寫任何身分提示詞之前,先凍結風格維度:格子尺寸、頭身比、以像素計的輪廓粗細、調色盤範圍與打光方向,以及美術方向。把這些當成常數。每個角色提示詞都繼承它們,只再加上身分。當角色回來走味時,修正幾乎都在風格子句,而不是身分子句。
可直接進引擎的匯出
每一張影格都匯出成透明 PNG。精靈表會附上文件化的網格 — 格子寬高、每個方向的橫列數、每張影格的直行數、動畫順序 — 讓匯入器知道每個格子在哪。原點位在腳底,水平對齊角色的質心,所以把 Sprite 放到地面位置時,落地的是腳,不是圖片中心。
這個原點選擇在每個引擎裡都有差。Unity 的 Sprite Editor 可以讓你設定自訂軸心;把它設成底部置中,對上文件記載的原點。Godot 的 AnimatedSprite2D 使用從切好的 texture 來的每張影格 region rect;切圖要對齊文件記載的網格,否則你的循環會差一張影格。GameMaker 的 Sprite 屬性吃網格加上每張 Sprite 的 origin 點;同樣套用底部置中。
匯出預設可以覆寫。如果你的遊戲跑不同的格子尺寸,精靈表在整數倍縮放下很乾淨;非整數倍縮放才會帶來模糊。像素藝術用 Point 濾鏡,手繪用雙線性。透明通道會保留,所以匯入前不需要做去背修邊。
| 引擎 | 匯入路徑 | 要設定的項目 |
|---|---|---|
| Unity | Sprite Editor | 自訂軸心在底部置中;用網格切圖 |
| Godot | AnimatedSprite2D + SpriteFrames | 把 texture 切成文件記載的網格;每張影格用 region rect |
| GameMaker | Sprite 屬性 | 網格尺寸依文件;原點底部置中 |
角色的下一個人生:3D 世界
精靈表是一個角色。世界是它住的地方。產出精靈表的同一段描述,會餵給 3D game builder,把它變成可走動的 Three.js 世界:地面、碰撞、攝影機,以及一個讓角色站的位置。你不是在工具之間搬檔案 — 描述本身就是資產。
你可以在瀏覽器裡走進那個世界。把角色放進去、控制攝影機,檢查 Sprite 在世界實際呈現的尺度下讀起來對不對。在平面 Sprite 檢視器裡看起來沒問題的角色,一旦牽涉到透視與陰影,放在有打光的 3D 地面上就可能不對。同時看到兩邊,才能在早期抓到這種不匹配。
這跟 The Cyclops' Island 走的是同一條路 — 一句描述,一個可玩的世界 — 而 Mini World 是它的小尺度版本。精靈表製作器是同一條流程的 2D 端:描述一個東西,得到可用的資產,再把它放到你能走動的地方。
- Agent Sprite Forge從一句角色描述產生完整精靈表 — 待機、走路、跑步、攻擊、施法,涵蓋八方向 — 並附透明 PNG 影格與文件化的網格。
- The Cyclops' Island一個生成出來的 3D 世界,可以走進去逛,從描述建出而不是手工擺放,用來當作精靈表製作器所產角色的落點。
- Mini World小尺度的 3D 世界預設,讓你快速在可走動空間裡檢查角色,不必製作完整場景。
- 3D game builder瀏覽器裡的建構器,把文字描述變成真正可玩的 Three.js 世界,並把角色放進去當成可操控的角色。
走進它所屬的世界
Sprite 是一個無處可站的角色。最後一步是別家沒給的:把你剛建好的精靈表,放進一個有人可以走來走去世界 — 一座小島、一顆行星、一個下雨的街角。這個網站上的每個世界,都是從一段文字描述做出來,並發佈成一個可以玩的頁面。
常見問題
什麼是角色精靈表製作器? +
角色精靈表製作器會把一段文字描述變成完整精靈表 — 待機、走路、跑步、攻擊、施法,涵蓋八方向 — 放在透明影格上,附文件化網格,原點在腳底。它用一句描述產生,取代手工繪製每個姿勢。
走路循環需要幾張影格? +
四到八張。在遊戲實際尺寸下 — 大約 32 到 64 像素高 — 四張影格讀起來像走路,八張讀起來更順。超過八張,多出來的影格讓精靈表變大、匯入變久,換回的可讀性卻不成比例。
為什麼是八方向而不是四方向? +
俯視與等角遊戲使用固定攝影機,並允許往任何方向移動,所以四個朝向會讓對角線變成視覺上的謊言。八方向以 45 度為一階,讓 Sprite 朝向與移動向量一致。
Sprite 匯出成什麼格式? +
透明 PNG 影格,排在文件化的網格上,原點在腳底,水平對齊角色中心。同一張精靈表在把軸心或原點設成底部置中後,可以匯入 Unity、Godot、GameMaker。
怎麼避免同一組角色看起來不一致? +
凍結風格維度 — 格子尺寸、頭身比、輪廓粗細、調色盤範圍、打光方向 — 每個角色只變動身分。漂移幾乎都來自描述不夠明確的風格子句,而不是身分描述。
同一個角色可以用在 3D 世界裡嗎? +
可以。產出精靈表的同一段描述,會餵給 3D game builder,把它變成可走動的 Three.js 世界。你可以在瀏覽器裡走動,檢查角色在世界呈現的尺度下讀起來如何。
回到 3D Game Builder
全部 31 個完成的 3D 世界、遊戲與場景都在同一頁 — 每一個都可以玩。
看實際的角色精靈表
這個資源庫裡的每個資產都是透明的、可直接進遊戲的 PNG,並附上記錄下來的提示詞 — 角色精靈表與 Sprite 資源庫,依照動作、風格與主題加上標籤。免費瀏覽與下載。