第 1 天|基于 AI 進行游戲開發(fā):5 天創(chuàng)建一個農(nóng)場游戲!
歡迎使用 AI 進行游戲開發(fā)!在本系列中,我們將使用各種 AI 工具,在 5 天內(nèi)創(chuàng)建一個功能完備的農(nóng)場游戲。到本系列結(jié)束時,你將了解到如何將多種 AI 工具整合到游戲開發(fā)流程中。本系列文章將向你展示如何將 AI 工具用于:
美術(shù)風(fēng)格
游戲設(shè)計
3D 素材
2D 素材
劇情
想要觀看視頻快速了解?請打開鏈接:https://mp.weixin.qq.com/s/nZ97x3Z7Bfl5Sjic2I6jvw快速了解本文內(nèi)容,如果你需要掌握更多技術(shù)細節(jié),請繼續(xù)閱讀!
注意:本教程面向熟悉 Unity 開發(fā)和 C# 語言的讀者。如果你不熟悉這些技術(shù),我們建議你先了解一下 Unity 然后再繼續(xù)閱讀,本文的作者制作了一系列 Unity 初學(xué)者視頻,如果你希望我們發(fā)布到 Hugging Face 賬號,請在評論區(qū)留言的方式告訴我們。
第 1 天:確立美術(shù)風(fēng)格
游戲開發(fā)流程第一步是?確立美術(shù)風(fēng)格。對于要創(chuàng)建的農(nóng)場游戲,本文將使用 Stable Diffusion 工具來幫助其美術(shù)風(fēng)格的確立。Stable Diffusion 是一種基于文本描述生成圖像的開源模型。接下來會介紹如何使用該工具為農(nóng)場游戲創(chuàng)建視覺美術(shù)風(fēng)格。
Stable Diffusion 基本設(shè)置
運行 Stable Diffusion 有兩種方案可選:本地或在線。如果你擁有一臺配備良好 GPU 的臺式機并想使用全功能工具庫,那么更建議本地方案。除此之外,你還可以嘗試在線方案,請繼續(xù)閱讀本文詳細查看本地方案和線上方案:
本地方案
本文將使用 Automatic1111 WebUI 在本地運行 Stable Diffusion。這是比較流行的本地運行 Stable Diffusion 的方案,不過要成功將其設(shè)置運行起來,還需要一些技術(shù)知識。如果你使用 Windows 且具有 8GB 以上內(nèi)存的 Nvidia GPU,請按以下指示執(zhí)行。否則,請在代碼倉庫的 README 文件中查看其他平臺的運行說明,更或者可以選擇在線方案。
Automatic1111 WebUI 代碼倉庫:
https://github.com/AUTOMATIC1111/stable-diffusion-webui
在 Windows 上安裝
要求:具有 8 GB 以上內(nèi)存的 Nvidia GPU。
安裝 Python 3.10.6,安裝時勾選 "Add Python to PATH"
安裝 git
在命令提示符中輸入以下內(nèi)容來克隆所需倉庫
下載 Stable Diffusion v1.5 checkpoint,并將其移動到倉庫的 models 目錄下
運行?
webui-user.bat
?來啟動 WebUI瀏覽器中訪問 localhost://7860。如果一切正常,你將看到如下內(nèi)容:

Stable Diffusion v1.5 checkpoint 地址:
https://huggingface.co/runwayml/stable-diffusion-v1-5
在線方案
如果你不具備本地運行 Stable Diffusion 的條件,或者偏好簡易的解決方案,同樣有多種在線運行方案供你選擇。
?? Hugging Face 提供的 Space 應(yīng)用中包含眾多免費在線方案,例如 Stable Diffusion 2.1 Demo 或 camemduru webui。你可以查看更多在線服務(wù),甚至可以使用 ?? Diffusers 編寫你專屬的免費運行方案!你也可以查看簡單的代碼示例以快速上手。
Stable Diffusion 2.1 Demo:
https://huggingface.co/spaces/stabilityai/stable-diffusioncamemduru webui:
https://huggingface.co/spaces/camenduru/webui查看更多在線服務(wù):
https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Online-Services查看快速上手的代碼示例:
https://colab.research.google.com/drive/1HebngGyjKj7nLdXfj6Qi0N1nh7WvD74z
注意:本系列的部分內(nèi)容將使用 image2image 等高級功能,有些在線服務(wù)未提供這些功能。
生成概念藝術(shù)圖片
首先讓我們生成一些概念圖。只需幾步,非常簡單:
輸入提示語
點擊生成

