歡迎使用 AI 進行遊戲開發! 在本系列中,我們將使用各種 AI 工具,在 5 天內建立一個功能完備的農場遊戲。到本系列結束時,你將瞭解到如何將多種 AI 工具整合到遊戲開發流程中。本系列文章將向你展示如何將 AI 工具用於:
- 美術風格
- 遊戲設計
- 3D 素材
- 2D 素材
- 劇情
想要觀看影片快速瞭解?請 點選這裡 快速瞭解本文內容,如果你需要掌握更多技術細節,請繼續閱讀!
注意:本教程面向熟悉 Unity 開發和 C# 語言的讀者。如果你不熟悉這些技術,我們建議你先了解一下 Unity 然後再繼續閱讀,本文的作者製作了一系列 Unity 初學者影片,如果你希望我們釋出到 Hugging Face 賬號,請在評論區留言告訴我們。
第 1 天:確立美術風格
遊戲開發流程第一步是 確立美術風格。對於要建立的農場遊戲,本文將使用 Stable Diffusion 工具來幫助其美術風格的確立。Stable Diffusion 是一種基於文字描述生成影像的開源模型。接下來會介紹如何使用該工具為農場遊戲建立視覺美術風格。
Stable Diffusion 基本設定
執行 Stable Diffusion 有兩種方案可選:本地或線上。如果你擁有一臺配備良好 GPU 的桌上型電腦並想使用全功能工具庫,那麼更建議本地方案。除此之外,你還可以嘗試線上方案,請繼續閱讀本文詳細檢視本地方案和線上方案:
本地方案
本文將使用 Automatic1111 WebUI 在本地執行 Stable Diffusion。這是比較流行的本地執行 Stable Diffusion 的方案,不過要成功將其設定執行起來,還需要一些技術知識。如果你使用 Windows 且具有 8GB 以上記憶體的 Nvidia GPU,請按以下指示執行。否則,請在 程式碼倉庫 的 README 檔案中檢視其他平臺的執行說明,更或者可以選擇線上方案。
在 Windows 上安裝
要求:具有 8 GB 以上記憶體的 Nvidia GPU。
-
安裝 Python 3.10.6,安裝時勾選 "Add Python to PATH"
-
安裝 git
-
在命令提示符中輸入以下內容來克隆所需倉庫
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
-
下載 Stable Diffusion v1.5 checkpoint,並將其移動到倉庫的 models 目錄下
-
執行
webui-user.bat
來啟動 WebUI -
瀏覽器中訪問 localhost://7860。如果一切正常,你將看到如下內容:
線上方案
如果你不具備本地執行 Stable Diffusion 的條件,或者偏好簡易的解決方案,同樣有多種線上執行方案供你選擇。
? Hugging Face 提供的 Space 應用中包含眾多免費線上方案,例如 Stable Diffusion 2.1 Demo 或 camemduru webui。你可以 檢視更多線上服務,甚至可以使用 ? Diffusers 編寫你專屬的免費執行方案!你也可以檢視簡單的 程式碼示例 以快速上手。
注意: 本系列的部分內容將使用 image2image 等高階功能,有些線上服務未提供這些功能。
生成概念藝術圖片
首先讓我們生成一些概念圖。只需幾步,非常簡單:
-
輸入提示語
-
點選生成
但問題是,生成的圖片是你真正想要的結果嗎?如果不是,如何才能獲得呢?這裡要提醒你一下,輸入提示語,本身就需要一些技巧。所以如果你生成的第一張圖片非你所想也沒關係,網路上有非常多神級資源可以幫助改善提示語。你可以檢視 Reddit 上的帖子瞭解 書寫指南,也可以 點選這裡 檢視我做的影片,帶你 20 秒瞭解圖片生成提示語的技巧!
上述書寫技巧的共通之處是使用諸如 lexica.art 網站之類的圖片庫來檢視其他創作者使用提示語在 Stable Diffusion 生成的內容正規化,從中尋找與你期望風格相似的圖片,從而獲得書寫提示語的靈感。實際上沒有所謂的標準答案,不過在你使用 Stable Diffusion 1.5 生成概念藝術圖片時,建議遵循以下溫馨提示:
- 使用描述詞: 描述詞會限制生成圖片的形式,如 isometric, simple, solid shapes 等。這樣生成圖片的美術風格在遊戲中會更容易重現。
- 使用同義關鍵詞: 一些關鍵詞 (如 low poly) 雖然契合主題,但生成的圖片質量通常較低。嘗試找到它們的同義詞,替換以保證生成質量。
- 使用指定藝術家的名字: 這種方式可以有效地引導模型採用指定藝術家的繪畫風格,從而生成更高質量的圖片。
我輸入這樣的提示語: isometric render of a farm by a river, simple, solid shapes, james gilleard, atey ghailan
生成圖片如下:
使用 Unity 重現概念藝術
接下來,如何使用生成的概念藝術圖片來製作遊戲?本文將使用流行遊戲引擎 Unity 來使遊戲鮮活起來。
-
使用帶有通用渲染管道的 Unity 2021.9.3f1 建立一個 Unity 專案。
-
使用基本形狀繪製場景草圖。例如,要新增一個立方體形狀,右鍵單擊 -> 3D物件 (3D Object) -> 立方體 (Cube)
-
設定材質: 可以參考前面生成的概念藝術圖片對各部分進行設定。這裡選用 Unity 內建的基本材質
-
設定光照: 這裡使用暖調自然光 (
#FFE08C
,強度1.25
) 和柔和環境光 (#B3AF91
) -
設定攝像機: 這裡使用 正交投影 來匹配概念藝術圖片的投影形式
-
設定水著色器: 可以給遊戲場景增加一些水流,這裡使用 Unity 資源商店中的程式化水著色器
-
最後,設定後處理效果: 這裡使用 ACES 色調對映和 +0.2 曝光
至此,一個簡單上手而引人入勝的遊戲場景,不到一天就建立完成了!如果你有任何問題,或者想躍躍欲試參與後續內容?現在來 加入我們的 Discord 頻道 與我們交流吧!
在下一篇文章中,我們將 使用 AI 進行遊戲設計,敬請關注我們獲得後續更新!
英文原文:https://huggingface.co/blog/ml-for-games-1
譯者:SuSung-boy (蘇桑),經常倒騰影像的工業視覺演算法工程師。