【Unity】当个小说家!用ink语言编写你的游戏剧情!(一)

1 天前
2

【Unity】当个小说家!用ink语言编写你的游戏剧情!(一)

提示

我的自用Ink剧情系统Dia已经开源,你可以去我新的文章看看,当然你要是想自己手搓也可以 但是本系列应该不会更新了

Ink是什么?

Ink是Inkle公司推出的一种脚本式的文字预处理语言,它可以简单轻松地编写一些优秀的游戏剧情,通过简单的符号标记来组织内容文本以及对话的流程。

Ink语言可以用标记符号来编写剧情的对话,选项,也可以添加变量和逻辑来控制剧情的变化(比如Undertale的三种路线中不同的剧情)

从Ink官网,你可以更详细地了解Ink。

::link-card{url="https://www.inklestudios.com/ink/" title="Ink官网" description="Inkle公司推出的一种脚本式的文字预处理语言"}

工欲善其事,必先利其器-下载Inky

Inky是Inkle推出的编写Ink语言的编辑器,在Ink官网即可下载

在Ink官网下滑就能找到Inky的下载地址,以你自己的开发平台为准下载Mac,Windows或Linux版本的Inky

::link-card{url="https://github.com/inkle/inky/releases/latest/download/Inky_windows_64.zip" title="Inky下载地址" description="Inkle公司推出编写Ink脚本的编辑器"}

熟悉Inky界面

打开Inky,界面会分成两个页面,左边是编写Ink语言的地方,右边则是预览页面。你编写的脚本的运行结果会实时同步在上面。

你可以在界面上方的Help选项里查看Inky内置的Ink语言文档,不过是全英文的。

尝试编写Ink脚本

Inky会在刚打开软件时显示一段初始代码,你可以看一看这段代码预览的结果,其中Once upon a time...以文本形式打印,There were two choices.``There were four lines of content.则变成了两个选项。下面我们开始学习Ink的语法

Ink语法

内容(普通文字)

在Ink上写普通的文本就和HTML一样,直接写下文本,最终会原封不动地打印出来。上文的Once upon a time...就是这样。

选项

使用*标记这是一个选项,语法是*+选项+选了选项后出现的内容例如:

* 这是一个选项
这是你选了这个选项后面出现的内容。

选项后面的内容都是选择这个选项后出现的内容,直到遇到了跳转符号或者另一个选项或者结尾。

你可以理解为这是一个switch-case,如果不遇到break或return的话就永远不会结束。

节点

节点是Ink的重要组成部分,它的语法是 ===+节点名称+===,节点后面的内容是节点的内容,例如这样:

=== 一个节点===
这是节点里的内容

在上面的示例中,没有在节点中写的内容叫做无节点内容

我们可以用->来跳转到某一节点,而->END则代表结束当前的剧情。

预览结果:

注意事项

因为选项中除非遇到跳转符号,否则选项后面的所有内容都是选择选项后执行的内容,这样就会导致最后的->END也会变成一个选项独有。

想要解决这个办法,我们可以用-将阻断选项,例如- ->END,这样不管你选择了哪个选项,最后都会执行->END

这就像编程中的try-catch-finally中的finally,不管其中发生了什么,被-标记的内容都会显示出来

我们将上面的语法组合到一起,就可以写出基础的剧情了。

使用社交账号登录

  • Loading...
  • Loading...
  • Loading...
  • Loading...
  • Loading...