配置項變數 link
配置項變數控制Ren’Py的執行器行為,允許Ren’Py自身使用多種方式的訂製化。配置項囊括了常見變數(比如改變界面尺寸)到罕見變數(添加新類型的歸檔文件)。
Ren’Py執行器會假設,GUI系統已完成初始化,配置項變數不會發生改變。在 init
語句塊(block)之外修改配置項變數會導致未定義的行為。配置項變數不是存檔文件的一部分。
大多數配置項變數可以使用 define
語句設置:
define config.rollback_enabled = False
字典和列表變數可以使用 define
語句或在 init python
語句塊(block)中定義:
define config.preload_fonts += ["OrthodoxHerbertarian.ttf"]
define config.adjust_attributes["eileen"] = eileen_adjust_function
init python hide:
def inter_cbk():
# 這是一個糟糕的回調
renpy.notify("Interacting !")
config.interact_callbacks.append(inter_cbk)
常用配置項 link
- define config.name = "" link
一個字串給定了遊戲名。這個配置項還會用作回溯等日誌檔案名的一部分,與版本號一起使用。
- define config.save_directory = "..." link
用於生成遊戲和保存持久化資訊使用的目錄。具體的遊戲目錄取決於不同的平台:
- Windows
%APPDATA%/RenPy/save_directory
- Mac OS X
~/Library/RenPy/save_directory
- Linux/Other
~/.renpy/save_directory
該項設置為None的話,將在game目錄下創建一個“saves”文件夾。不推薦這樣做,因為這無法防止game目錄被系統的多用戶共享。當某個遊戲以管理員身份安裝,以普通用戶運行時,這種配置也會導致運行問題。
配置該項時,必須使用define語句或者Python語句塊。無論使用哪種,配置項的語句都會在其他任何語句之前運行,所以其應該是一個字串而不能是表達式。
需要打開存檔目錄時,使用
config.savedir
而不是config.save_directory。
- define config.version = "" link
一個字串給定了遊戲版本號。這個配置項還會用作回溯等日誌檔案名的一部分。
轉場 link
這些配置項控制各種場景的轉場效果。
- define config.adv_nvl_transition = None link
在ADV模式文本後直接顯示NVL模式文本使用的轉場效果。
- define config.after_load_transition = None link
loading之後使用的轉場效果。
- define config.end_game_transition = None link
遊戲正常結束後返回到主選單使用的轉場效果,比如調用return卻沒有明確的返回點,或者調用
renpy.full_restart()
。
- define config.end_splash_transition = None link
在splashscreen後顯示主選單時使用的轉場效果。
- define config.enter_replay_transition = None link
若非None,重播(replay)使用的轉場效果。
- define config.enter_transition = None link
若非None,進入遊戲菜單時使用的轉場效果。
- define config.enter_yesno_transition = None link
若非None,進入yes/no提示界面的轉場效果。
- define config.exit_replay_transition = None link
若非None,退出重播(replay)時使用的轉場效果。
- define config.exit_transition = None link
若非None,退出遊戲菜單使用的轉場效果。
- define config.exit_yesno_transition = None link
若非None,退出yes/no提示界面使用的轉場效果。
- define config.game_main_transition = None link
若非None,使用
MainMenu()
行為函數從遊戲菜單離開顯示主選單時使用的轉場效果。
- define config.intra_transition = None link
在遊戲菜單的各界面之間使用的轉場效果。(即使用
ShowMenu()
切換界面。)
- define config.main_game_transition = None link
從主選單進入遊戲菜單,以及點擊“Load Game”或“Preferences”後使用的轉場效果。
- define config.nvl_adv_transition = None link
在NVL模式文本後直接顯示ADV模式文本使用的轉場效果。
- define config.say_attribute_transition = None link
若非None,用image屬性(attribute)的say語句改變圖像時使用的轉場效果。
- define config.say_attribute_transition_callback : Callable link
這裡可以配置一個函數,返回一個應用的轉場和轉場使用的圖層。
該函數有四個入參:圖像標籤(image tag), mode 參數,含有前置轉場標籤的 set ,以及包含後置轉場標籤的 set 。 mode 參數的值為下列之一:
“permanet”,永久修改屬性(attribute),當前say語句開始一直生效。
“temporary”,臨時修改屬性(attribute),僅對當前say語句生效,之後保存修改過的臨時屬性。
“both”,永久和臨時修改屬性(attribute)同時生效。(針對部分屬性需要在當前say語句之後繼續生效,而部分屬性需要恢復的情況。)
“restore”,臨時屬性(attribute)失效,恢復之前的值。。
返回值是一個2元的元組,包含下列內容:
使用的轉場(transition),如果不使用轉場則發揮None。
轉場所在的圖層名,應該是一個字串或者None。大多數情況下都是None。
默認應用返回值為(config.say_attribute_transition, config.say_attribute_transition_layer)。
- define config.say_attribute_transition_layer = None link
若非None,這必須是給定圖層(layer)名的字串。(大多數情況都是“master”。)say屬性(attribute)會應用於命名的那個圖層,且Ren’Py不會暫停等待轉場效果發生。在對話顯示時,這也會對屬性(attribute)中的轉場生效。
- define config.window_hide_transition = None link
沒有顯示指定轉場效果時,window hide語句使用的轉場效果。
- define config.window_show_transition = None link
沒有顯示指定轉場效果時,window show語句使用的轉場效果。
See also
環境設定預設值 link
Ren’Py有一些變數設置了環境設定的預設值。請查看 環境設定變數 部分的內容。
偶爾用到的配置項 link
- define config.adjust_attributes = { } link
若非None,該項是一個字典型數據。 當某個包含圖像屬性(image attribute)的語句或函數執行或預載入時,會將圖像標籤(tag)作為鍵值在字典內搜索。 如果沒有搜索到,則使用鍵值None再次搜索。
如果搜索到了字典內的值,該值需要是某個函數。 此函數的入參是一個由圖像名稱、圖像標籤(tag)和屬性(attribute)組成的元組。 函數返回值是另一個元組,由一組新的圖像屬性組成的元組。
該函數可能會在預載入階段被調用,所以其不應該依賴於圖片的狀態。
- define config.after_default_callbacks = [ ... ] link
一個函數列表。當 dafault 語句執行時會無參調用列表中的函數。 default語句除了初始化階段執行之外,還會在遊戲啟動之前、載入存檔時、回滾之後、lint檢查前和少數其他時機。
與default語句類似,這些回調函數也是一個添加遊戲必要數據的好地方。
- define config.after_load_callbacks = [ ... ] link
讀檔時,(無入參)調用的回調函數列表。
若回調函數會修改數據(例如,從舊版遷移數據到新版),應該調用
renpy.block_rollback()
函數,以防止用戶回滾導致修改回退。
- define config.after_replay_callback = None link
若非None,該項是重播(replay)結束後,不使用入參那調用的函數。
- define config.always_shown_screens = [ ] link
Ren’Py中始終強制顯示的界面列表。該列表中的界面在UI隱藏時或打開菜單時,依然會顯示。 列表中的某個界面就算嘗試隱藏或不顯示,依然會被強制顯示。 一般只被Ren’Py內部使用,也可以根據需求修改該列表。
通常直接設置
config.overlay_screens
更合適。
- define config.audio_filename_callback = None link
若非None,該函數調用時需要傳入一個音訊檔案名,並返回另一個音訊檔案名,並實際播放後者。
在音訊檔案格式需要改變,但又不想改遊戲腳本時,可以使用該配置項。
- define config.audio_filename_callback = None link
若非None,該項是一個函數。入參是一個音訊檔案名,可能會返回另一個音訊檔案名,用作稍後連續播放。
該項可用在音訊檔案格式發生改變的場景,但最好不要用於更改遊戲腳本。
- define config.auto_channels = { "audio" : ( "sfx", "", "" ), ... } link
該項用於定義自動音訊通道。它將通道名映射為一個3元的元組:
混合器使用的通道名。
通道上播放文件的前綴。
通道上播放文件的後綴。
- define config.auto_movie_channel = True link
若為True,play 入參傳入
Movie()
。每個影片都會自動生成對應的音訊通道名。config.single_movie_channel
的優先度高於該配置項。
- define config.auto_load = None link
若非None,該項表示Ren’Py啟動時自動載入的一個存檔檔案名。該項是提供給針對開發者用戶,而不是終端用戶用的。將該項設置為1的話,就會自動讀取槽位1的存檔。
- define config.auto_voice = None link
該項可以是一個字串、一個函數或者空值(None)。若為None,自動語音功能就被禁用。
若是一個字串,字串格式帶有與表示對話當前行標識綁定的變數
id
。如果該項給出了一個存在的文件,那個文件就被作為語音播放。若是一個函數,該函數會帶一個入參被調用,即對話當前行標識號。該函數應該返回一個字串,這個字串給出的文件存在的情況下,文件就會作為語音播放。
更多細節詳見 自動語音 。
- define config.autosave_callback = None link
後台自動存檔時,將調用的回調函數或行為函數列表。儘管可以在列表中添加行為函數,但如果返回其他行為函數則不會執行。
若非行為類回調函數會顯示一個可視組件或界面,需要調用
renpy.restart_interaction()
。- ::
define config.autosave_callback = Notify(“Autosaved.”)
- define config.autosave_prefix_callback = None link
若不是None,該項是一個無參調用的函數,會返回自動存檔檔案名的前綴。 默認前綴為“auto-”,對應的存檔檔案名分別為“auto-1”、“auto-2”等。
- define config.autosave_slots = 10 link
自動存檔使用的槽位編號。
- define config.cache_surfaces = False link
若為True,圖像的底層數據儲存在RAM中,允許圖像操作器(manipulator)使用時不需要從磁碟載入。若為False,數據會從快取中刪除,但會在視訊記憶體中存為一份紋理(texture),降低RAM使用。
- define config.character_id_prefixes = [ ... ] link
該項指定了一個可以用於
Character()
對象的樣式特性(property)前綴列表。當某個樣式前綴與列表中的前綴匹配,帶有那個前綴的可視組件就會應用對應的樣式。例如,給默認GUI添加“namebox”前綴。當某個角色給定了namebox_background特性時,它會將帶有id“namebox”的可視組件設置為say界面的
background
。
- define config.conditionswitch_predict_all = False link
針對
ConditionSwitch()
和ShowingSwitch()
的predict_all入參預設值,決定是否所有可用的可視組件都顯示。
- define config.context_callback = None link
當Ren’Py進入一個新上下文(context)時(比如某個菜單上下文),調用的回調函數。
- define config.context_copy_remove_screens = [ 'notify', ... ] link
該項是一個界面列表。當回滾或保存時導致上下文(context)複製時,將移除列表中的所有界面。
- define config.context_fadein_music = 0 link
環境發生變化時,Ren’Py播放音樂淡入的時間值,單位為秒。(通常是指遊戲載入的情況)
- define config.context_fadeout_music = 0 link
環境發生變化時,Ren’Py播放音樂淡出的時間值,單位為秒。(通常是指遊戲載入的情況)
- define config.debug = False link
啟用除錯功能(大多數時候將文件遺失問題轉成錯誤資訊)。在發布版本中,該項應該是關閉的。
- define config.debug_prediction = False link
若為True,Ren’Py會將預載入(執行流程、圖像、界面)時發生的錯誤記錄到日誌log.txt和控制台中。
- define config.debug_sound = False link
啟用聲音除錯功能。該項禁用了聲音生成過程中的錯誤抑制機制。不過,如果音效卡遺失或者故障,這樣的錯誤是正常的,啟用這個除錯項可能會導致Ren’Py的正常功能無法工作。在發布版本中,該項應該是關閉的。
- define config.debug_text_overflow = False link
當該項為True時,Ren’Py會把文本溢出記錄到text_overflow.txt文件中。文本組件渲染一個比其自身更大尺寸的區域時,會產生一個文本溢出。該項設置為True,並把樣式特性中的
xmaximum
和ymaximum
設置為對話窗口尺寸,就能在對話長度相對窗口過大時生成溢出報告。
- define config.default_attribute_callbacks = { } link
當某個含有圖像屬性(attribute)的語句或函數執行、預載入時,如果發現該屬性的圖像當前並沒有顯示,則從該配置項字典尋找對應圖像。如果沒有找到,則使用None作為鍵再次搜索。
如果還是沒找到,則需要執行某個函數。此函數會指定一個圖像名稱,一個包含必要圖像標籤和屬性的元組。 次函數會返回一個可疊代數據,包含圖像初次顯示時應用的額外屬性。
函數的執行結果被認為是附加的,任何顯式的衝突和反向的屬性都會優先於函數執行結果。
由於此函數可能在預載入時調用,所以函數必須能在任意狀態都響應。
- define config.default_tag_layer = "master" link
圖像顯示的默認圖層(layer),前提是圖像標籤(tag)在
config.tag_layer
不存在。
- define config.default_transform = ... link
使用show或scene語句顯示某個可視組件時,從此項配置的transform獲取並初始化可視組件transform特性(property)的值。
預設的default_transform是
center
,居中。
- define config.defer_styles = False link
當該項為True時,style語句的執行會推遲到所有
translate python
語句塊(block)執行後。這允許多語言支持python語句塊更新某些變數。這些變數會用於多語言支持樣式之外的style語句中。該項預設值是False,
gui.init()
被調用時會將該項設置為True。
- define config.developer = "auto" link
若設置為True,啟用開發者模式。開發者模式下能使用shift+D進入開發者菜單,使用shift+R重新載入腳本,以及各種不支持終端用戶的功能特性。
該項可以是True、False或“auto”。若設置為“auto”,Ren’Py會檢查整個遊戲是否已經構建打包,並設置合適的config.developer值。
- define config.disable_input = False link
該項為True時,
renpy.input()
函數立即終止,並返回其 default 參數。
- define config.emphasize_audio_channels = [ 'voice' ] link
給出音訊通道名的字串列表。
如果啟用了“emphasize audio”環境設定,當列表內某個音訊通道開始播放一個聲音時,所有不在列表內的通道都將在
config.emphasize_audio_volume
定義的時間(單位為秒)內將自身的音量中值降低到config.emphasize_audio_time
的值。當沒有列表內的通道播放聲音時,所有不在列表內的通道將在
config.emphasize_audio_time
定義的時間(單位為秒)內將自身的音量中值提高到1.0。例如,將該項設置為
[ 'voice' ]
的話,播放語音時所有非語音通道的音量都會被降低。
- define config.emphasize_audio_time = 0.5 link
見上面的說明。
- define config.emphasize_audio_volume = 0.5 link
見上面的說明。
- define config.empty_window : Callable link
當_window項為True且界面上不顯示任何窗口時,該項會被無參調用。(那表示,
renpy.shown_window()
函數沒有被調用。)通常用於在界面上顯示一個空的窗口,返回後不會觸發互動行為。該項的預設用法是,敘述者角色顯示一個空白行不使用互動行為。
- define config.enable_language_autodetect = False link
若為True,Ren’Py會嘗試根據玩家系統的地區資訊自動決定使用的語言。若自動檢測並設置成功,這種語言後續將作為預設的語言。
- define config.enter_sound = None link
若非None,這是進入遊戲菜單播放的音效文件。
- define config.exit_sound = None link
若非None,這是離開遊戲菜單播放的音效文件。
- define config.file_slotname_callback = None link
若非None,該項是一個回調函數,會被 文件行為函數 使用,將某個存檔頁和對應的名稱轉換為存檔槽的名稱, 並傳給 存檔函數。
- page
該項是一個字串,對應當前存檔頁的名稱。該字串通常包含一個數字,但也可能會包含特殊字串比如“quick”或“auto”。
- name
該項是一個字串,包含當前存檔頁上某個存檔槽的名稱。 該項也可以包含正則表達式(比如 r’d+’),所有匹配正則表達式的結果都將包含在返回結果中。
默認行為等效於:
def file_slotname_callback(page, name): return page + "-" + name config.file_slotname_callback = file_slotname_callback
該配置項的用途之一是,給存檔檔案名加前綴。
相關資訊查看
config.autosave_prefix_callback
。
- define config.fix_rollback_without_choice = False link
該項決定了回退時,內建菜單和imagemap的構建方式。該項預設值是False,表示只有之前選擇的菜單選項是可以點擊的。 若設置為真(False),之前的選擇會被標記,但所有選項都不是可點擊的。用戶可以使用點擊在回退快取中處理隨意向前。
- define config.font_hinting = { None : "auto" } link
該項是一個字典,指定了hinting模式下
hinting
樣式特性各種情況使用的字體檔案名。 當hinting
為True時,Ren’Py會在字典中搜索並啟用對應字體。如果字典內沒有匹配的鍵(key),則啟用鍵為None對應的值。
- define config.font_name_map = { } link
該項是一個字典,表示字體與字體檔案路徑/字體組的映射關係。 字體名稱簡化為
{font}
標籤,並指定標籤內文字對應的 字體組 功能特性。
- define config.font_replacement_map = { } link
該項是一個從(font, bold, italics)到(font, bold, italics)映射,用來使用指定的粗體或斜體替換默認字體。 例如,如果想要
Vera.ttf
版本的斜體使用VeraIt.ttf
代替,可以這樣寫:init python: config.font_replacement_map["Vera.ttf", False, True] = ("VeraIt.ttf", False, False).
請注意,這種映射只能用於字體的特定變化。也就是說,請求“Vera”字體的粗體兼斜體版本,會得到一個粗體兼斜體版本的“Vera”字體,而不是斜體“Vera”的粗體版本。
若非None,該項是在遊戲菜單時播放的音樂文件。
- define config.gl_clear_color = "#000" link
在有意義的圖像繪製前,用於清理窗口使用的顏色。當遊戲在窗口或顯示器全螢幕模式下的顯示器高寬比與遊戲定義的高寬比不匹配時,letterbox或pillarbox的邊框就是用的這種顏色。
- define config.gl_lod_bias = -0.5 link
uniform變數 u_lod_bias 的預設值,控制Ren’Py使用的mipmap。
- define config.gl_test_image = "black" link
運行OpenGL性能測試時使用的圖片名稱。這個圖片會在啟動時顯示5幀或者0.25秒,然後自動隱藏。
- define config.has_autosave = True link
若為True,遊戲會啟動自動保存。若為False,禁用自動保存。
- define config.history_callbacks = [ ... ] link
該項包含一個回調(callback)函數列表,其中的回調函數會在Ren’Py在_history_list中添加新對象之前被調用。調用回調函數時,新增的HistoryEntry對象會作為第一個入參,還可以在那個對象中添加新的欄位(field)。
Ren’Py使用內建的歷史回調函數,所以創作者應該將自己的回調函數添加到這個列表中,而不是替換整個列表。
- define config.history_length = None link
Ren’Py保存的對話歷史層的數量。該項被默認GUI設置為250。
- define config.hw_video = False link
若為True,在移動平台播放影片啟用硬體解碼。硬體解碼影片更快,但受到某些格式和全螢幕播放的限制。若為False,使用軟解解碼播放,但效率堪憂。
- define config.hyperlink_handlers = { ... } link
一個字典,建立超連結協議與協議處理器(handler)之間的映射關係。處理器(handler)是一個函數,使用超連結做為值(在英文冒號之後的內容),並執行一些行為。如果有返回值,互動行為就停止。否則,點擊操作會被忽略,互動行動繼續。
- define config.image_cache_size = None link
如果非None,該項用於設置 圖像快取 的大小,是界面尺寸的整倍數,單位為像素。
如果設置過大,是浪費記憶體的行為。如果設置過小,圖像從磁碟直接載入,會降低性能。
- define config.image_cache_size_mb = 300 link
該項用於設置 圖像快取 的大小,單位是MB。如果
config.cache_surfaces
的值是False,每個圖像的一個像素占用4 byte的儲存空間;否則,每個圖像的一個像素占用8 byte的儲存空間.如果設置過大,是浪費記憶體的行為。如果設置過小,圖像從磁碟直接載入,會降低性能。只要
config.image_cache_size
的配置不是空值(None),就不使用config.image_cache_size_mb。
- define config.input_caret_blink = 1.0 link
若非False,將設置默認游標的閃爍間隔時間,單位為秒。
- define config.layer_transforms = { } link
一個字典,用於表示圖層名稱與對應的變換列表。 所有變換會在最後應用於圖層,生效時間在
show layer
和camera
變化之後。若圖層名為None,變換會應用於所在定義在
config.layers
中的圖層,生效時間晚於各種轉場(transition)。
- define config.lint_character_statistics = True link
若為True,並且
config.developer
也為True時,lint的分析報告會包含對話段落中每個角色的統計數據。 遊戲打包後,角色統計數據將禁用,以防止對遊戲運行產生干擾。
- define config.load_failed_label = None link
如果配置為一個字串,表示一個腳本標籤(label)。腳本修改過多導致Ren’Py無法恢復產生讀檔失敗的情況下,將跳轉到該腳本標籤。 在執行讀檔前,Ren’Py將主控流程切換為最後執行語句開頭,並清空調用棧。
也可以配置為一個函數。該函數沒有入參,返回值需要是一個腳本標籤(label)。
- define config.locale_to_language_function = ... link
該函數基於用戶所在地區(locale)決定遊戲使用的語言。
函數有兩個入參,分別為地區(locale)的ISO編碼和行政區(region)的ISO編碼。
返回值是一個字串,對應支持的語言名稱,或者返回None表示使用預設語言。
若非None,就是一個在主選單播放的音樂文件。
config.main_menu_music
中用於淡入的時間,單位為秒。
- define config.max_texture_size = (4096, 4096) link
Ren’Py能載入的最大單一紋理(texture)尺寸。該項僅用於3D模型。 2D圖片在有需要時會切分為多個紋理。
Live2d will adjust this to fit the largest live2d texture.
若該項不是None,應是一個函數,可能有固定位置入參和關鍵字入參。當menu語句運行時,就調用該項配置的函數。入參就是menu語句。
返回值有兩個,一個是包含固定入參的元組(大多數情況下是空的),以及關鍵字入參的字典型數據。
圖層名(以字串形式)列表,列表中的圖層在進入遊戲菜單時會清空。
設置了這個配置項後,可以使用if語句將某個分支選項(choice)禁用,效果類似禁用某個按鈕(button)。
進入主選單或遊戲菜單時,
_window_subtitle
(窗口標題)變數。
- define config.minimum_presplash_time = 0.0 link
設置了一個時間值,單位為秒。表示presplash、安卓presplash或iOS的啟動畫面最短顯示的時間。如果Ren’Py在這段時間內完成初始化,它將會休眠,確保圖像至少顯示配置的時間。如果Ren’Py啟動耗時較長,啟動畫面也可以顯示更久。
- define config.missing_background = "black" link
當
config.developer
為True且某個之前 scene語句 使用了未定義的圖像時,該項就會作為背景使用。該項的值應該是一個圖像名(字串),而不是可視組件。
- define config.mode_callbacks = [ ... ] link
進入某個模式(mode)時調用的回調函數列表。詳見 模式 章節的內容。
其預設值由
config.adv_nvl_transition
和config.nvl_adv_transition
共同構成。
- define config.mouse = None link
這個配置項控制用於定義的滑鼠指針。若為空,使用系統滑鼠,也就是一個黑白色的游標指針。
否則,該項應該是一個給定多種滑鼠類型動畫的字典。默認庫中使用的鍵(key)包括“default”、“say”、“with”、“menu”、“prompt”、“imagemap”、“pause”、“mainmenu”和“gamemenu”。鍵“default”必須存在,它會在其他特定鍵不存在的情況下使用。
字典中的每個鍵對應的值都是一個(image, xoffset, yoffset)形式元組的列表,按幀排序。
- image
滑鼠指針圖像。圖像的最大尺寸取決於用戶的硬體配置。32×32的圖像可以用在任何地方,64×64在大多數硬體上可以運行。更大的圖像可能就無法工作了。
- xoffset
從指針左端開始算的熱點(hotspot)偏移量,單位是像素。
- yoffset
從指針頂端開始算的熱點(hotspot)偏移量,單位是像素。
序列幀以20Hz的頻率循環播放。
- define config.mouse_displayable = None link
若非None,該項可以是一個可視組件或者可以返回一個可視組件的可調用對象。 如果可調用對象可以返回None,Ren’Py會預處理這種情況。
如果該項的值指定為可視組件,滑鼠游標將被隱藏,指定的可視組件會顯示在其他所有畫面元素之上。 指定的可視組件可以相應所以滑鼠游標位置和繪製的事件消息,與
MouseDisplayable()
等組件類似。
若為True,菜單內的敘述會使用旁白(narrator)角色。否則,敘述會顯示為菜單標題。
- define config.nearest_neighbor = False link
預設使用近鄰過濾,支持像素化和柔化。
- define config.notify = ... link
renpy.notify()
和Notify()
函數會調用該配置項,入參為 message ,效果為顯示通知消息。 默認配置為renpy.display_notify()
。 該配置還可以讓創作者攔截通知。
- define config.optimize_texture_bounds = True link
當該項為True,Ren’Py會掃描圖像並找到所有不透明像素的綁定框(box),並載入這些像素轉為一張紋理(texture)。
- define config.overlay_functions = [ ] link
一個函數列表。當被調用時,每個函數都會用ui函數在overlay圖層上添加可視組件。
- define config.overlay_screens = [ ... ] link
當覆蓋(overlay)啟用時,顯示的界面列表;當覆蓋(overlay)被阻止時,隱藏界面列表。(界面在screen圖層上顯示,而不是overlay圖層。)
- define config.pause_after_rollback = False link
若為False,即預設值,回滾將跳過所有暫停,只在某些對話和菜單選項才會停止。 若為True,Ren’Py在回滾時,所有用戶可能遇到的沒有設置時間的暫停都會停止。
- define config.physical_height = None link
若設置後,該項表示Ren’Py遊戲窗口的默認高度,單位為像素。 若沒有設置,窗口的默認高度為
config.screen_height
。
- define config.physical_width = None link
若設置後,該項表示Ren’Py遊戲窗口的默認寬度,單位為像素。 若沒有設置,窗口的默認寬度為
config.screen_width
。
- define config.preload_fonts = [ ] link
Ren’Py啟動時載入的TrueType和OpenType字體名列表。添加在這個列表中的字體名稱可以防止引入新字體Ren’Py出現暫停。
- define config.preserve_volume_when_muted = False link
若為False,即預設值,當音訊通道處於靜音狀態時,對應通道的音量值為0,並不能改變。 否則,音訊通道在靜音狀態下可以調整音量值。
- define config.python_callbacks = [ ] link
一個函數列表。列表中的函數會在初始化階段之外的任何時候被調用,不使用任何入參。
這種函數的可能用途之一,是某個變數每次調整後,都需要使用一個函數將其值限制在某個範圍內的情況。
當Ren’Py啟動時遊戲未啟動前,這些函數就可以被調用,而且可能這些函數相關的變數還未進行初始化。這些函數被要求處理這種情況,透過使用
hasattr(store, 'varname')
檢查某個變數是否定義過。
- define config.quicksave_slots = 10 link
快速存檔使用的槽位編號。
- define config.quit_action = ... link
當用戶點擊程序窗口的退出按鈕時調用的行為。預設的行為會提示用戶確認是否真的想要退出。
- define config.reload_modules = [ ] link
一個字串列表,表示遊戲中會重新載入的所有Python模組名。這些模組的子模組也會重新載入。
- define config.replace_text = None link
若非None,這是一個使用一個入參的函數,函數向用戶展示一段文本。該函數可以將傳入的文本原樣返回,也可以返回某些數據被替換後的文本。
只有文本替代執行後且文本已經使用標籤(tag)分割,這個函數才會被調用,所以入參就是實際文本。所有可視文本都可以傳入這個函數:不限於對話文本,還包括用戶介面文本。
這個函數可以用來把特定的ASCII編碼序列替換為Unicode字元,樣例如下:
def replace_text(s): s = s.replace("'", u'\u2019') # apostrophe s = s.replace('--', u'\u2014') # em dash s = s.replace('...', u'\u2026') # ellipsis return s config.replace_text = replace_text
See also
- define config.replay_scope = { "_game_menu_screen" : "preferences" } link
一個字典,在重播時將默認儲存區的變數映射到指定的變數。
- define config.return_not_found_label = None link
若非None,在主控流程返回時無法找到合適腳本標籤位置時,則使用該項指定的腳本標籤。 這次標籤跳躍前,調用棧將被清空。
- define config.save_json_callbacks = [ ] link
用於創建json對象的一個回調函數列表,創建的json對象可以通過
FileJson()
和renpy.slot_json()
接入並執行儲存和標記操作。每個回調函數都是用某個保存過的Python字典調用。回調函數修改字典內容時,應使用適配json的Python數據類型,比如數值、字串、列表和字典。在字典結尾的回調函數會作為存檔槽位的一部分保存。
字典中的鍵值可能開始是一個下劃線符號(_)。這些鍵是Ren’Py使用的,並且不應該修改。
例如:
init python: def jsoncallback(d): d["playername"] = player_name config.save_json_callbacks.append(jsoncallback)
FileJson(slot)
和renpy.slot_json(slot)
會在遊戲存檔時,將d
的狀態覆蓋。 遊戲存檔時,變數player_name
的值依然可以通過FileJson(slot, "playername")
訪問。
- define config.say_arguments_callback = None link
若非None,這個函數使用當前發言角色作為第一個參數,參數列表後面是其他固定位置參數和關鍵字參數。任何時候使用say語句都會調用該函數。調用時通常包含一個interact入參,還可以使用其他在say語句中提供的參數。
該函數會返回一對結果,包含一個固定位置入參的元組(大多數情況下是空的),以及一個關鍵字入參的字典(大多數情況只包含interact)。
舉例:
def say_arguments_callback(who, interact=True, color="#fff"): return (), { "interact" : interact, "what_color" : color } config.say_arguments_callback = say_arguments_callback
- define config.scene_callbacks = [ ] link
一個回調函數列表。當運行scene語句或調用
renpy.scene()
函數時,將調用該配置項的函數列表。 調用時使用一個入參,即調用scene語句作用的圖層名稱。 當對應圖層清空後,在scene語句中指定的圖像添加前,設置的函數列表將被調用。Ren’Py處於自身的原因可能也會調用 renpy.scene。所以建議在運行這些回調函數前檢查圖層名。
- define config.screen_height = 600 link
遊戲窗口的虛擬高度,單位為像素。 如果沒有設置
config.physical_height
的值,默認與遊戲窗口尺寸相同。 通常會該項設置為比gui.init()
更大的數值。
- define config.screen_width = 800 link
遊戲窗口的虛擬寬度,單位為像素。 如果沒有設置
config.physical_height
的值,默認與遊戲窗口尺寸相同。 通常會該項設置為比gui.init()
更大的數值。
- define config.single_movie_channel = None link
若非None,當play語句後面使用了
Movie()
,該配置項決定了影片播放使用的通道。 該項不能設置為“movie”,因為“movie”是Ren’Py預留的關鍵字。
- define config.skip_sounds = False link
若非False,Ren’Py處於跳過(skipping)狀態時將不會播放非循環播放的音訊。
- define config.speaking_attribute = None link
若非None,該項是一個字串,給出了圖像屬性(attribute)名。圖像屬性(attribute)會在角色發言時添加到圖像上,在角色停止發言時移除。
- define config.tag_layer = { } link
一個字典,將圖像標籤(tag)字串映射為圖層(layer)名稱字串。當某個圖像顯示時沒有指定圖層,就可以根據圖像標籤在這個字典中找對應的圖層。如果圖像標籤沒有在字典中找到,就使用
config.default_tag_name
配置的值。
- define config.tag_transform = { } link
一個欄位,將圖像標籤(tag)字串映射為transform或者transform的列表。當某個不帶at分句的新顯示圖像出現時,就會根據圖像標籤在這個字典中找對應的transform或transform列表並應用。
- define config.tag_zorder = { } link
一個字典,將圖像標籤(tag)字串映射為zorder值。當某個不帶zorder分句的新鮮事圖像出現時,就會根據圖像標籤在這個字典中找對應的zorder值並應用。如果沒有找到zorder值,就使用0。
- define config.thumbnail_height = 216 link
遊戲存檔使用的縮圖高度。讀檔時,這些縮圖也會顯示。請注意,縮圖的會以其生成的尺寸顯示,而不是縮圖向用戶顯示時設置的值。
默認GUI可以改變該項值。
- define config.thumbnail_width = 384 link
遊戲存檔使用的縮圖寬度。讀檔時,這些縮圖也會顯示。請注意,縮圖的會以其生成的尺寸顯示,而不是縮圖向用戶顯示時設置的值。
默認GUI可以改變該項值。
- define config.tts_voice = None link
若非None,這是一個字串,表示自動語音模式下播放tts語音時使用的非默認聲音。可用的選項跟運行的平台有關聯,並且需要設置成特定平台對應特定語音的形式。(在多語言支持的情況下最好也修改該項。)
- define config.webaudio_required_types = [ "audio/ogg", "audio/mp3" ] link
運行在Web平台時,Ren’Py將會檢查瀏覽器是否支持播放音訊檔案的媒體類型。如果支持則直接播放音訊檔案,如果不支持則使用可能會有聲音跳躍問題的asm解碼器。
默認情況下,Chrome和火狐瀏覽器使用通用Web音訊系統,而Safari使用wasm。 如果遊戲中只使用mp3音訊檔案,可以這樣設置:
define config.webaudio_required_types = [ "audio/mp3" ]
在Safari上使用更快的Web音訊系統也類似。
- define config.window_auto_hide = [ "scene", "call screen", "menu", "say-centered", "say-bubble" ] link
一個語句名稱列表,列表內的語句會讓
window auto
隱藏空的對話窗口。
- define config.window_auto_show = [ 'say', 'menu-with-caption' ] link
一個語句名稱列表,列表內的語句會讓
window auto
顯示空的對話窗口。
- define config.window_icon = None link
若非None,該項應該是一個圖片的檔案名。這個圖片用作主窗口的圖示。該項不會用作windows平台的執行程序和mac電腦的app縮圖,那些使用 特殊文件。
- define config.window_overlay_functions = [] link
一個覆蓋(overlay)函數列表,僅當窗口顯示時會被調用。
- define config.window_title = None link
包含Ren’Py遊戲的窗口標題的靜態部分。後面加上
_window_subtitle
就是窗口的完整標題名。若為None,也就是默認情況,預設值取
config.name
。
極少使用或內部使用 link
- define config.adjust_view_size = None link
若非None,該項應該是一個函數,使用兩個入參:物理窗口的寬度和高度。它會返回一個元組,給出OpenGL視點(viewport)的寬度和高度,也就是Ren’Py會繪製圖片的一塊螢幕區域。
該項配置用於配置Ren’Py只允許使用某些尺寸的螢幕。例如,下列配置值允許使用原始螢幕的整數倍大小(保持寬高比):
init python: def force_integer_multiplier(width, height): multiplier = min(width / config.screen_width, height / config.screen_height) multiplier = max(int(multiplier), 1) return (multiplier * config.screen_width, multiplier * config.screen_height) config.adjust_view_size = force_integer_multiplier
- define config.afm_bonus = 25 link
自動前進模式生效的情況下,計算對話字串長度時,額外添加的字元數量。
- define config.afm_callback = None link
若非None,這是一個Python函數,用於判斷啟用自動前進是否安全。該項的意義在於,語音系統中播放某個語音途中禁用自動前進功能。
- define config.afm_characters = 250 link
自動前進模式下,播放各段對話間存在一個間隔時間。該配置項設置的值表示該長度的字串與這個間隔時間等效。
- define config.afm_voice_delay = .5 link
語音文件播放完成後,在AFM能進入下一段文本之前,等待的時間值,單位為秒。
- define config.all_character_callbacks = [ ] link
可以透過所有角色調用的回調函數列表。這個列表會前向添加到指定角色回調函數列表。 Ren’Py會把自身用到的回調函數添加到該列表中。
- define config.allow_screensaver = True link
若為True,遊戲運行時可以啟用截圖工具。若為False,禁用截圖工具。
- define config.archives = [ ] link
用於搜尋圖片和其他數據的歸檔文件列表。所有歸檔文件的入口應該是包含歸檔文件基本名的字串,不包含.rpa副檔名。
歸檔文件的搜尋按照列表中的順序進行。第一個搜尋到的歸檔文件會被使用。
在啟動階段,Ren’Py會檢索game目錄內的所有歸檔文件,按照ascii碼排序,自動插入到這個列表中。例如,如果Ren’Py找到了文件
data.rpa
、patch01.rpa
和patch02.rpa
,最終生成的列表為['patch02', 'patch01', 'data']
。
- define config.at_exit_callbacks = [ ] link
一個回調函數列表,當Ren’Py退出或重啟遊戲時將調用。 這些回調函數不應該有用戶交互。
- define config.auto_choice_delay = None link
若非None,這個變數給定了一個時間值(單位為秒),這個時間值內Ren’Py會暫停,之後會在遊戲內選項中隨機選擇一個。我們希望這個配置項在發布版本中始終設置為None,不過沒有什麼人工做互動的情況下可以用來自動示範。
- define config.autoreload = True link
若為True,使用shift+R組合鍵可以自動重新載入腳本。並且,當自動重載入功能啟用後,Ren’Py一旦發現使用的文件發生修改就會自動重載入。
若為False,Ren’Py值在每次按下shift+R時才會重新載入腳本。
- define config.autosave_frequency = 200 link
表示經過多少次互動行為後會發生自動存檔。如果要禁用自動存檔,將
config.has_autosave
設置為False,不需要修改該項的值。
- define config.autosave_on_choice = True link
若為True,Ren’Py會在每次遊戲內選項後自動存檔。(當
renpy.choice_for_skipping()
被調用時。)
- define config.autosave_on_quit = True link
若為True,Ren’Py會在用戶做出以下操作時嘗試自動存檔:退出、返回主選單、遊戲中讀取其他存檔。(存檔時,當用戶被提示確認就會執行自動存檔。)
- define config.autosave_on_input = True link
若為True,Ren’Py在用戶輸入文本時自動保存(調用
renpy.input()
時)。
- define config.call_screen_roll_forward = False link
當界面的 roll_forward 特性值為None時,則使用該配置項的值。
- define config.character_callback = None link
Character對象回調參數的預設值。
- define config.choice_empty_window = None link
若非None,並且(通常使用
menu
語句調用的)選項菜單沒有標題,就調用此處定義的函數生成標題,入參為(“”, interact=False)。使用方法為:
define config.choice_empty_window = extend
這樣就可以讓選項菜單的標題顯示為之前對話內容的最後一句。
還有其他實現方式,前提是對話窗口總是顯示。
- define config.choice_layer = "screens" link
選擇界面(使用menu語句)顯示的圖層(layer)名。
- define config.clear_layers = [] link
一個圖層(layer)名的列表,當進入主選單和遊戲菜單時,就會清除列表上所有圖層的圖像。
- define config.console = False link
該項會在
config.developer
不是True的情況下依然能啟用控制台。
- define config.context_clear_layers = [ 'screens', 'top', 'bottom', ... ] link
一個圖層(layer)名的列表,當進入一個新的上下文(context)時,會清除列表上所有圖層的圖像。
- define config.controller_blocklist = [ ... ] link
一個字串列表,每個字串都會嘗試匹配對應遊戲控制器的GUID。 當字串匹配到控制器GUID(可以在
log.txt
中看到對應日誌)或其前綴,將在初始化階段就禁用對應控制器。
- define config.exception_handler = None link
如果不是None,該項應該是一個函數,並帶有3個入參:
一個字串,表示記錄traceback的縮略文本,僅包含創作者編寫的文件。
traceback完整文本,同事包含傳作者編寫和Ren’Py的文件。
包含traceback方法的文件路徑。
該函數用於控制是否向用戶展現程序錯誤。若函數返回True,忽略異常(exception)並將主控流程切換到下一個語句。 若函數返回False,啟用內建的異常處理機制。 該函數也可以調用
renpy.jump()
將主控流程切換至其他文本標籤(label)。
- define config.display_start_callbacks = [ ] link
該項包含一個函數列表,在Ren’Py顯示某個窗口後渲染窗口第一幀之前調用。 該項的主要用途是,允許某些需要初始化GUI的庫,比如OpenGL函數,讀取資源文件。
- define config.ex_rollback_classes = [ ] link
該項為一個對象列表,可以使之前的版本中回滾會告警的類,不再產生告警資訊。 如果創作者不想要某個類對回滾操作的支持,就把類的對象放在該列表中。
有時候,並不需要如實一一添加,而只要把自訂類的基類
object
添加到列表中。
- define config.fadeout_audio = 0.016 link
預設的音訊淡出時間。 使用
stop
語句和renpy.music.stop()
函數停止某個音訊, 或者使用play
語句和renpy.music.play()
函數開始一段新的音軌都會用到淡出效果。 不過音訊隊列不會使用淡出效果來銜接。這個暫短的淡出可以用來掩蓋音訊停止和切換時的點擊聲和爆音。
- define config.fast_skipping = False link
該項設置為True的話,允許在開發者模式之外也使用快速跳過。
- define config.file_open_callback = None link
若非None,該項是一個函數,當某個文件需要被打開是會調用該函數。函數會返回一個類似文件的對象,或者使用Ren’Py的文件載入機制時返回None。類似文件的對象必須能用使用read、seed、tell和close方法。
對應的,還需要定義
config.loadable_callback
。
- define config.focus_crossrange_penalty = 1024 link
當用鍵盤移動焦點時,這是應用於垂直於所選運動方向的移動的懲罰量。
- define config.gamedir = ... link
遊戲中
game/
目錄的完整路徑。該項是一個只讀變數。 但不能保證所有文件都保存在該盧姆,尤其是在安卓之類的平台上。
- define config.gl_resize = True link
決定是否允許用戶調整OpenGL繪製窗口的大小。
- define config.hard_rollback_limit = 100 link
Ren’Py允許用會回滾的最大步數。該項設置為0則完全不允許回滾。我們不推薦這樣做,因為回滾是用戶錯誤使用跳過功能後,回看之前文本的有效途徑。
- define config.imagemap_auto_function : Callable link
將界面語言中 imagebutton 或 imagemap auto 特性(property)擴展為可視組件。這個函數使用auto特性(property)值和使用的圖像,以及下列狀態之一:“insensitive”、“idle”、“hover”、“selected_idle”、“selected_hover”、“ground”。函數返回一個可視組件對象或None。
預設的使用方法是使用圖像格式化 auto 特性,並檢查得到的檔案名是否存在。
- define config.keep_side_render_order = True link
若為True,Side位置的子串順序將決定子組件的渲染順序。
- define config.implicit_with_none = True link
若為True,也就是預設值,等效於每次通過對話、菜單輸入和imagemap等互動行為之後都使用了 with None 語句。該項用於確保在轉場之後舊的界面不再顯示。
- define config.interact_callbacks = [ ... ] link
一個(不帶入參的)回調函數列表,當互動行為開始或重新開始時調用列表中的函數。
- define config.keep_running_transform = True link
若為True,上一個圖像使用的transform或ATL語句塊(block)會沿用,前提是新圖像使用相同的圖像標籤(tag)。若為False,transform會被停用。
- define config.label_callbacks = [] link
這是到達某個腳本標籤(label)後會調用的函數列表。調用時使用兩個參數。第一個參數是腳本標籤(label)名。第二個參數在通過jump、call或創建新上下文(context)的情況下為True,其他情況下為False。
- define config.label_overrides = { } link
該項配置給出了在Ren’Py腳本中jump和call腳本標籤(label)時,重定向到其他腳本標籤(label)的方法。例如,如果你需要添加一個“start”到“mystart”的映射關係,所有jump和call到“start”標籤最終都會轉到“mystart”。
- define config.layer_clipping = { ... } link
控制圖層(layer)剪裁。這是一個從圖層名稱到(x, y, height, width)元組的映射關係,其中x和y的值是從圖層左上角開始計算的坐標值,height和width是圖層的高和寬。
如果某個圖層沒有在config.layer_clipping中提及,則該圖層會使用其容器的完整尺寸,通常也就是整個界面。 少數情況下其顯示在一個可視組件
Layer
內。
- define config.layers = [ 'master', 'transient', 'screens', 'overlay', ... ] link
該配置項是一個所有Ren’Py已知圖層(layer)的列表,按這些圖層在界面的顯示順序排列。(列表中第一個元素就是最底部的圖層。)Ren’Py內部會使用“master”、“transient”、“screens”和“overlay”圖層(未來可能還有其他圖層),所以這些圖層應該總是保存在這個列表中。
renpy.add_layer()
函數可以在不需要知道該配置項原始內容的情況下,新增圖層到該列表。
- define config.lint_hooks = [ ... ] link
當lint工具運行時,不使用入參被調用的函數列表。這些函數用於檢查腳本數據是否有錯誤,並在標準輸出列印找到的錯誤(這種情況下使用Python的print語句就行)。
- define config.load_before_transition = True link
若為True,互動行為的啟動會延遲到所用到的所有圖像都載入完畢之後。(是的,這個名字很讓人討厭。)
- define config.loadable_callback = None link
若非None,該函數調用時帶一個檔案名。當文件可以載入時,函數返回True,否則返回False。這個函數可以跟
config.file_open_callback
或config.missing_image_callback
協同生效。
- define config.log_width = 78 link
使用
config.log
時,每行日誌的寬度。
- define config.longpress_duration = 0.5 link
在觸控設備上,用戶需要按住螢幕多少時間才會被認為是一次長按操作。
- define config.longpress_radius = 15 link
在觸控設備上,用戶長按需要維持的最小像質數量。
- define config.longpress_vibrate = .1 link
在觸控設備上,用戶長按操作後的震動時長。
一個音訊通道列表名,當進入或返回主選單時將停止對應音訊通道的聲音。
- define config.mipmap_dissolves = False link
Dissolve()
,ImageDissolve()
,AlphaDissolve()
和AlphaMask()
的mipmap入參預設值。
- define config.missing_image_callback = None link
若非None,當載入圖片失敗時會調用這個函數。調用時會將檔案名或缺失的圖像傳入該函數。 函數可能會返回None,也可能返回一個 圖像控制器。如果返回的是圖像控制器,可以使用圖像控制器代替遺失的圖片。
創作者可能需要同時配置
config.loadable_callback
的值,特別是使用DynamicImage()
對象的情況。
- define config.missing_label_callback = None link
若非None,當Ren’Py嘗試轉到某個不存在的腳本標籤(label)時,配置的函數會被調用。該函數會返回一個腳本標籤名稱,用以代替那個遺失的腳本標籤。若Ren’Py拋出異常(exception)時則返回None。
- define config.mouse_focus_clickthrough = False link
若為True,滑鼠點擊使遊戲窗口獲取焦點,並正常處理點擊事件。若為False,則滑鼠點擊事件將忽略。
- define config.mouse_hide_time = 30 link
在配置的時間值內沒有滑鼠操作就隱藏滑鼠指針,單位為秒。該項應該配置成比讀取一個界面的期望時間長,這樣滑鼠用戶就不會遇到滑鼠消失的時間比滑鼠顯示時間更長的情況。
若為None,滑鼠指針永遠不會隱藏。
- define config.new_translate_order = True link
啟用新的style和translate語句命令,詳見 Ren’Py 6.99.11 。
- define config.new_substitutions = True link
若為True,Ren’Py會將應用新形式(圓括號)替換(substitution)所有顯示的文本上。
- define config.old_substitutions = True link
若為True,Ren’Py會將應用舊形式(百分號)替換(substitution) say 和 menu 語句中顯示的文本。
- define config.open_file_encoding = False link
若非False,
renpy.open_file()
的 encoding 參數為None時,則使用該配置項。 該配置項主要用於Python 2遊戲使用Python 3的renpy.file()
函數可以默認以文本模式打開文件。該配置項的預設值源自環境變數RENPY_OPEN_FILE_ENCODING。
- define config.overlay_during_with = True link
如果我們想要在 with 語句 覆蓋已顯示圖像就設置為True,如果我們想要在with語句中隱藏重疊部分就設置為False。
- define config.overlay_layers = [ 'overlay', ... ] link
該項是一個所有可覆蓋圖層(layer)的列表。可覆蓋圖層在overlay函數調用前會被清空。“overlay”圖層應該總是放在這個列表中。
- define config.pad_bindings = { ... } link
等效於遊戲手把的
config.keymap
。詳見 訂製按鍵映射 章節。
- define config.pause_with_transition = False link
若為False,
pause
語句將必定調用renpy.pause()
。 若為True,可以指定一個延遲時間,pause 5
語句等效於with Pause(5)
。
- define config.pass_controller_events = False link
若為True,類似pygame控制器的相關事件會發送到可視組件的事件處理器。反之,則由Ren’Py處理以上事件。
- define config.pass_joystick_events = False link
若為True,類似pygame手把的相關事件會發送到可視組件的事件處理器。反之,則由Ren’Py處理以上事件。
- define config.per_frame_screens = [ ... ] link
該項是一個界面名字串的列表,列表內的界面會在每一幀都更新,而不是每次互動後更新。Ren’Py內部使用這個列表。所以創作者需要在這個列表中添加界面名,而不是整個替換原列表。
- define config.periodic_callbacks = [ ... ] link
若非None,該項應該是一個函數列表。列表中的函數會以大約20Hz的頻率被不斷調用,不帶任何入參。
- define config.play_channel = "audio" link
被
renpy.play()
、hover_sound
和activate_sound
使用的音訊通道名稱。
- define config.predict_statements = 32 link
這是一個語句的數量值,包括當前語句,會被檢查是否執行圖像預載入。從當前語句開始執行廣度優先搜索,直到包含配置數量的語句。在這個範圍內的語句引用的圖像都會在後台預先載入。將該項設置為0會禁用圖像預載入功能。
- define config.profile = False link
若設置為True,某些檔案(profile)資訊會輸出到stdout標準輸出。
- define config.profile_init = 0.25 link
init
和init python
語句塊執行時間超過該配置項時,將會記錄到日誌檔案中。
- define config.quit_on_mobile_background = False link
若為True,當移動app失去焦點時就會退出,而不是在後台保存自身狀態。 (參考配置項
config.save_on_mobile_background
,其控制具體表現。)
- define config.rollback_enabled = True link
設置是否允許用戶在遊戲中回滾(rollback)。若設置為False,用戶不能主動回滾。
- define config.rollback_length = 128 link
當回滾(rollback)日誌中存在超過這個配置項數量的語句時,Ren’Py會修剪日誌。這也包括腳本改變導致的讀取存檔時,Ren’Py會回滾的最大步數。
將該項設置得比預設值更低可能會導致Ren’Py運行不穩定。
- define config.rollback_side_size = .2 link
如果側回滾被啟用,則側回滾的螢幕部分被單擊或觸摸時會導致回滾。
- define config.say_allow_dismiss = None link
若非None,這應是一個函數。當用戶嘗試dismiss某個 say 語句 時,該函數會被調用,不使用任何入參。如果該函數返回True就允許dismiss,否則就忽略。
- define config.say_layer = "screens" link
顯示say界面的圖層(layer)。指定的圖層名必須配置在
config.context_clear_layers
中。
若非None,這是一個函數,返回 say 和 menu 語句中的指定文本。這個函數用於返回新的(或者相同的)字串替換原來的字串。
列表中的函數在say和menu語句的早期就會執行,早於多語言(translation)和文本插值(substitution)。 若需要一個運行時機更晚的過濾器(filter),參見
config.replace_text
。
- define config.say_sustain_callbacks = [ ... ] link
不使用入參調用的函數列表,在某行帶pause分句的對話中,第二次或之後其他互動行為時被調用。該函數用於在暫停狀態保持語音播放。
- define config.save = True link
若為True,Ren’Py才允許玩家存檔。若為False,Ren’Py則不允許玩家存檔,甚至不會顯示任何存檔。
- define config.save_dump = False link
如果設置為True,存檔時Ren’Py會創建文件save_dump.txt。生成的文件包含所有存檔文件中的對象。每一行包含相關的占用空間估測,對象路徑,某個對象是否別名的資訊,以及對象的行為表現。
- define config.save_on_mobile_background = True link
若為True,移動app會在失去焦點時保存自身狀態。保存狀態的方式需要在app重新啟動後能自動讀檔(並回復進度)。
- define config.save_persistent = True link
若為True,Ren’Py會保存持久化數據。若為False,持久化數據不會保存在存檔中,遊戲結束後持久化數據任何改變都將遺失。
- define config.save_physical_size = True link
若為True,窗口的物理尺寸會保存在環境設定(preference)中,並在遊戲掛起時保存。
- define config.savedir = ... link
存檔目錄的完整路徑。這隻應該在
python early
語句塊中配置。 如果不在python early
語句塊中設置,則可以通過配置項config.save_directory
生成初始值。
- define config.scene = renpy.scene link
在 scene 語句 中用於代替
renpy.scene()
的函數。需要注意,這個函數用於清空界面,config.show
用於顯示某個新圖像。這個函數具有與renpy.scene()
相同的簽名(signature)。
- define config.screenshot_callback : Callable link
發生截圖時調用的函數。調用該函數時帶一個參數,即截螢幕保護程式存的完整檔案名。
- define config.screenshot_crop = None link
若非None,該項應是一個(x, y, height, width)元組。截圖會在保存前剪裁為元組描述的矩形。
- define config.screenshot_pattern = "screenshot%04d.png" link
用作創建截圖文件的正則表達式。這個(使用Python的格式規則)表達式應用自然數列生成一個檔案名序列。生成的檔案名是絕對路徑,或與config.renpy_base關聯。首個當前不存在的檔案名會用作截圖的檔案名。
如果表達式中的目錄不存在,則會自動創建目錄。詳見
_screenshot_pattern
。
- define config.script_version = None link
若非None,這被解釋為腳本的版本號。庫(library)會根據腳本版本號啟用適合的特性(feature)。若為None,我們假設腳本版本為最新。
通常該項是項目構建時由Ren’Py啟動器(launcher)自動添加在某個文件中。
- define config.searchpath = [ 'common', 'game', ... ] link
一個目錄列表,用於在這些目錄下搜索圖片、音樂、歸檔及其他媒體檔案,但不包括腳本文件。該項會初始化為包含“common”和遊戲目錄的一個列表。
- define config.search_prefixes = [ "", "images/", ... ] link
搜索的檔案名前添加的前綴列表。
- define config.show = renpy.show link
在 show 和 scene 語句中中用於代替
renpy.show()
的函數。 這個函數具有與renpy.show()
相同的簽名(signature),並會將未知的關鍵字參數不做修改直接傳入。
- define config.skip_delay = 75 link
當使用ctrl鍵跳過語句時,每段對話顯示的時間,單位為毫秒。(實際上只是接近配置的值。)
- define config.skip_indicator = True link
若為True,當使用腳本跳過功能時,庫(library)會顯示一個跳過提醒標誌。
- define config.sound = True link
若為True,使用聲音。若為False,聲音/混合器子系統完全禁用。
- define config.sound_sample_rate = 48000 link
音效卡運行的採樣率。如果你的所有wav文件都使用更低的採樣率,修改該項配置可能會改善播放效果。
- define config.start_callbacks = [ ... ] link
一個回調函數列表,列表內函數的調用時機在初始化環節之後,但在遊戲開始之前,調用時不帶參數。這主要透過framework用於初始化需要保存的變數。
這個配置項的預設值包含了Ren’Py內部使用的回調函數,以支持nvl模式特性等。新的回調函數可以添加到這個列表,但已存在的回調函數不能刪除。
- define config.start_interact_callbacks = ... link
一個函數列表,當某個互動行為開始後(不帶入參)被調用。某個互動行為重新開始的情況下,這些回調函數不會被調用。
- define config.quit_callbacks = [ ... ] link
一個函數列表,在Ren’Py進程終止時將(無參)調用。用於釋放資源,例如打開的文件或啟動的執行緒。
- define config.sticky_layers = [ "master", ... ] link
該項是一個圖層名稱的列表。當指定標籤的圖像顯示在這些圖層上時,可以暫時頂替
config.tag_layer
項,作為圖像標籤的顯示入口。
- define config.top_layers = [ "top", ... ] link
一個圖層(layer)名的列表,該列表中的圖層會顯示在其他所有圖層上面,並且不接受應用於所有圖層上的轉場(transition)。 如果某個圖層在該列表中,它就不能再存在於列表
config.layers`
和config.bottom_layers
中。
- define config.transient_layers = [ 'transient', ... ] link
該項變數是一個所有臨時(transient)圖層的列表。臨時圖層會在每次互動行為後被清空。“transient”應該總是保留在這個列表中。
- define config.transform_uses_child_position = True link
若為True,transform會從他們的子類繼承 position properties 。若不是True,就不繼承。
- define config.transition_screens = True link
若為True,界面會接受轉場(transition)效果,使用溶解(dissolve)從舊的界面狀態轉為新的界面狀態。若為False,只有界面的最新狀態會被顯示。
- define config.translate_clean_stores = [ "gui", ... ] link
一個命名儲存區的列表。當使用的語言改變時,列表內儲存區的狀態會清除並恢復為初始化階段的值。
- define config.voice_filename_format = "{filename}" link
該項配置的字串會自動用voice語句的入參字串替換“filename”,並作為向用戶播放的語音檔案名使用。例如,如果這裡配置的是“{filename}.ogg”,那麼
voice "test"
語句就會播放test.ogg
文件。
- define config.web_video_base = "./game" link
在Web瀏覽器中播放影片時,該項是一個URL連結,與影片檔案名相連後得到完整的影片播放連結地址。 可以包括子目錄,比如 “https://share.renpy.org/movies-for-mygame/” 。
這樣做可以讓文件比較大的影片檔案與遊戲其他內容放在不同的伺服器上。
- define config.web_video_prompt = _("Touch to play the video.") link
iOS系統手機版Safari上運行時,用戶需要點擊後才能播放帶音訊的影片。 該配置項是提示用戶點擊的消息。
- define config.with_callback = None link
若非None,該項應該是一個函數,會在使用 with語句 時被調用。 這個函數可以在轉場(transition)過程中對添加在界面上的臨時元素做出響應。 轉場(transition)過程中,調用該函數時使用兩個入參:當前正使用的轉場,以及後續要使用的轉場。 第二個入參通常為None,除了在with語句中顯式聲明。 該函數會返回一個轉場(transition),可能就是作為入參的那個轉場,也可能不是。
- define config.check_conflicting_properties = True link
預設對已存在的遊戲禁用而對新創建的遊戲啟用。 可以讓創作者檢查樣式和變換特性的當前設置是否會有衝突。 原因是不同平台和版本的Ren’Py運行相同的代碼可能會有不同的結果。
垃圾回收(GC) link
這些配置項允許創作者調整Python的垃圾回收(GC)和Ren’Py對Python垃圾回收管理器。
- define config.manage_gc = True link
若為True,Ren’Py會自己管理GC。這意味著Ren’Py使用以下設置。
- define config.gc_thresholds = (25000, 10, 10) link
非空閒(idle)狀態下Ren’Py使用的GC閾值。這樣設置會嘗試確保GC不會發生。這三個數值分別表示:
level-0回收的對象淨數。
觸發level-1回收的level-0回收次數。
觸發level-2回收的level-1回收次數。
(level-0回收應該足夠快,不會引發掉幀。level-1回收速度可能會引發掉幀,level-2則不會引發掉幀。)
- define config.idle_gc_count = 2500 link
當Ren’Py到達一個穩定狀態時,觸發GC的對象淨數。(穩定狀態是指界面更新第四幀之後)
- define config.gc_print_unreachable = False link
若為True,Ren’Py會在控制台和日誌中列印出觸發GC的對象資訊。
其他配置項 link
文件中的其他頁面也包含很多配置項。可以跳轉具體頁面查看詳情。
成就:
手勢:
自動語音:
頭像: