====== 无双使用指南 ====== ===== 0 专题指南索引 ===== **你只需要掌握本页的内容,就可以做出好玩的游戏!(其实大多数情况下你只需要看看 [[doc:manual#命令详解 | 命令详解]] 这部分内容)** 所以请先通读完本页教程,再根据需要阅读下面的专项指南教程. {{topic>指南}} [[http://gamediy.net/wiki/doc/video | 无双基础视频教程]] ===== - 设计理念 ===== 无双引擎是一款游戏制作工具.它现阶段的目标是使用者不需要掌握任何编程语言或外语,就可以轻松地制作出电子小说式AVG游戏. ===== - 制作思路 ===== 无双引擎的目标是尽可能地降低电子小说的制作门槛,但这并不意味着制作电子小说从此就可以很轻松.一个时长为半小时的电子小说 可能就会有上万字,多个分支情节以及结局.构造这样的非线性的故事情节显然不是容易的事情.而无双引擎的优势在于她可以使你 快速试验自己的想法.只需要有个大概的背景设定,两三个角色,你就可以开始录入剧本并查看最终游戏效果.你可以在游戏尚未完成时 就将她发布出来,也可以以续集的形式来发布后续版本.总之,"尽早发布"和"频繁发布",是保证一个游戏项目生命力的绝佳手段. 无双引擎自带有很多游戏示例,这些游戏示例的剧本都是很好的上手指南,可以通过修改现有剧本来快速地上手无双使用。 ===== - 基础介绍 ===== ==== - 目录结构 ==== 无双引擎的主要目录结构如下: -游戏根目录 | |_ images (保存图片文件,可以内建中文子目录) | |_ musics (保存声音文件,可以内建中文子目录) | |_ codes (保存代码文件,主要为自定义界面) | |_ script (保存游戏剧本,剧本会根据文件名排序来逐个解析) | |_ config.txt (配置文件) 主要的游戏相关数据文件都保存在**游戏目录**中。当游戏目录中只有一个游戏时,会直接启动这个游戏。在加载图片和音乐时, 会先在游戏目录中的相应文件夹查找文件,查找不到才会去根目录下的图片音乐目录中去查找,仍然找不到的话会有错误提示。 这样一来,"游戏目录"下的每个子目录都包含了一个游戏的所有数据,可以单独发布.如果玩过模拟器的话,可以把游戏目录下的每个 子目录理解为一个ROM.由于我设想中的AVG游戏都比较短小,并且可能以续集的形式持续发布,那么采用这种目录结构可以减小 每个游戏的下载量.假如把图片音乐都放到根目录的话,发布续集更是只需要发布剧本和设置这两个txt文件就可以了,更新很方便! 每个游戏必须至少有 **剧本.txt** 和 **设置.txt** 这两个文件 ==== - 剧本结构 ==== 剧本目前由初始化和剧情两部分构成。 === - 初始化部分 === 初始化主要用来定义剧情中需要用到的图片和音乐文件,相当于给图片和音乐文件起一个"别名", 这样以后使用这些图片音乐文件时,就可以只使用别名。当需要替换资源文件时,也只需要修改 初始化中相应的部分,剧情部分的别名无需改动,非常方便。 初始化部分还可以定义一些"全局变量",来控制游戏运行状态,相关文档内容会随着高级游戏系统 如角色属性,背包系统的开发而逐步添加. === - 剧情部分 === 剧情部分由一个或多个标签组成.标签可以作为剧情的章节,场景的描述等等来理解.剧情的分支 可以通过"分支菜单","如果"指令以及"全局变量"来控制.标签的末尾一般应该设置"跳转"指令, 否则会继续执行下一个相邻的标签内容.剧本中可用的指令,请参考[[manual#命令详解]]. *剧本中至少需要有一个"开始"标签和一句台词 *剧本格式必须严格遵守缩进.推荐使用两个空格键来缩进.不能使用Tab键缩进. *剧本中的控制类标点符号,如** : " = == ** 等,必须用英文半角标点符号 ==== - 配置文件 ==== **设置.txt(config.txt)** 中可以设置游戏的基本属性,如游戏名称,窗口大小,字体,文本框背景图等等.查看[[config_txt]]可以得到更多信息. ===== - 命令详解 ===== 命令目前提供简体,繁体和英文三种版本,具体对照请参见[[manual#简繁英命令对照表]].下面主要针对简体版命令进行讲解. ==== - 图形相关命令 ==== === - "图片"命令 === 格式: **图片 组名 标记名 = "图片链接"** 图片命令的主要作用是给一个图片打上标签,这样在后续剧本中就可以方便地显示该图片.如: 图片 无双 高兴 = "无双_高兴.png" 其中 无双 可以理解为组,而 高兴 可以理解为具体动作.当显示组中的某个动作时,其他动作会自动隐藏,这样可以简化剧本的编写, 因为通常我们都不需要两个 无双 显示在屏幕上. === - "显示"命令 === 格式: **显示 组名 标记名 位置 X坐标 Z坐标** 显示命令用来显示一个图片,用法如下: 显示 无双 高兴 显示 无双 高兴 左 50 显示 无双 高兴 左 50 10 显示 背景 街景 中 0 -10 图片的坐标定位只有三个,即 左 中 右.默认图片会在中间显示,如果想显示在左或右,可以再加一个X坐标(如50)来控制图片相对于 窗口左边框或右边框的距离. 如果还想控制图片的遮挡关系,可以再加一个Z坐标(如10).Z坐标大的图片会挡住Z坐标小的图片. 如果Z坐标相同,后显示的图片会挡住先显示的图片. **显示命令会记忆上次图片的坐标位置,这样不用反复输入左右和坐标,很方便!** 也就是说,假如你已经使用了 显示 背景 街景 中 0 -10 来显示背景后,下次切换背景时,只需要输入 显示 背景 侦探社 所有坐标信息都会自动使用上次的设定 === - "说话"命令 === 由于说话在AVG中的比重相当大,所以它被设计成了默认指令,无需输入其他前缀,只需要双引号""就可以,如: "大家好!我是无双!" 注意引号必须是半角英文标点符号 1.如果想利用不同的字体或角色名来区分发言人,请参阅 [[doc:character]] 2.引号内没有内容时文本框会自动隐藏,这个技巧可以用在需要全屏展示CG事件的地方. === - "隐藏"命令 === 隐藏命令用来隐藏一个图片,用法如下: 隐藏 无双 隐藏命令不需要指明当前显示的具体动作,很方便! === - "清屏"命令 === 清屏命令可以用来清除已经绘制的所有图片.在它后面可以接一个图片描述,一般用来加载新背景图,如: 清屏 背景 都市 相当于 清屏 显示 背景 都市 === - "视频"命令 === 用来定义一段视频,定义好后就可以像图片一样来使用视频了.用法如下: 视频 组名 标记名 视频宽度 视频高度 音量 循环/不循环 = '视频\\XT4.wmv' 视频 心跳4 宣传片 236 136 0 循环 = '视频\\XT4.wmv' 其中音量范围为0至100.定义好后就可以用 显示 心跳4 宣传片 来显示这段视频了. 小窍门:可以用 @休息(视频长度) 来使视频播放完成后才继续游戏. === - "多图动画"命令 === 可以用多张图片反复播放来形成动画效果.用法如下: 多图动画 组名 标记名 动画速度 循环/不循环 = 路径名 多图动画 风车 低速转动 0.3 = "其他\\风车" 然后就可以用 显示 风车 低速转动 来显示刚才的多图动画了.显示顺序按路径中的文件名排序. 特别注意:图片 视频 多图动画 等定义的 "组名" 其实是全局变量,其他的全局变量都不能和它们重复,否则会报错.比如: 图片 无双 高兴 = "无双_高兴.png" ... @无双 = 100 # 错误! 组名 无双 被重复定义! ==== - 音效相关命令 ==== === - "音乐"命令 === 音乐命令可以播放一个之前定义好的声音文件,如: @无双主题音乐 = "无双主题音乐.ogg" 音乐 无双主题音乐 调用'音乐'会停止当前正在播放的音乐.音乐结束后会循环播放 === - "音效"命令 === 音效命令和音乐命令的区别在于,音效不会循环,也不会打断当前正在播放的其他音乐音效语音,如: @敲门声 = "敲门声.ogg" 音效 敲门声 === - "语音"命令 === 语音命令的特点在于,语音不会循环,也不会打断当前正在播放的其他音乐音效,但会打断当前正在播放的语音. 这样快进的时候可以保证语音和文本的同步,不会出现文本已经更新时,新旧语音错误混合的情况. @台词2_1 = "台词2_1.ogg" 语音 台词2_1 "这句应该是台词2_1的文本内容" === - "静音"命令 === 静音命令会停止当前播放的所有音乐 ==== - 控制逻辑相关命令 ==== === - "标签"命令 === 标签命令主要和跳到命令配合,来实现分支剧情.每个游戏中至少需要有一个"开始"标签 标签 开始: 注意标签名后要加冒号,该标签下的后续剧情文本必须缩进 === - "跳到"命令 === 跳到命令主要和标签命令配合,来实现分支剧情,如: 跳到 结束 === - "分支菜单"命令 === 分支菜单命令是实现分支的主要手段,也是目前唯一给用户提供选项的方式,如: 分支菜单: "这个是选项1,会显示在菜单上": "如果你选了选项1,就会显示这一行" "这个是选项2,也会显示在菜单上": "如果你选了选项2,就会显示这一行" === - "如果"命令和单行Python命令 === 如果命令其实就是普通编程语言中的if,如果你觉得"如果"命令难以理解的话,完全可以不去用它. 单行Python命令听起来更为深奥.如果在行首加了'@'符号的话,该行就变成了"单行Python指令",如: @我困了 = True 如果 我困了: 跳到 睡觉 显示 无双 熊猫眼 "哈,再玩会儿~" 标签 睡觉: 显示 无双 极度困倦 "这下真该睡了..." "ZZZZZZZZZZZZZZZzzzzzzzzzzzz" 虽然@和Python对于制作电子小说来说并不是必须的,但为了实现复杂的游戏逻辑,掌握一些Python的使用也很有益处, 可以参考无双自带教程"教程 - 邪恶的@". ===== - 进阶教程 ===== 从这里开始,将完全是邪恶的Python的天下!LOL 请确定你有足够的实力! 好吧,开个玩笑,其实Python也是很简单的东西,尤其是中文化后 8-) ==== - "角色"的定义 ==== "角色"在无双引擎中,主要用来定义对话框中的各种外观效果.包括要显示的角色名,文本字体颜色,左边图,文本框底图等等内容. 关于角色的详细定义,请参考[[ character ]] ==== - 界面制作 ==== 请参阅 [[uisystem]] ==== - 图片动画与特效 ==== 利用很简单的指令,就可以在无双引擎中实现图片动画及各种效果,如负片,黑白化,模糊等等,详见[[animation]]. ==== - 关键帧动画 ==== 关键帧动画是一个很强大的动画制作功能,利用它可以实现很多华丽的演出效果,例如烟雾特效,立绘眨眼说话,背景放大等待,具体请参见[[keyframeanimation]]. ==== - "好感度"及其他游戏功能 ==== 利用强大的Python语言,可以很轻松地实现很多游戏功能.基于全局变量实现的"好感度"就是其中之一,具体请参见[[variables]]. ==== - API手册 ==== 在界面制作中,大家已经接触到了一些无双提供的供Python代码调用的API,这里介绍其他API ,具体请参见[[API]]. ====== - 附录 ====== ===== - 简繁英命令对照表 ===== ^简体 ^繁體 ^英文 ^备注 ^ | 图片 | 圖片 | image | 只能出现在初始化部分 | | 显示 | 顯示 | show | 英文定坐标用left,right,center | | 隐藏 | 隱藏 | hide | | | 清屏 | 清屏 | clear | 简体繁体一致 | | 视频 | 視頻 | video | | | 多图动画 | 多圖動畫 | multipage | | | 音乐 | 音樂 | music | | | 音效 | 音效 | sound | 简体繁体一致 | | 语音 | 語音 | speech | | | 静音 | 靜音 | mute | | | 初始化 | 初始化 | init | 简体繁体一致 | | 标签 | 標簽 | label | | | 跳到 | 跳到 | jump | 简体繁体一致 | | 分支菜单 | 分支菜單 | menu | 实现分支的主要手段 | | 如果 | 如果 | if | 简体繁体一致 | | 否则如果 | 否則如果 | elif | | | 否则 | 否則 | else | | | 代码 | 代碼 | python | | 你可能也想看看[[ translations ]]