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
    You are seeing this message because ad or script blocking software is interfering with this page.
    Disable any ad or script blocking software, then reload this page.