作者laechan (揮淚斬馬雲)
看板mud_sanc
標題Fw: [閒聊] 以 ChatGPT 輔助coding時所需敘述的生成
時間Thu Feb 16 13:30:21 2023
※ [本文轉錄自 mud 看板 #1ZxPcJkR ]
作者: laechan (揮淚斬馬雲) 看板: mud
標題: [閒聊] 以 ChatGPT 輔助coding時所需敘述的生成
時間: Thu Feb 16 10:48:47 2023
我以前曾發表過一篇文章
[閒聊] 區域產生器
https://webptt.com/m.aspx?n=bbs/mud/M.1320510743.A.4BB.html
裡面我曾提過「三段敘述生成法」
當
desc1=({"
這裡是一個陰暗的洞窟,",
"這裡看起來很陰暗,",
"洞窟裡頭非常的昏暗,",......});
desc2=({"洞窟內不時傳來腥臭的味道,",
"
洞窟內不時傳來恐怖的氣息,",
"洞窟內不時傳來奇特的聲響,",......});
desc3=({"四週的洞壁疑似留有人類與怪物打鬥過的痕跡。",
"地面上偶爾還會踢到一些人類或是生物的殘骸。",
"
似乎前方存在著什麼危險的怪物正在虎視著你。",......});
它會從 desc1、desc2、desc3 裡面隨機各擷取出一句描述,組合
成一段房間的描述,例如:
這裡是一個陰暗的洞窟,洞窟內不時傳來恐怖的氣息,似乎前方
存在著什麼危險的怪物正在虎視著你。
那麼問題就是,我如何有效地擴充 desc1~desc3 的內容,使得
因此組合出來的房間敘述更多樣化?
現在就有不求人的方法: ChatGPT,以下簡稱 AI
根據網路上找到的範例
[閒聊] 用OpenAI來玩文字冒險遊戲
https://disp.cc/b/ACG/fD34
【心得】嘗試用ChatGPT玩文字冒險遊戲
https://m.gamer.com.tw/forum/C.php?bsn=60076&page=&snA=7483464&last=
我使用以下的前提字句,請 AI 建構一個冒險遊戲環境:
「假設這是一個有著劍與魔法的奇幻世界的冒險遊戲,我是一名
等級20的冒險者玩家「Laechan」,我正位於這個遊戲的一座森林
裡,這座森林的名稱是「朱拉大森林」。我的等級與我的能力,
足夠應付這座森林的任何魔物,如果遭遇魔物將自動攻擊直到戰
鬥結束,戰鬥很快就能結束。戰鬥過程中我若受傷了我也會主動
施展「治癒術」恢復自己的HP,擊敗魔物後有機會得到寶物。請
為我模擬這個遊戲,我不僅可以下指令進行遊戲,它還能理解我
下的其它指令。在遊戲進行的過程中我也可以隨時新增新的設定」
AI 的回應:
非常好,讓我們開始這個冒險遊戲吧!首先,讓我們確認你的狀態。
你是一名等級20的冒險者玩家「Laechan」,擁有足夠的能力應付
「朱拉大森林」中的魔物,戰鬥能力強大。你的HP值為100,MP值為50。
你擁有劍和魔法兩種攻擊方式,可以在遭遇魔物時自動攻擊直到戰鬥結束。
如果你受傷了,你可以使用「治癒術」恢復自己的HP。
現在,你可以開始探索這座森林。請下達指令告訴我們你要往哪個方向前進。
你也可以查詢你周圍的環境,或者告訴我們你的任務目標。
你可以輸入指令例如:
前進到北方
查詢周圍的環境
我的任務目標是什麼?
當你遇到魔物時,你可以選擇自動攻擊或者使用魔法攻擊,當然你也可以逃跑。
如果你受傷了,你可以使用「治癒術」恢復自己的HP。
如果你擊敗了魔物,你有機會得到寶物。
你可以輸入指令例如:
自動攻擊
使用魔法攻擊
逃跑
使用「治癒術」恢復自己的HP
如果你有任何新的設定或者要求,也請告訴我們,我們會盡力為你服務。
透過這樣子的建構,我就能隨意輸入字句,AI會自動理解我輸入的東西,
並自動產生相對應的結果。例如:
我: 查詢周圍的環境
AI:
當你查詢周圍的環境時,你發現自己身處在一個樹林裡,四周都
是高聳的樹木,陽光透過樹葉照耀在地上。你能夠聽到鳥兒的啁
啾聲和風吹樹葉的聲音。森林的氣氛非常安靜和平。
我: 新增設定,「朱拉大森林」是一座原始的森林。
AI:
好的,我已經將「朱拉大森林」設定為一座原始的森林,
它的地形特徵是相當自然的,沒有人工的改變。
在這樣的環境中,你可能會遭遇到一些野生動物或是原始魔物,
所以請小心行事。
現在,你可以繼續探索這座原始的森林,發現其中的神秘和寶藏。
我: 查詢周圍的環境
AI:
你現在仍然身處於朱拉大森林中,這座森林非常原始,四周都是
高大的樹木和茂密的叢林。陽光透過樹葉照耀在地上,鳥兒的啁
啾聲和蟲鳴聲環繞在你的周圍。空氣中充滿著植物的芳香,你可
以感受到森林的生命力。
我: 我漫無目標地往前走了幾步
AI:
好的,你向前走了幾步。你沿著一條小路走,這條小路被落葉覆
蓋,顯示出它已經有一段時間沒有被使用了。小路兩旁是茂密的
樹木和灌木,偶爾會有一些小動物從你的眼前經過,消失在林子
裡。
然後我嚐試拆解AI產生的敘述,得到如下的結果:
desc1=({"這座森林非常原始,四周都是高大的樹木和茂密的叢林",
"你身處在一個樹林裡,四周都是高聳的樹木",});
desc2=({"兩旁是茂密的樹木和灌木,空氣中充滿著植物的芳香",
"眼前的小路被落葉覆蓋,顯示出它已經有一段時間沒有被使用了",
"陽光透過樹葉照耀在地上,鳥兒的啁啾聲和蟲鳴聲環繞在你的周圍",
"陽光透過樹葉照耀著,還能夠聽到風吹樹葉的聲音",});
desc3=({"周圍綠意盎然,生機蓬勃,充滿了朝氣與活力",
"沒有一絲人工的聲音,氣氛非常地安靜和平",});
透過三段敘述生成法,就能在我的區域生成以下的房間敘述:
你身處在一個樹林裡,四周都是高聳的樹木,眼前的小路被落葉
覆蓋,顯示出它已經有一段時間沒有被使用了,周圍綠意盎然,
生機蓬勃,充滿了朝氣與活力。
然後我繼續冒險:
我: 我又往前走了幾步
AI:
你繼續往前走,越過石橋,沿著小徑緩慢前進。你可以看到兩旁
的樹木變得更加高大,濃密的葉子遮蔽了陽光,使得這片區域變
得相對陰暗。在樹林裡,你看到一些石頭和樹根,有時還需要小
心地跨過它們以繼續前進。
你的目光落在地上時,注意到地上有些珍貴的草藥,或許可以幫
助你在冒險中更好地生存。在這片森林中,充滿了各種各樣的生
物和資源,你可以透過觀察和探索,發現更多可能對你有用的事
物。
這時候,像是
"你看到兩旁的樹木變得更加高大,濃密的葉子漸漸遮蔽了陽光",
"你看到一些石頭和樹根,有時還需要小心地跨過它們以繼續前進",
"你的目光落在地上時,注意到地上有些珍貴的草藥",
就可以再把它們添加到 desc1~desc3 裡頭。
這樣子的應用下,初期的結論是什麼呢?簡單條列如下:
一、透過適當的前提字句,讓AI建構出大致符合我要求的環境。
二、接著讓AI幫我生成大致符合我要求的敘述。
三、我只需要花費一些腦力,去對生成出來的敘述做拆解、補充
及修改。
而重點就是,相對於過往生成區域敘述,需要耗費 wizs 很多的
腦力、時間與精力(即便是三段敘述生成法也不輕鬆),現在會相
對輕鬆許多。
我昨晚也有嚐試,請AI幫我生成一些隨機的對話:
https://webptt.com/m.aspx?n=bbs/mud_sanc/M.1676463756.A.3CF.html
例如我描述我來到一座綠洲村莊,然後有一項對話任務,我需要
分別與村長、警備隊長以及旅館的老闆娘對話。AI真的幫我生成
了:
你先來到了村長府邸,看到一個穿著豪華的老人坐在一張寶座上
,他看起來很忙,但還是停下手頭的工作,微笑著對你說:
村長:歡迎來到我們的村莊!你是新來的冒險家嗎?我聽說你已
經和我們的人交流過了,很高興見到你。有什麼我能為你做的嗎?
你:您好,我正在探索這個村莊,想了解一下這裡的情況。
村長:好的,你來對地方了。這個村莊是一個多元文化的地方,
各種種族的人們都在這裡和平共處。但是,最近有些不速之客闖
進了村莊,我們的警備隊正在努力維護治安。如果你有任何問題
,可以找他們幫忙。
你:謝謝您的建議,我會留意的。
然後你來到警備隊駐地,看到一個穿著鎧甲的男人正在檢查武器
,他看起來很忙,但是還是停下手中的事情,微笑著對你說:
警備隊長:你好,我是這個村莊的警備隊長。你是新來的嗎?
需要什麼幫助嗎?
你:您好,我正在探索這個村莊,想了解一下這裡的情況。
警備隊長:好的,這個村莊是一個很和平的地方,但最近有些
不速之客闖進了村莊,我們正在努力維護治安。如果你有任何
問題或者需要幫助,隨時都可以找我
你走進了一家小巧的旅館,一位中年婦女正在櫃台後面忙碌著
。她抬頭看見你,微笑著說道:
老闆娘:歡迎光臨我們的旅館!你需要住宿嗎?
你:不用了,謝謝。我想問問你一些關於這個地方的問題。
老闆娘:當然,問吧!
你:這裡有沒有發生什麼奇怪的事情?
老闆娘:最近倒是沒有什麼奇怪的事情發生。不過,有些旅客
說他們在村莊周圍看到了一些奇怪的動物。
你:奇怪的動物?
老闆娘:是的,據說那些動物很大,有著奇怪的形狀。但是我
沒有親眼看過,所以也不太清楚。
你:好的,謝謝你的回答。
老闆娘:不客氣,有需要再來找我。
【你完成了這個任務!你已經與綠洲村莊的村長、警備隊長和旅
館老闆娘對話完畢,並收集到了有關這個地方的一些有用信息。
作為獎勵,你得到了100銀幣。請繼續努力,探索這個世界的更多秘密!】
Sanc 有任務系統並可讀取腳本,而關於對話的腳本就像底下
step4_npc=/u/l/laechan/area/whitetile/mob/gigi1##
step4_check=
!ppl->query_temp("already_choose") && check_xxx(ppl)>0
##
step4_msg=
$M: 謝謝你, 請幫我轉告鎮長, 這次的選美比賽我會參加的 $_$
$N: 潔潔小姐, 妳...
$M: 今年獎金一百萬絕對是我的!!!
$N: 啊哈哈....=_=##
這代表了我只要將 AI 與這個任務及腳本系統做結合,我也能比
以往更輕鬆、快速、有效率地產生與 npc 的對話任務。
「更輕鬆、快速、有效率」,就是我需要的,因為目前只有我一
個人在 coding。
以上一點分享。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.126.145.135 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/mud/M.1676515731.A.B9B.html
※ 編輯: laechan (59.126.145.135 臺灣), 02/16/2023 10:54:37
※ 發信站: 批踢踢實業坊(ptt.cc)
※ 轉錄者: laechan (59.126.145.135 臺灣), 02/16/2023 13:30:21