Renpy教學【第十一篇 #11】 一起寫視覺小說吧 【下】
最近開始了在 Youtube 上上傳教學影片歡迎訂閱我的頻道~
這 篇 是 第 十 篇 的 下 半 部
如 果 你 還 沒 有 看 過 一 起 寫 視 覺 小 說 吧 【上】的 話 你 可 以 點 此 連 結 進 入
雖 然 看 完 上 面 那 篇 就 能 做 出 一 部 視 覺 小 說 可 以 要 讓 你 的 視 覺 小 說 看 起 來 更 棒 棒 還 有 很 多 可 以 做 的 / 改 善 的
首 先 呢 這 是 上 一 篇 最 後 做 出 來 的 成 果
裡 面 包 含 的 教 學 有
- 基 本 的 Renpy 代 碼 / 腳 本 寫 法 ( 像 是 定 義 角 色, 圖 片 等 )
- 讓 玩 家 輸 入 自 己 的 名 字
- 好 感 度 系 統
- 根 據 玩 家 選 像 / 選 擇 決 定 後 續 的 劇 情 (IF function)
這 篇 文 章 主 要 就 會 改 善 畫 面 讓 整 個 遊 戲 看 起 來 更 有 質 感
那 就 廢 話 不 多 說 直 接 進 入 到 正 式 編 輯 囉
------------------ 分 隔 線 ------------------
1. 讓 沒 說 話 的 角 色 退 場 / 讓 說 話 的 角 色 看 起 更 明 顯
你 可 以 使 用 轉 場 特 效 + hide 讓 角 色 退 場 - 範 例 影 片
我 使 用 的 代 碼 :
m "那 我 先 退 場 了"
hide mika
with dissolve
l "我 也 該 退 場 了"
hide lia with moveoutleft
-----------------------------------------
我 的 話 是 比 較 喜 歡 讓 角 色 留 在 場 上 - 只 是 讓 沒 在 說 話 的 角 色 看 起 來 黑 一 點 這 樣 也 可 以 讓 玩 家 視 覺 上 更 清 楚 是 誰 在 說 話
要 呈 現 出 這 樣 的 感 覺 的 話 你 需 要 原 本 普 通 的 立 繪
像 這 樣 這 是 我 在 這 個 專 案 裡 所 使 用 的 立 繪:
而 這 是 我 用 來 顯 示 當 她 沒 在 說 話 時 的 立 繪:
這 是 之 後 會 呈 現 出 來 的 樣 子 - 預 覽 影 片
當 你 把 這 2 張 圖 片 準 備 好 之 後 你 就 可 以 打 開 你 的 script.rpy
刪 掉 原 本 定 義 圖 片 的 那 一 行 換 成 這 個 代 碼 :
image 圖 片 的 名 字 =ConditionSwitch("_last_say_who == '角 色 代 號'","圖 片 的 路 徑 ( 當 角 色 說 話 時 使 用 的 圖 ) ",
"not _last_say_who == ' 角 色 代 號 ''", " 圖 片 的 路 徑 ( 當 角 色 不 說 話 時 使 用 的 圖 )")
所 以 像 是 我 在 這 個 專 案 使 用 的 代 碼 就 長 這 樣 :
image lia =ConditionSwitch("_last_say_who == 'l'","images/character/lia.png",
"not _last_say_who == 'l'", "images/character/lia dark.png")
image mika =ConditionSwitch("_last_say_who == 'm'","images/character/mika.png",
"not _last_say_who == 'm'", "images/character/mika dark.png")
注意! _last_say_who == ' 角 色 代 號 ' 和 not _last_say_who == ' 角 色 代 號 ' 後 面 接 的 字 是 角 色 的 代 碼 而 不 是 角 色 的 名 字 窩
我 的 角 色 的 名 字 叫 做 Mika 而 我 在 define 角 色 時 使 用 的 代 號 是 m 所 以 我 要 接 m 而 不 是 Mika
(( 這 一 句 define m = Character('Mika', color="#000000")
2. 增 加 更 多 可 能 性 ( If Function 的 延 伸 )
以 上 一 篇 的 代 碼 來 說 會 自 動 選 擇 好 感 比 較 高 的 角 色 陪 你 走 下 去
而 我 這 篇 想 要 增 加 更 多 選 像 - 就 是 玩 家 的 好 感 一 定 要 大 於 一 定 的 值 才 會 跟 某 個 角 色 走 下 去, 當 玩 家 跟 每 個 角 色 的 關 係 都 不 高 或 都 沒 到 達 一 定 的 值 的 話 就 要 自 己 走 這 樣
所 以 現 在 要 回 到 final label
label final:
if lia_aff >= mika_aff:
jump lia
else:
jump mika
我 會 將 上 面 的 代 碼 改 成 這 樣 :
label final:
if lia_aff >= 3:
jump lia
elif mika_aff >= 3:
jump mika
else:
jump alone
------------------ 分 隔 線 ------------------
if lia_aff >= 3:- 如 果 lia 的 好 感 大 於 3
jump lia- 那 就 跳 到 叫 做 lia 的 label
elif - 如 果 上 面 一 句 的 If 句 子 不 成 立 的 話
elif mika_aff >= 3:- 進 入 到 這 句 的 If 句 子 (如 果 mika 的 好 感 大 於 3)
jump mika - 那 就 跳 到 叫 做 mika的 label
else:- 如 果 上 面 2 句 的 If 句 子 都 不 成 立 的 話
jump alone- 那 就 跳 到 叫 做 alone的 label
之 後 呈 現 出 來 的 效 果 - 預 覽 影 片
第 一 段 是 當 3 個 選 則 都 選 在 會 增 加 lia 好 感 的選 項 所 以 lia 的 好 感 會 大 於 3 那 之 後 玩 家 就 會 跟 著 lia 走
第 二段 是 3 個 選 則 2 個 選 在 會 增 加 lia 好 感 的 地 方 但 第 3 個 選 擇 增 加 的 是 mika 的 好 感 那 不 管 是 mika 還 是 lia 的 好 感 都 是 小 於 3 的 所 以 玩 家 就 要 自 己 走了
另 換 一 種 If 句 子 的 利 用 方法是 當 玩 家 選 擇 了 某 個 選 像 後 會 增加 Mika/ Lia 的 好 感 但 也 會 降 低 另 一 個 角 色 的 好 感
這 是 我 這 次 使 用 的 代 碼 範例 :
m "問 題 1 - 你 比 較 喜 歡 蘋 果 還 是 香 蕉 呢 ? "
menu:
"蘋 果":
$ lia_aff += 1
$ mika_aff -= 1
jump q2
"香 蕉":
$ mika_aff += 1
$ lia_aff -= 1
jump q2
------------------ 分 隔 線 ------------------
"蘋 果":- 如 果 玩 家 選 擇 了 選 像 "蘋 果"
$ lia_aff += 1- 那 lia 的 好 感 就 會 加 1
$ mika_aff -= 1 - 但 mika 的 好 感 就 會 減 1
"香 蕉":- 如 果 玩 家 選 擇 了 選 像 "香 蕉"
$ mika_aff += 1- 那 mika的 好 感 就 會 加 1
$ lia_aff -= 1 - 但 lia的 好 感 就 會 減 1
3. 在 對 話 後 面 加 上 浮 動 圖 標
當 角 色 說 完 一 句 話 後 在 對 話 框 裡 出 現 一 個 圖 標
像這樣:
首 先 你 需 要 準 備 一 張 小 圖 ( 在 這 裡 我 使 用 了 24x24的圖 )然 後 在 腳 本 裡 加 上 這 一 段 代 碼 :
linear 和 alpha 後 面 的 數 字 都 可 以 根 據 需 求 隨 意 更 改
加 上 上 面 那 段 代 碼 後 還 要 在 角 色 定 義 的 代 碼 後 面 加上 ctc="ctc_blink
範例:
define m = Character('Mika', color="#000000", ctc="ctc_blink")
define l = Character('Lia', color="#9e3bad", ctc="ctc_blink")
之 後 對 話 就 會 看 起 來 像 這 樣 - 預 覽 影 片
如 果 把 linear 改 成 0.75
圖 標 跳 的 就 會 慢 一 點 - 預 覽 影 片
這 篇 就 寫 到 這 裡 拉 - 希 望 對 你 的 遊 戲 製 作 有 幫 助 !
----------------- 分 隔 線 -----------------
◆ 喜歡這篇文章的話 — 留言或是為我拍手, 我都會很開心的!
感謝你的教學
感謝你的Ren'Py教學!
讚👍