Renpy教學【第十一篇 #11】 一起寫視覺小說吧 【下】 - Space of NingNing

Renpy教學【第十一篇 #11】 一起寫視覺小說吧 【下】

最近開始了在 Youtube 上上傳教學影片歡迎訂閱我的頻道~  

◆YT 連結◆

這 篇 是 第 十 篇 的 下 半 部 

    如 果 你 還 沒 有 看 過 一 起 寫 視 覺 小 說 吧 【上】的 話 你 可 以 點 此 連 結 進 入

    雖 然 看 完 上 面 那 篇 就 能 做 出 一 部 視 覺 小 說  可 以 要 讓 你 的 視 覺 小 說 看 起 來 更 棒 棒 還 有 很 多 可 以 做 的 / 改 善 的


    首 先 呢 這 是 上 一 篇 最 後 做 出 來 的 成 果

    裡 面 包 含 的 教 學 有

    - 基 本 的 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的圖 )


    然 後 在 腳 本 裡 加 上 這 一 段 代 碼 :
    image ctc_blink:
           "圖片位置"
           linear 0.25 alpha 1.0
           linear 0.25 alpha 0.0
           repeat

    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

    圖 標 跳 的 就 會 慢 一 點 - 預 覽 影 片

    這 篇 就 寫 到 這 裡 拉 - 希 望 對 你 的 遊 戲 製 作 有 幫 助 !

    上 篇 可 以 點 這 裡 進 入

    ----------------- 分 隔 線  -----------------

    ​​◆ 喜歡這篇文章的話 — 留言或是為我拍手, 我都會很開心的!


    Next Post Previous Post
    3 Comments
    • 匿名
      匿名 9/12/2021 5:57 上午

      感謝你的教學

    • 匿名
      匿名 6/07/2022 5:01 上午

      感謝你的Ren'Py教學!

    • 匿名
      匿名 8/10/2022 9:22 下午

      讚👍

    Add Comment
    comment url