【Renpy 教學】製作選像, 讓玩家選擇影響故事

更新於 發佈於 閱讀時間約 7 分鐘
需要Renpy相關的協助嗎? 現在開始接受委託拉~ 歡迎委託我窩 (●'◡'●)

準備:

在開始之前先讓我們有2個可以對話的角色吧
define a=Character("路人A")
define b=Character("路人B")
另外我們也可以在放一個背景在後面
image park = "images/bg/park.jpg"
除了角色以外在讓我們設置一些變量(variable)
$cha_aff = 0
$chb_aff = 0
default apple = False
default banana = False

建立選項

建立分支 renpy 所使用的代碼是 menu
寫法是這樣:
menu:
    "選像1":
    "選像2":
  • Menu 後面要加 :
  • 記得在每個選項後面要加 :
  • 每個選項顯示的字要用2個引號 "" 包住
  • 在每個選像的 : 後一句可以寫上選了某個選項後要執行的動作

顯示選項文字

你可以直接在每個選項的 :後一句打上對話
像這樣:
menu:
    "蘋果":
        "蘋果好吃"
    "香蕉":
        "香蕉好吃"
  • "蘋果好吃" 這句話這樣就會顯示在玩家選了🍎蘋果之後
  • "香蕉好吃" 這句話這樣就會顯示在玩家選了🍌香蕉之後
如果你要指定某個角色說出 "蘋果好吃" 或是 "香蕉好吃" 的話,只要在句子前面加上角色的代號就可以囉
範例:
menu:
    "蘋果":
        a "蘋果好吃"
    "香蕉":
        b "香蕉好吃"

選擇後增加好感

這個時候就可以用到剛剛定義的 $cha_aff = 0和$chab_aff = 0
使用範例:
menu:
    "蘋果":
        a "蘋果好吃"
        $cha_aff += 1
    "香蕉":
        b "香蕉好吃"
        $chb_aff += 1

如何確認好感度確實增加了?

一個簡單的方式去確認好感有沒有增加你可以像我這麼做
首先創建一個新的 label, label名字的話可以隨便取
範例:
label stats:
    "路人A的好感度是 [cha_aff]"
    "路人B的好感度是 [chb_aff]"
  • 在 [] 裡面的字 = 你的變量 (variable) , 裡面的字必須和你之前定義的名字一樣窩
所以你的代碼可以大概長這樣:
menu:
    "蘋果":
        a "蘋果好吃"
        $cha_aff += 1
        jump stats
    "香蕉":
        b "香蕉好吃"
        $chb_aff += 1
        jump stats
label stats:
    "路人A的好感度是 [cha_aff]"
    "路人B的好感度是 [chb_aff]"

根據好感跳轉劇情

或許你想要根據你的好感 (像是可能好感過 10 時) 跳到特殊的劇情 這時你就要使用到 if 語句 和 jump
所以它的代碼可以看起來像這樣
if cha_aff >= chb_aff: 
    jump next1 
else: 
    jump next2 
  • 這2句的意思是- 當cha_aff的數值(好感)大於chb_aff時 , 跳到 next1
  • 如果ha_aff的數值(好感)小於chb_aff時則跳到 next2
所以代碼可以大概長這樣:
menu:
    "蘋果":
        a "蘋果好吃"
        $cha_aff += 1
    "香蕉":
        b "香蕉好吃"
        $chb_aff += 1
if cha_aff >= chb_aff:
    jump next1
else:
    jump next2
label next1:
    "蘋果超讚, 路人A超喜歡你!"
    jump start
label next2:
    "香蕉超讚, 路人B超喜歡你!"

根據事件跳轉劇情

除了根據好感以外你也能根據角色經歷過的事件跳轉劇情
這個時候就可以用到剛剛定義的這兩句 - $end1= false 和 $end2 = false
所以你的代碼可以看起來像這樣:
menu:
    "蘋果":
        a "蘋果好吃"
        $apple = True
    "香蕉":
        b "香蕉好吃"
        $banana = True
if apple == True:
    jump appleTrue
elif banana == True:
    jump bananaTrue
