====== 无双使用指南 ======
===== 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 ]]