RenPy中文空间

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 88|回复: 0

交互式管理器(新)

 关闭 [复制链接]
发表于 2018-4-20 08:20:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 BuErShen 于 2018-4-19 23:15 编辑

交互式管理器(Interactive Director)(翻译:被诅咒的章鱼)

交互式管理器(interactive director)是一个工具,允许你在Ren’Py中直接编辑游戏脚本,并能直接预览编辑的结果。管理器并不可能完全代替文本编辑器。我们依然需要文本编辑器来撰写视觉小说的对话、选项和逻辑。

管理器意在帮助你完成游戏脚本的演出,比如添加:

  • 图像(say、show、hide)语句。
  • 转场(with)语句。
  • 声音(play、queue、stop、voice)语句。

使用管理器

你可以在游戏开始后按下键盘的D键(不带shift)接入管理器。如果这是你在某个会话中首次接入管理器,Ren’Py会重新加载整个游戏以确保可能会被编辑的数据无误。

你会看到的第一个管理器界面是一个当前行之前运行过的行的列表。点击管理器窗口之外的部分让脚本继续前进或者回滚。点击各行之间的加号“+”能够添加一行,或者点击每行之前的铅笔符号能编辑对应的行。

编辑某一行时,可以选择语句类型,以及何时的参数。选择“添加”(Add)添加新行,“更改”(Change)修改已存在的某行,“取消”(Cancel)取消编辑,“移除”(Remove)移除存在的某行。

当编辑完毕后点击“完成”(Done)。

配置项
在命名空间 director 定义了一些配置项,用于控制交互式管理器的功能。这些配置项可以使用define语句设置,或者使用Python语句修改。

Scene、Show和Hide
director.tag_blacklist = { "black", "text", "vtext" }
标签(tag)黑名单。黑名单内的标签(tag)不会通过show、scene和hide语句显示。

director.scene_tags = { "bg" }
标签(tag)的集合。集合内的标签(tag)会通过scene语句展示,并通过show语句隐藏。

director.show_tags = set()
若非空集,只有集合内标签才会通过show语句显示。

director.transforms = [ "left", "center", "right" ]
一个transform列表,显示为编辑器的一部分。除此之外,Ren’Py之外使用transform语句定义的transform都会添加到这个列表中,并排序。

with
director.transitions = [ "dissolve", "pixellate" ]
一个转场(transition)列表,列表中的转场可以通过with语句使用。由于转场不能被自动检测到,这个列表内的转场必须手工添加。

play、queue、stop和voice
director.audio_channels = [ "music", "sound", "audio" ]
可以被play、show和stop语句使用的音频通道名。

director.voice_channel = "voice"
可以被voice语句使用的音频通道名。

director.audio_patterns = [ "*.opus", "*.ogg", "*.mp3" ]
默认的音频文件名正则表达式列表,匹配正则表达式的文件都可以在音频通道中使用。

director.audio_channel_patterns = { }
从通道名到可用的音频文件名正则表达式的映射关系。例如,如果这项设置为{ 'sound' : [ 'sound/*.opus' ], 'music' : [ 'music/*.opus' ] },music 和sound 通道就使用各自可用文件的正则表达式。

访问途径
director.button = True
若为True,管理器会显示一个带按钮的界面,用于访问管理器窗口。若为False,则游戏通过director.Start动作提供自身的访问方式。

行间隔
director.spacing = 1
管理器(director)行(包括scene、show、hide、with、play、queue和voice),与非管理器行之间的间隔。间隔应该是0行或者1行,更大的间隔可能不会起效。

director.director_spacing = 0
连续两个管理器行的间隔。

director.other_spacing = 0
连续两个非管理器行的间隔。

视口(Viewport)
director.viewport_height = 280
管理器使用的可滚动视口的最大高度。

音频文件函数
有一些音频文件函数可以用于把转换磁盘文件名转换为Python源代码的文件名。这些功能可以用户匹配Ren’Py的文件名映射。例如,我们有这样一段配置:
[RenPy] 纯文本查看 复制代码
define config.voice_filename_format = "v/{filename}.ogg"

我们就可以定义一个函数:
[RenPy] 纯文本查看 复制代码
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

用于匹配音频文件名正则表达式。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号 | 苏公网安备 32092302000068号 )

GMT+8, 2018-12-13 02:29 , Processed in 0.029129 second(s), 21 queries , File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表