else:
    jump start
  • 使用這個的話你還要在建立另外2個label - appleTrue 和 bananaTrue
除了直接跳轉到另一個 Label 外也可以直接把要額外寫的句子加在 if statement 的後面
像是這樣:
menu:
    "蘋果":
        a "蘋果好吃"
        $apple = True
    "香蕉":
        b "香蕉好吃"
        $banana = True
if apple == True:
    "恩恩蘋果真的超讚"
elif banana == True:
    "恩恩香蕉真的超讚"
else:
    "欸欸怎麼會出現這句話呢?"
此教學也有影片版本窩~

在其他平台找到我 MattersSpace of NingNing | 我的個人空間
我的商店s: Itch.ioKo-Fi - Shop個人商店
在離開之前如果你覺得這篇文章對你有幫助的話就幫我按個讚吧!
為什麼會看到廣告
此沙龍呢,主要包含 Renpy 中文教學還有其他遊戲引擎 (專注於視覺小說引擎) 的教學。 歡迎想學自製遊戲的人加入! 除了遊戲製作的教學外也有一些我的生活上的各種事的分享,只想學製作遊戲的話就可以先忽略他們拉
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Renpy教學 - 使用renpy建立出你的第一段劇情 自製文字冒險遊戲基礎教學,Renpy引擎基本教學,Renpy中文教學介紹 如何使用Renpy自製galgame 自製遊戲教學,甚麼是Renpy
這篇文章是關於Renpy的介紹—如果你還不知道或是還在思考要使用甚麼引擎製作遊戲/視覺小說的話那就歡迎繼續閱讀拉 甚麼是一個遊戲引擎? Renpy是甚麼呢? Renpy中文教學, Renpy 下載免費文字冒險遊戲製作引擎, Renpy心得感想, Renpy 教學, Renpy 使用教學
Renpy教學 - 使用renpy建立出你的第一段劇情 自製文字冒險遊戲基礎教學,Renpy引擎基本教學,Renpy中文教學介紹 如何使用Renpy自製galgame 自製遊戲教學,甚麼是Renpy
這篇文章是關於Renpy的介紹—如果你還不知道或是還在思考要使用甚麼引擎製作遊戲/視覺小說的話那就歡迎繼續閱讀拉 甚麼是一個遊戲引擎? Renpy是甚麼呢? Renpy中文教學, Renpy 下載免費文字冒險遊戲製作引擎, Renpy心得感想, Renpy 教學, Renpy 使用教學
你可能也想看
Google News 追蹤
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
本篇文章將分享如何在 CG 畫面中加入影片或動畫功能,特別針對在 Renpy 上的應用與實作。文章提供兩種方式,包含 ATL 技術來創建動畫,與定義影片的過程,適合對解鎖 CG 有興趣的開發者。我們將一步一步展示所需材料和代碼範例,幫助讀者順利實現動畫效果。無論是短影片還是長動畫,均有解決方案。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第二篇呢 , 我們會來一起了解: 如何定義物件出現在畫面的哪個位置有哪些指令可以定位物件如何正確定義物件一些常見的失誤那就讓我們開始吧!
Thumbnail
這篇文章講述透過選擇來前進,並表達了「決定」的力量,以及不同決定所帶來的體驗。並且以花籃作品來表達這種能量,進一步探討選擇的美好和不同經驗的重要性。
Thumbnail
教你如何在遊戲或劇情中建立和使用隨機名字,透過隨機產生不同的名字,讓角色更加多樣化,提升遊戲劇情的豐富度。
Thumbnail
從主動的去選擇要吃什麼出發,這是一個很容易發想的起點。很多人直覺會回應:我怎麼不能選擇了?去哪一間餐廳吃飯或是外送哪一份餐點來吃,不是就是一種選擇嗎?但即使是如此,仍跳脫不了餐廳已經準備好的固定餐點。就月光的想法,是那種自己煮來吃的,才是主動掌控自己要吃什麼的人。不過,月光的作法,也只
Thumbnail
Renpy教學,詳細介紹在遊戲開發中如何在Renpy裡隱藏對話框,包括自動隱藏、撥放動畫時隱藏、顯示CG時隱藏文字框以及讓玩家自行隱藏文字框。希望能夠幫助到遊戲開發者。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
日期網友詢問一個多條件動態下拉式選單的設計,如下圖。 資料中有各種年齡層的目標對象可食用食物的資料分析,其中1代表該年齡層可以吃的食物、0代表不能吃的食物。 原PO想要根據這個資料來源製作一個下拉選單,當選擇該年齡層的目標對象時,下拉式選單分別於主食、肉類、葉菜類顯示可食用的食物名稱(原始資
安安~今天的教學是關於在 Renpy 引擎裡調整圖片大小 有的時候可能你在製作遊戲時會遇到這樣的問題: 怎麼每張圖片大小都不一樣,也太麻煩了吧 或是 背景跟專案大小不符 這些問題當然可以透過在 PS 或是其他軟體內修改大小後重新拖入專案來解決
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
本篇文章將分享如何在 CG 畫面中加入影片或動畫功能,特別針對在 Renpy 上的應用與實作。文章提供兩種方式,包含 ATL 技術來創建動畫,與定義影片的過程,適合對解鎖 CG 有興趣的開發者。我們將一步一步展示所需材料和代碼範例,幫助讀者順利實現動畫效果。無論是短影片還是長動畫,均有解決方案。
Thumbnail
這篇內容,將會講解什麼是變數,以及與變數相關的知識。包括變數、資料型態、變數賦值、變數的命名規則、變數的作用區域、變數的可重複性、內建變數。
Thumbnail
這個系列的教學會列出基本上所有常見的造型和一些基礎 , 讓各位可以自行搭配造型~在這個第二篇呢 , 我們會來一起了解: 如何定義物件出現在畫面的哪個位置有哪些指令可以定位物件如何正確定義物件一些常見的失誤那就讓我們開始吧!
Thumbnail
這篇文章講述透過選擇來前進,並表達了「決定」的力量,以及不同決定所帶來的體驗。並且以花籃作品來表達這種能量,進一步探討選擇的美好和不同經驗的重要性。
Thumbnail
教你如何在遊戲或劇情中建立和使用隨機名字,透過隨機產生不同的名字,讓角色更加多樣化,提升遊戲劇情的豐富度。
Thumbnail
從主動的去選擇要吃什麼出發,這是一個很容易發想的起點。很多人直覺會回應:我怎麼不能選擇了?去哪一間餐廳吃飯或是外送哪一份餐點來吃,不是就是一種選擇嗎?但即使是如此,仍跳脫不了餐廳已經準備好的固定餐點。就月光的想法,是那種自己煮來吃的,才是主動掌控自己要吃什麼的人。不過,月光的作法,也只
Thumbnail
Renpy教學,詳細介紹在遊戲開發中如何在Renpy裡隱藏對話框,包括自動隱藏、撥放動畫時隱藏、顯示CG時隱藏文字框以及讓玩家自行隱藏文字框。希望能夠幫助到遊戲開發者。
Thumbnail
Python語法包括條件語句、迴圈、函數和變數的使用。條件語句如if、elif和else用於進行條件判斷,for和while是兩種主要的迴圈,def用於定義函數。變數可以被賦予數字或字符串,並可使用類型提示來指定變數的類型。註解可以是單行或多行,並可用於解釋函數或類的用途和作用。
Thumbnail
日期網友詢問一個多條件動態下拉式選單的設計,如下圖。 資料中有各種年齡層的目標對象可食用食物的資料分析,其中1代表該年齡層可以吃的食物、0代表不能吃的食物。 原PO想要根據這個資料來源製作一個下拉選單,當選擇該年齡層的目標對象時,下拉式選單分別於主食、肉類、葉菜類顯示可食用的食物名稱(原始資
安安~今天的教學是關於在 Renpy 引擎裡調整圖片大小 有的時候可能你在製作遊戲時會遇到這樣的問題: 怎麼每張圖片大小都不一樣,也太麻煩了吧 或是 背景跟專案大小不符 這些問題當然可以透過在 PS 或是其他軟體內修改大小後重新拖入專案來解決