互動式編導器(interactive director) link
互動式編導器(interactive director)是一個工具,允許你在Ren’Py中直接編輯遊戲腳本,並能直接預覽編輯的結果。編導器(director)並不意味著可能完全代替文本編輯器。我們依然需要文本編輯器來撰寫視覺小說的對話、選項和邏輯。
編導器(director)意在幫助你完成遊戲腳本,比如添加:
image(say、show、hide)語句。
transition(with)語句。
audio(play、queue、stop、voice)語句。
使用編導器(director) link
你可以在遊戲開始後按下鍵盤的D鍵(不帶shift)接入編導器(director)。如果這是你在某個會話中首次接入編導器,Ren’Py會重新載入整個遊戲以確保可能會被編輯的數據無誤。
你會看到的第一個編導器界面是一個當前行之前運行過的行的列表。點擊編導器窗口之外的部分讓腳本繼續前進或者回滾。點擊各行之間的加號“+”能夠添加一行,或者點擊每行之前的 ✎ 符號能編輯對應的行。
編輯某一行時,可以選擇語句類型,以及何時的參數。選擇“添加”添加新行,“更改”修改已存在的某行,“取消”取消編輯,“移除”移除存在的某行。
當編輯完畢後點擊“完成”。
配置項 link
在命名空間 director
定義了一些配置項,用於控制互動式編導器(interactive director)的功能。這些配置項可以使用define語句設置,或者使用Python語句修改。
scene、show和Hide link
- director.tag_blacklist = { "black", "text", "vtext" } link
標籤(tag)黑名單。黑名單內的標籤(tag)不會通過show、scene和hide語句顯示。
- director.scene_tags = { "bg" } link
標籤(tag)的集合。集合內的標籤(tag)會通過scene語句展示,並通過show語句隱藏。
- director.show_tags = set() link
若非空集,只有集合內標籤才會通過show語句顯示。
- director.transforms = [ "left", "center", "right" ] link
一個transform列表,顯示為編輯器的一部分。除此之外,Ren’Py之外使用transform語句定義的transform都會添加到這個列表中,並排序。
With link
- director.transitions = [ "dissolve", "pixellate" ] link
一個轉場(transition)列表,列表中的轉場可以透過with語句使用。由於轉場不能被自動檢測到,這個列表內的轉場必須手工添加。
play、queue、stop和voice link
- director.audio_channels = [ "music", "sound", "audio" ] link
可以被play、show和stop語句使用的音訊通道名。
- director.voice_channel = "voice" link
可以被voice語句使用的音訊通道名。
- director.audio_patterns = [ "*.opus", "*.ogg", "*.mp3" ] link
預設的音訊檔案名正則表達式列表,匹配正則表達式的文件都可以在音訊通道中使用。
- director.audio_channel_patterns = { } link
從通道名到可用的音訊檔案名正則表達式的映射關係。例如,如果這項設置為
{ 'sound' : [ 'sound/*.opus' ], 'music' : [ 'music/*.opus' ] }
,music和sound通道就使用各自可用文件的正則表達式。
Access link
- director.button = True link
若為True,編導器(director)會顯示一個帶按鈕的界面,用於接入編導器窗口。若為False,遊戲提供自身的接入方式,透過執行可用的director.Start行為。
行間隔 link
- director.spacing = 1 link
編導器(director)行(包括scene、show、hide、with、play、queue和voice),與非編導器行之間的間隔。間隔應該是0行或者1行,更大的間隔可能不會奏效。
- director.director_spacing = 0 link
連續兩個編導器行的間隔。
- director.other_spacing = 0 link
連續兩個非編導器行的間隔。
視口 link
- director.viewport_height = 280 link
編導器使用的可滾動視口的最大高度。
音訊檔案函數 link
有一些音訊檔案函數可以用於把轉換磁碟檔案名轉換為Python原始碼的檔案名。這些功能可以用於匹配Ren’Py的檔案名映射。例如,我們有這樣一段配置:
define config.voice_filename_format = "v/{filename}.ogg"
我們就可以定義一個函數:
init python in director:
def audio_code_to_filename(channel, code):
"""
這將在代碼中看到的音訊檔案名的名稱轉換為磁碟上的檔案名。
"""
if channel == "voice":
return "v/" + code + ".ogg"
return code
def audio_filename_to_code(channel, fn):
"""
這將磁碟上的音訊檔案名的名稱轉換為檔案名,如代碼中所示。
"""
if channel == "voice":
return fn.replace("v/", "").replace(".ogg", "")
return fn
def audio_filename_to_display(channel, fn):
"""
這會轉換音訊檔案名,如同在磁碟上看到的一樣,因此它可以呈現給創作者。
"""
if channel == "voice":
return fn.replace("v/", "").replace(".ogg", "")
return fn
用於匹配音訊檔案名正則表達式。