互動式編導器(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

用於匹配音訊檔案名正則表達式。