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

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

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


原文可以點這裡進入 製作選像分支 - Renpy 中文教學空間

準備:

在開始之前先讓我們有2個可以對話的角色吧

define a=Character("路人A")
define b=Character("路人B")

另外我們也可以在放一個背景在後面

image park = "images/bg/park.jpg"

除了角色以外在讓我們設置一些變量(variable)

如何使用變量 / 甚麼是變量?【Renpy 教學】 | NingNing の 個人空間

$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個人商店

在離開之前如果你覺得這篇文章對你有幫助的話就幫我按個讚吧!


avatar-img
SmileFlower的星球 ⭐ 歡迎入住~
53會員
114內容數
此沙龍呢,主要包含 Renpy 中文教學還有其他遊戲引擎 (專注於視覺小說引擎) 的教學。 歡迎想學自製遊戲的人加入! 除了遊戲製作的教學外也有一些我的生活上的各種事的分享,只想學製作遊戲的話就可以先忽略他們拉
留言
avatar-img
留言分享你的想法!
這篇文章教學如何使用Ren'Py製作長按物件觸發動作的功能,包含時間計算、畫面建立、圖片特效和label呼叫等步驟,並提供可下載的檔案和範例程式碼。
回顧2024年忙碌充實的一年,完成了畢業、考試、實習和接案等重要事項,並新增32篇教學、3個UI範本,參與2個Game Jam。2025年計畫完成未完成教學、製作教學影片,並考慮新增會員投稿教學。新年推出限時優惠方案,訂閱新年方案享對折優惠。
本篇文章介紹如何自訂滾動條的外觀與功能,適用於使用Ren'Py創建的專案。文中詳細講解了滾動條的基本概念、不同狀態的圖片替換,以及自訂樣式的設定方法。讀者將學會如何根據需要調整滾動條的長度、位置及其他參數,以提供更好的用戶體驗。無論是初學者或是已有基礎的開發者,皆可從中受益。
這篇文章教學如何使用Ren'Py製作長按物件觸發動作的功能,包含時間計算、畫面建立、圖片特效和label呼叫等步驟,並提供可下載的檔案和範例程式碼。
回顧2024年忙碌充實的一年,完成了畢業、考試、實習和接案等重要事項,並新增32篇教學、3個UI範本,參與2個Game Jam。2025年計畫完成未完成教學、製作教學影片,並考慮新增會員投稿教學。新年推出限時優惠方案,訂閱新年方案享對折優惠。
本篇文章介紹如何自訂滾動條的外觀與功能,適用於使用Ren'Py創建的專案。文中詳細講解了滾動條的基本概念、不同狀態的圖片替換,以及自訂樣式的設定方法。讀者將學會如何根據需要調整滾動條的長度、位置及其他參數,以提供更好的用戶體驗。無論是初學者或是已有基礎的開發者,皆可從中受益。