堀內貴文

生成世界上只有自己的寶可夢

概要

在遊戲過程中輸入的六個詞語中,AI會生成新種的寶可夢。幾分鐘後,這種新種會出現在草叢中,玩家可以遇見、捕捉並給它取綽號。不僅外觀和名字,甚至類型、種族值、招式以及遊戲內操作的數據,都是現場組裝的研究原型。

在原型中,將對話、文字輸入、背景生成、野外遭遇、捕捉以及命名串聯成一個不中斷遊戲的一體化體驗。新物種不只是單純的圖片,而是作為現有遊戲系統可以處理的種族被註冊。

在這項努力中,重點並不在於生成模型本身。而是由人類設計出維護遊戲平衡和外觀一致性的條件,並讓 AI 僅在這些範圍內進行探索的「生成框架」。此外,我還親自遊玩並初步考察了,僅屬於自己的生成物是否真的會產生情感依附。

問題——如果是獨一無二的,會產生依戀嗎

遊戲中有透過選擇角色、培養角色、並為角色命名,將其變成「只有自己的存在」的樂趣。然而,其出發點仍是在開發者所準備的選項之中。當透過生成AI,能夠從出發點本身就創造出玩家專屬的存在時,依附感是否會變得更強呢。

要確認這個問題,一張圖片的生成是不夠的。生成的存在需要能進入遊戲世界,遭遇、捕捉,並且之後還能使用。因此,準備了兩個玩家參與程度不同的入口。與爺爺對話時,無需輸入即可生成;與奶奶對話時,玩家需要選擇六個詞。首次對話的對象決定了該次遊玩的生成方式。

這個原型的目的是不是要對依附作出結論。而是建立將生成物整合到一般遊戲體驗中的基礎,並找到今後可以比較的條件。

遊戲流程

以下是玩家選擇詞語進行「關與生成」的流程。在杜卡森林與老太太交談,並在遊戲內原本的「簡單對話」中選擇六個詞語。遊戲進行中生成會持續進行,準備就緒時可以聽到叫聲。進入草叢會出現新種,可以用與捕獵普通野生寶可夢相同的操作捕獲。名稱、屬性、種族值、技能、正面與背面的戰鬥精靈圖標、持有圖示,每次執行都會生成。一連串的動作也可以在 示範影片 中確認。

站在桃花森林的老夫婦。對話視窗中顯示「你正在想著什麼樣的生物呢?」。
和奶奶說話的時候開始。
標題為「想像的生物:」的簡單對話輸入畫面。輸入了 BEAUTIFUL、ATTACK、FIRE 這些詞語。
用翠綠原本就有的「簡單對話」,傳達六個詞語。
站在森林草叢旁的玩家。對話窗口顯示「草叢在搖動……有東西在裡面!」。
生成在電腦端需要幾分鐘。叫聲會通知準備完成。
戰鬥畫面。頭上燃著火焰的紅色蜥蜴正面對玩家。畫面上顯示「野生的 FLAMEREL 出現了!」
火焰屬性的蜥蜴 FLAMEREL 從搖曳的草叢中現身。
在戰鬥中,怪獸球正被投向 FLAMEREL。
和其他種族一樣,可以用怪獸球捕捉。
詢問 FLAMEREL 暱稱的命名畫面。已輸入 GGG。
像其他種族一樣,可以取暱稱。
手持畫面。生成的種族擁有專用圖示,與普通的三隻寶可夢並排顯示。
和其他種族一樣,擁有專屬的圖示並排列在手持物中。
FLAMEREL 的寶可夢資訊畫面。顯示了火屬性、特性為猛火、性格是頑皮、在斗火森林以等級7遇到的紀錄。
和其他種族一樣,狀態畫面也能正常運作。

設計課題——自由創作會破壞遊戲

AI能夠創造出新的角色,與這個角色能否在遊戲中成立,是兩碼事。如果能力過高,難度會崩壞;如果屬性和技能搭配不佳,就很難培養。如果外觀過於複雜,轉換成64×64像素的精靈時就無法辨認形狀。

另一方面,如果把一切都固定下來,就沒有每次執行時會產生不同東西的意義。必要的不是消除 AI 的自由,而是要將作為遊戲應當保護的部分與可以允許變化的部分分開。

因此,將設計的對象從單一的寶可夢轉移到能生成寶可夢的空間。人類定義目的、限制、禁止事項和驗證方法,AI則在其內部具體化候選方案。這是在動態原型中嘗試我的設計哲學的限制型設計。

方法——設計的不是生成物,而是生成條件

不讓LLM寫自由文,只讓它填寫姓名、類型、種族值、招式、體型、顏色等既定項目。輸出結果不要直接採用,要用驗證器檢查。如果有違規,就將違反了哪些規則返回給模型,並在滿足條件之前重新生成。

  1. 人類決定界線。將遊戲平衡、在畫面上可讀的形式、應避免的表現,轉化為可檢查的規則。
  2. AI 將候選項具體化。根據玩家的言語提示,建議允許的項目值。
  3. 機械檢驗規則。自動判定數值、技能組合、禁止表現等。
  4. 只反饋違反的部分。不符合條件的候選者會連同理由一併退回,重新生成。