但問題是,生成的圖片是你真正想要的結(jié)果嗎?如果不是,如何才能獲得呢?這里要提醒你一下,輸入提示語,本身就需要一些技巧。所以如果你生成的第一張圖片非你所想也沒關(guān)系,網(wǎng)絡(luò)上有非常多神級資源可以幫助改善提示語。你可以查看 Reddit 上的帖子了解書寫指南,也可以看我做的這個視頻,帶你 20 秒了解圖片生成提示語的技巧!
HuggingFace
,贊3
提示語書寫指南貼:
https://www.reddit.com/r/StableDiffusion/comments/x41n87/how_to_get_images_that_dont_suck_a/
上述書寫技巧的共通之處是使用諸如 lexica.art 網(wǎng)站之類的圖片庫來查看其他創(chuàng)作者使用提示語在 Stable Diffusion 生成的內(nèi)容范式,從中尋找與你期望風(fēng)格相似的圖片,從而獲得書寫提示語的靈感。實際上沒有所謂的標準答案,不過在你使用 Stable Diffusion 1.5 生成概念藝術(shù)圖片時,建議遵循以下溫馨提示:
使用描述詞:?描述詞會限制生成圖片的形式,如 isometric, simple, solid shapes 等。這樣生成圖片的美術(shù)風(fēng)格在游戲中會更容易重現(xiàn)。
使用同義關(guān)鍵詞:?一些關(guān)鍵詞 (如 low poly) 雖然契合主題,但生成的圖片質(zhì)量通常較低。嘗試找到它們的同義詞,替換以保證生成質(zhì)量。
使用指定藝術(shù)家的名字:?這種方式可以有效地引導(dǎo)模型采用指定藝術(shù)家的繪畫風(fēng)格,從而生成更高質(zhì)量的圖片。
我輸入這樣的提示語:?isometric render of a farm by a river, simple, solid shapes, james gilleard, atey ghailan
?生成圖片如下:

使用 Unity 重現(xiàn)概念藝術(shù)
接下來,如何使用生成的概念藝術(shù)圖片來制作游戲?本文將使用流行游戲引擎 Unity 來使游戲鮮活起來。
使用帶有通用渲染管道的 Unity 2021.9.3f1 創(chuàng)建一個 Unity 項目。
使用基本形狀繪制場景草圖。例如,要添加一個立方體形狀,右鍵單擊 -> 3D對象 (3D Object) -> 立方體 (Cube)

設(shè)置材質(zhì):?可以參考前面生成的概念藝術(shù)圖片對各部分進行設(shè)置。這里選用 Unity 內(nèi)置的基本材質(zhì)

設(shè)置光照: 這里使用暖調(diào)自然光 (
#FFE08C
,強度?1.25
)?和柔和環(huán)境光 (#B3AF91
)

設(shè)置攝像機:?這里使用?正交投影?來匹配概念藝術(shù)圖片的投影形式

設(shè)置水著色器:?可以給游戲場景增加一些水流,這里使用 Unity 資源商店中的程式化水著色器

最后,設(shè)置后處理效果:?這里使用 ACES 色調(diào)映射和 +0.2 曝光

至此,一個簡單上手而引人入勝的游戲場景,不到一天就創(chuàng)建完成了!如果你有任何問題,或者想躍躍欲試參與后續(xù)內(nèi)容?現(xiàn)在來加入我們的 Discord 頻道與我們交流吧!
加入我們的 Discord 頻道
https://hf.co/join/discord
在下一篇文章中,我們將?使用 AI 進行游戲設(shè)計,敬請關(guān)注我們獲得后續(xù)更新!
英文原文:https://huggingface.co/blog/ml-for-games-1
譯者:SuSung-boy (蘇桑),經(jīng)常倒騰圖像的工業(yè)視覺算法工程師。