Ren'Py 作為一款新手友善的遊戲設計套件,雖然是建構於 Python,但實際編寫上不須太多 Python 操作,簡單劇本甚至可以完全不使用 Python。
因此也受到許多製作人的青睞!
這次就來和大家一起了解簡單的 Ren'Py 操作!
入門篇——教學目錄
💡 延伸閱讀——從 0 到 1 的遊戲專案
Ren'Py 是什麼?可以利用 Ren'Py 做出什麼遊戲?
網路上大多對 Ren'Py 的介紹,都會提及它是建構於 Python 的視覺小說遊戲引擎。而更簡單來說,Ren'Py 更像是台灣玩家熟悉的 2D 劇情遊戲(包含 2D 主軸的解謎或乙女遊戲)。
《心跳文學部!》即是使用 Ren'Py 引擎的著名作品之一。
Ren'Py 作為劇情遊戲(或說視覺小說)引擎,基本功能包括設定劇情的主線支線、場景轉換、等等。
同樣地,因為 Ren'Py 是建構於 Python 的遊戲引擎,對於會使用 Python 的製作人,更可以在 Ren'Py 以 Python 程式碼自創基礎功能以外的新功能。
下載連結與支援平台,請參考官網:https://www.renpy.org/
若是對遊戲專案從 0 到 1 的開發規劃有興趣,也可參考站上的另一篇文章:
為什麼推薦 Ren'Py?
最主要的兩個原因:「對程式小白友善」且「上手快速」。
如開頭提到,Ren'Py 不需要會 Python 也可以使用,甚至只要會基礎 Python 就能做到很多複雜操作!
Ren'Py Launcher 可以讓製作人直接透過 UI 介面做測試,劇情內容與設定都相當單純。
更重要的是,他的官網文件和網路資源相當豐富(中文資源也是!),即便有問題也不怕找不到解答。
Ren'Py 中文官方文件:https://www.renpy.cn/doc-tw/quickstart.html
下載 Ren'Py,一起操作 Ren'Py 基礎功能
✰ 下載並啟動 Launcher
首先,請從官網下載 Ren'Py Launcher:https://www.renpy.org/
完成安裝後,啟動 Ren'Py 可以看到以下 Launcher 內容:
語言可透過右下小字「preferences」調整成中文(Traditional Chinese)
✰ 官方範例
Launcher 內預設會提供兩個 Project 供製作人參考使用,也就是畫面上的 PROJECTS 區塊 Tutorial、The Question(trial_project , room_exploration 並非預設,是我自己新開的專案)。
一開始還不知道怎麼開始,很建議先看一下預設的 The Question 內容,這是官方提供的遊戲 Demo,可以了解 Ren'Py 可以做到什麼事,再透過 Tutorial 了解細部功能與操作!
📍 開啟專案路徑:PROJECTS ➡️ The Question ➡️ Launch Project(啟動專案)
所有範例專案的劇情程式都存放在 script.rpy,可以在 Launcher 右上區塊「編輯檔案」的 .rpy 檔案中找到,並進一步了解裡面的編寫方式。
💡 小提醒:Ren'Py 預設是用 Atom 編輯 .rpy 檔,沒有編輯器的人記得須先下載才能進行編輯。
✰ 開始製作自己的遊戲
看完範例,若要建立一個新的 Project,則可點擊左下方文字:Create New Project(新建專案),輸入專案名稱和遊戲畫面尺寸後,即可開始編輯自己的遊戲內容!
基礎功能有以下(底下內容都在 script.rpy 中進行編輯):
一、人物與對話
出場角色都必須在 script.rpy 劇情開始前完成定義。定義方式:
# 範例
# define 角色程式代稱 = Character('角色名稱')
define m = Character('賀玄')
也可以加入更多參數:
# 範例
# define 角色程式代稱 = Character('角色名稱', color = '角色名稱顏色')
define m = Character('賀玄', color="#a1a0f2")
完成角色定義後,則可以開始劇情:
# 範例
# define 角色程式代稱 = Character('角色名稱', color = '角色名稱顏色')
define m = Character('賀玄', color="#a1a0f2")
label start:
m "大家好!"
label start 的內容則是遊戲正式劇情,每行雙引號("")表示對話。若沒有在雙引號前指定將角色程式代稱,則不會顯示對話角色,適合用來作為旁白或描述動作。
若要測試遊戲內容,則必須回到 Launcher,選定 Project 後,點選「啟動專案」。
此範例中,我們設定的唯一角色程式代稱為 m,故以上劇情中只能看到角色賀玄只說了一句「大家好」。
有關角色(Character)的其他參數:https://www.renpy.cn/doc-tw/quickstart.html#character
二、角色圖像與背景圖
劇情遊戲少不了吸睛的圖像,顯示角色人像在遊戲中則可使用 show 的功能:
define m = Character('賀玄', color="#a1a0f2")
label start:
show m_smile
m "大家好!"
這裡的 m_smile 為圖檔,程式碼會自動抓取 game/images 資料夾中,檔名為 m_smile 的圖檔(eg. png, jpg, jpeg)顯示。
由於預設都是置中顯示,若要設定位置可以用 at 指定位置:
define m = Character('賀玄', color="#a1a0f2")
label start:
show m_smile at left
m "大家好!"
若要隱藏角色人像,則使用 hide 指令:
define m = Character('賀玄', color="#a1a0f2")
label start:
show m_smile at left
m "大家好!"
hide m_smile
若遇到檔名不同,或是想先定義圖片再使用於劇本,亦可用以下方式呈現一樣的效果:
define m = Character('賀玄', color="#a1a0f2")
image m_smile = "images/character/man/happy_man.png"
label start:
show m_smile at left
m "大家好!"
hide m_smile
背景圖設定和人物設定大同小異,背景圖若存在 game/images 資料夾中,則可直接呼叫使用。顯示方式為 scene:
define m = Character('賀玄', color="#a1a0f2")
image m_smile = "images/character/man/happy_man.png"
label start:
scene inside_building
show m_smile
m "大家好!"
hide m_smile
三、選單 (Menu)
選單內容即為在劇情進行中,玩家能依據選單提供的行動來做選擇,藉此觸發支線劇情。
選單功能名稱為 menu,可以在 menu 底下提供不同選項,並在選項中決定不同選項要觸發什麼內容。
# 選單範例
label start:
menu:
"晚餐要吃什麼?" # 第一句可以先補充情境敘述,供玩家選擇時參考
# 日式料理作為選項一
"日式料理":
# 這邊放選擇日式料理後的觸發行為
"走吧,去吃日式料理!"
# 漢堡作為選項二
"漢堡":
# 這邊放選擇漢堡後的觸發行為
"走吧,去吃漢堡!"
這邊也提供官方專案 The Question 當中的選單程式碼:
# 前略
menu:
"當她吸引了我的目光時,我決定......"
"馬上問她。":
jump rightaway
# jump 功能:跳躍到指定 label
# 此處會跳到 label rightaway 繼續劇情
"以後問她。":
jump later
# 此處會跳到 label later 繼續劇情
label rightaway:
show sylvie green smile
... # 後略
label later:
"我現在還沒辦法下定決心,決定之後再問她。"
... # 後略
補充:label start 是遊戲必須要有的 label,為的是讓遊戲能辨別劇情從哪裡開始。除此之外,製作人是可以自由添加其他 label 來拓展 / 管理劇情支線的。
✰ 做好遊戲啦!輸出成 Mac 和 PC 版本供玩家遊玩
若是完成遊戲劇本編輯,可以回到 Launcher,準備輸出
📍 輸出路徑:Launcher ➡️ Actions 區塊 ➡️ 建立釋出版(Build Distributions)
點選後,可以根據「建立套件」處選擇想將遊戲輸出到哪個系統環境。決定好後,就可以點選「建立」。
📍 (範例)輸出 Mac & Windows 檔案:建立套件 ➡️ 勾選 ✔️ `PC: Windows & Linux` 以及 ✔️ `Macinotsh` ➡️ 建立
隨後,Launcher 就會依照選擇的系統環境將遊戲打包成對應的 zip 檔。這樣就大功告成啦!
結語 & 教學素材來源
這次的教學很簡單地概括了從零到一的基礎功能,當然 Ren'Py 有的功能遠遠不止這些!還有音樂、自建按鈕 ... 等等,相當客製化的功能存在,進階程式碼內容可以參考這篇文章:
素材來源:
人物圖片素材:Pikisuperstar - www.freepik.com
背景圖片素材:URL
貼心提醒:網路素材請注意授權,避免侵犯作者著作權
自己的測試作品
因為打造一款遊戲需要耗費大量的心力,同時,這也是難以一人達成的目標!
完成一款遊戲,除了需要發想遊戲腳本,還需要美術、音樂,以及程式人員把一切彙整起來。因此,也為了完成這個浩大工程,很希望有想開發自己遊戲的朋友們一起交流!
有興趣的人歡迎透過 Email 或站內的「與我聯繫」來聊聊。對遊戲開發沒經驗但有興趣的人也很歡迎 :)
遊戲 Demo
一、純劇情遊戲
早期開發測試用,純對話劇情。遊戲影片:URL
二、2D 密室解謎遊戲
👉 直接到遊戲網頁試玩
透過與指定的背景物品互動解謎的遊戲。
若是游標放置在可互動物品上(如:畫面牆上的肖像畫),物件會發光顯示。
點擊可互動物件後,即可觸發線索(或其他支線)。
若是對從 0 到 1 的開發過程有興趣,可以參考這兩篇文章:
或是直接到遊戲網頁試玩
兩項 Demo 作品的素材來源:
人物圖片素材:朋友友情提供、Pikisuperstar - www.freepik.com
背景圖片素材:URL
室內空間素材:https://homestyler.com
背景音樂素材:https://opengameart.org/
歡迎有興趣的朋友們一起加入!
最後,關於教學內容有任何問題都可以提出!或是有其他想了解的功能也歡迎許願 :)
Comments