保護遊戲的限制。種族值總和設在280〜360的範圍內,各能力也設定了上下限。技能從遊戲的來源中提取,並限制在該種族的屬性或一般屬性。此外,排除了必殺技、自爆、固定傷害、過於強力的技能,也檢查了攻擊技能的數量及是否有屬性相符的技能。捕獲率及成長速度等固定,以便生成的差異能在可比較的範圍內。

保護外觀的限制。體型從即使是小型精靈也容易保持輪廓的候選中選擇,並限制色彩和特徵的詞彙。排除人類特徵、流血、武器、文字等。最後,必須在圖像生成的指示中加入「只生成一個」「全身」「不要生成多餘的手腳」等防止破綻的條件。

在某份記錄中,模型最初提出了種族值總和為380的方案。框架會檢測違規並促使重新生成,最終收斂到320的規格。重要的是,重點不在於偶然出現好結果,而是設計了不採用超出框架結果的流程。

將體驗在遊戲內部完成

玩家接觸到的只是遊戲內的對話、詞語選擇,以及草叢中的遭遇。無需為生成打開另一個畫面。另一方面,計算量大的處理由 PC 上的 Python 進程負責,並通過檔案與遊戲進行聯繫。通過 mGBA 上的 Lua 腳本橋接雙方,將既有遊戲的操作感與外部 AI 的處理分離。

  1. 製作規格。本地的語言模型將六種語言轉換為經過驗證的種族數據。
  2. 擺出姿勢。圖片模型繪製參考插圖,並從中生成正面、背面、手持圖示,保持一致的姿態。
  3. 轉換為遊戲用資料。將圖像減色為15色,並轉換、壓縮為GBA可處理的精靈圖和調色盤。
  4. 反映到正在執行的遊戲中。將資料寫入已預約的區域,在不重新啟動遊戲的情況下讓新種類出現。

為了將相同的數據也寫入磁碟,反映出的種族即使重新載入遊戲也會保留。生成只發生一次,無法撤銷。若從遇到的狀況逃跑或失敗,種族會留在世界中,但若擊敗它,將不會再出現。這種不可逆性也是設計上為了讓體驗中感受到“世界中只有一隻”的意義。

在原型中可以確認的事項

這是由一個人製作的可行性驗證,並不是完成的遊戲或用戶實驗。將達到的點和未驗證的範圍,分成如下幾類。

自己親自嘗試的結果——僅僅是獨一無二,並不會產生依戀

就我自己玩過原型來看,對生成的寶可夢並沒有產生強烈的喜愛。這只是實作者本人一人的感想,無法作為一般化的實驗結果。不過,這確實提供了一個線索,讓我思考下一步應該改變什麼來進行比較。

可能左右依附的條件,有兩個。

形成對比的是,不同於遊戲用的自動生成,我們透過與多個生成型人工智慧的對話以及手工操作反覆製作出來的「花狐狸」。對於這個角色,我非常有感情,因為我們比較候選方案、修改,並一直做細緻調整到令人滿意的形態。我認為這是因為既具備足夠的品質,也包含了多次試錯的參與過程。

花狐狸的正面。是一隻淡綠色的狐狸,尾巴像花蔓般垂下。 花狐狸的背面。可以看到整條盛開花朵的尾巴的長度。
花狐——擁有花開尾巴的森林守護者。牠奔跑過的痕跡上草木開始萌芽,也為荒蕪的土地帶來新的生命。牠的身影被視為森林向未來成長的象徵。
Hanagi2ne 的寶可夢資訊畫面。顯示了草屬性、特性是綠色之癒、性格勇敢,以及在桃花森林遇到時等級為7。精靈圖像是一隻擁有綻放尾巴的淡綠色狐狸。 戰鬥畫面。從背面看到 Hanagi2ne 正面對野生的波加希納。畫面上顯示「Hanagi2ne 的 吸取!」。
經過不斷對話與手工設計的「花狐」,已作為遊戲內的種族實裝。

這個原型並沒有回答「生成內容會產生依戀嗎」這個問題。它將曖昧的問題,拆分為生成物的品質與參與的深度這兩個可以有意控制的元素。在接下來的驗證中,需要將選擇、比較、修改納入創作過程,並在將生成物的品質保持在一定水準後,由多位參與者進行比較。

實裝

生成管線、限制與驗證框架、針對 GBA 的資料轉換、遊戲端的變更內容,都在 GitHub 儲存庫 公開。

pret/pokeemerald以反編譯為基礎,作為個人研究製作。未分發任何ROM、ROM補丁或遊戲內資產。此處刊登的所有精靈貼圖均為AI生成的原創作品。寶可夢是任天堂、株式会社Creatures、株式会社Game Freak的商標,本項目與這些公司無關,亦未獲得其批准。