製作 2D 素材|基於 AI 5 天建立一個農場遊戲,第 4 天

HuggingFace發表於2023-02-15

歡迎使用 AI 進行遊戲開發! 在本系列中,我們將使用 AI 工具在 5 天內建立一個功能完備的農場遊戲。到本系列結束時,您將瞭解到如何將多種 AI 工具整合到遊戲開發流程中。本系列文章將向您展示如何將 AI 工具用於:

  1. 美術風格
  2. 遊戲設計
  3. 3D 素材
  4. 2D 素材
  5. 劇情

注意: 本教程面向熟悉 Unity 開發和 C# 語言的讀者。如果您不熟悉這些技術,請先檢視 Unity for Beginners 系列後再繼續閱讀。

第 4 天:2D 素材

本教程系列的 第 3 部分 討論到現階段 文字-3D 技術應用到遊戲開發中並不可行。不過對於 2D 來說,情況就大相徑庭了。

在這一部分中,我們將探討如何使用 AI 製作 2D 素材。

前言

本部分教程將介紹如何將 Stable Diffusion 工具嵌入到傳統 2D 素材製作流程中,來幫助從業者使用 AI 製作 2D 素材。此教程適用於具有一定圖片編輯和 2D 遊戲素材製作知識基礎的讀者,同時對遊戲或者 AI 領域的初學者和資深從業者也會有所幫助。

必要條件:

  • 圖片編輯軟體。可以根據您的使用習慣偏好選擇,如 PhotoshopGIMP (免費)。
  • Stable Diffusion。可以參照 第 1 部分 的說明設定 Stable Diffusion。

Image2Image

諸如 Stable Diffusion 之類的擴散模型生成圖片的過程是從初始噪聲開始,透過不斷去噪來重建圖片,同時在去噪過程中可以新增額外的指導條件來引導生成圖片的某種特性,這個條件可以是文字、輪廓、位置等。基於擴散模型的 Image2Image 生成圖片的過程也一樣,但並非從初始噪聲開始,而是輸入真實圖片,這樣最終生成的圖片將會與輸入圖片有一定的相似性。

Image2Image 中的一個比較重要的引數是 去噪強度 (denoising strength),它可以控制生成圖片與輸入圖片的差異程度。去噪強度為 0 會生成與輸入圖片完全一致的圖片,去噪強度為 1 則截然不同。去噪強度也可以理解為 創造性。例如:給定一張圓形圖案的輸入圖片,新增文字提示語 “月亮”,對去噪強度設定不同的引數值,Image2Image 可以生成不同創造性的圖片,示意圖如下。

Denoising Strength 示例

基於 Stable Diffusion 的 Image2Image 方法並非代替了傳統美術作品繪圖流程,而是作為一種工具輔助使用。具體來說,您可以先手動繪製圖片,然後將其輸入給 Image2Image,調整相關引數後得到生成圖片,然後繼續將生成的圖片輸入給 Image2Image 進行多次迭代,直到生成一張滿意的圖片。以本系列的農場遊戲為例,我會在接下來的部分說明具體細節。

示例:玉米

在這一小節中,我會介紹使用 Image2Image 為農場遊戲的農作物玉米生成圖示的完整流程。首先需要確定整體構圖,我簡單勾勒了一張非常粗糙的玉米圖示草圖。

接下來,我輸入以下提示語:

corn, james gilleard, atey ghailan, pixar concept artists, stardew valley, animal crossing

注:corn:玉米;james gilleard:未來主義插畫藝術家;atey ghailan:現拳頭遊戲概念藝術家;pixar concept artists:皮克斯動畫概念藝術;stardew valley:星露穀物語,一款畫素風農場遊戲;animal crossing:動物之森,任天堂遊戲

同時設定去噪強度為 0.8,確保擴散模型生成的圖片在保持原始構圖的同時兼顧更多的創造性。從多次隨機生成的圖片中,我挑選了一張喜歡的,如下所示。

生成的圖片不需要很完美,因為通常會多次迭代來不斷修復不完美的部分。對於上面挑選的圖片,我覺得整體風格很不錯,不過玉米葉部分稍微有些複雜,所以我使用 PhotoShop 做了一些修改。

請注意,這裡我僅在 PhotoShop 中用筆刷非常粗略地塗掉了要改的部分,然後把它輸入到 Image2Image 中,讓 Stable Diffusion 自行填充這部分的細節。由於這次輸入圖片的大部分資訊需要被保留下來,因此我設定去噪強度為 0.6,得到了一張還不錯的圖片。

接著我在 PhotoShop 中又做了一些修改:簡化了底部的線條以及去除了頂部的新芽,再一次輸入 Stable Diffusion 迭代,並且刪除了背景,最終的玉米圖示如下圖所示。

瞧!不到 10 分鐘,一個玉米圖示遊戲素材就製作完成了!其實您可以花更多時間來打磨一個更好的作品。如想了解如何製作更加精緻的遊戲素材,可以前往觀看詳細演示影片

示例:鐮刀

很多時候,您可能需要對擴散模型進行 負面引導 才能生成期望的圖片。下圖毫無疑問可以用作鐮刀圖示,但這些簡單的圖片卻需要大量迭代次數才能生成。

原因可能是這樣:擴散模型使用的訓練圖片基本都是網路上的,而網路上關於鐮刀的圖片大部分是 武器,只有小部分是 農具,這就導致模型生成的鐮刀圖片會偏離 農具。一種解決方法是改善提示語:以增加 負面提示語 的方式引導模型避開相應的結果。上述示例中,除了輸入 鐮刀,農具 之外,在負面提示語一欄輸入 武器 就能奏效。當然,也不只有這一種解決方法。

Dreamboothtextual inversionLoRA 技術用於定製個人專屬的擴散模型,可以使模型生成更加明確的圖片。在 2D 生成領域,這些技術會越來越重要,不過具體技術細節不在本教程範圍之內,這裡就不展開了。

layer.aiscenario.gg 等是專門提供遊戲素材生成的服務商,可以使遊戲從業者在遊戲開發過程中生成的遊戲素材保持風格一致,他們的底層技術很可能就是 dreamboothtextual inversion。在新興的開發遊戲素材生成工具包賽道,是這些技術成為主流?還是會再出現其他技術?讓我們拭目以待!

如果您對 Dreambooth 的工作流程細節感興趣,可以檢視 部落格文章 閱讀相關資訊,也可以進入 Hugging Face 的 Dreambooth Training Space 應用體驗整個流程。

在下一部分中,我們將 使用 AI 設計遊戲劇情


原文作者:Dylan Ebert

譯者:SuSung-boy

審校、排版:zhongdongy (阿東)

相關文章