使用示例进行快速而肮脏的比较
( 更新 :我现在在比较中包括了Yarn。)
( 注意 :这篇文章的后续内容,关于在Twine 2,Ink和Yarn中启动和运行Unity集成的比较,可以在这里找到。)
最近,对于一个客户项目,我开始研究提供Unity集成的交互式叙事创作系统。 具体来说,我一直在研究如何使用每个系统编写一些常见的模式。 我没有在线找到两个系统的任何系统比较,因此在这里我非常简要地记录了自己的工作。
注意事项:
- 我是Twine,Ink和Yarn的新手,所以欢迎您提出任何更正或建议。
- 我正在从事的项目有相当具体的约束和要求,包括非技术人员需要参与写作过程这一事实。 我的目的是想像这些系统的创作和工作流程会是什么样,而不是对哪种系统“更好”做出任何判断。
- 我的意图不是要深入学习或教任何人如何使用Twine,Ink或Yarn,并且以下示例均不附带说明。 转到此处以麻绳2,此处为墨水,此处(以及高级材料,此处)为Yarn文档。
- 我可能会在以后添加到此文档中。
要创建下面的示例,我使用了:
- 墨迹脚本编辑器Inky
- Twine 2编辑器,采用Harlowe(默认)故事格式的脚本。
- 使用记事本++编写纱线文件。 (我发现我的Yarn Editor存在保存/加载问题,这很可惜,因为我喜欢它提供的Twine样式图形界面。)
选择项
给玩家一个选择(例如对话选择)。
墨

缠绕


纱

分行
根据玩家的选择或其他触发因素,故事分为不同的子叙事。
墨

缠绕


纱

状态追踪
存储和修改变量数据。
墨

缠绕


纱


条件逻辑
示例1:选项的可用性取决于游戏状态。
墨

请注意,除了我自己的变量( sense_of_mortality )外,Ink还允许我检查是否已看到一段内容(在本例中为At_the_pony_store )。
缠绕


纱

示例2:内容根据游戏状态进行调整。
墨

缠绕

纱

集线器/回路
允许玩家反复返回某个点(例如游戏中的“枢纽”),从中可以做出其他选择。
墨

缠绕

默认情况下,Ink会记住播放器已经做出的选择并将其隐藏在播放器中。
要在Twine 2中获得相同的行为,您可以使用脚本(即状态跟踪+条件逻辑)手动进行操作,例如:

纱

外部函数调用
在这里,我只是复制/解释了在Ink and Cradle文档中找到的信息:
具有Ink Unity集成的墨水
- 使用“可变观察者”通知游戏状态变化
- 使用标签将不可见的元数据添加到墨水行中。
- 使用文本本身向游戏编写指令,然后让游戏特定的文本解析器决定如何处理它。
与Cradle Unity插件缠绕
Cradle通过其“线索”和“运行时宏” API允许这样做。
使用Yarn Spinner Unity插件进行Yarn
Yarn Spinner允许使用YarnCommand属性。
Unity整合
我还比较了Ink和Twine 2的基本集成,以了解哪种系统可以满足我们项目的需求。 我在这里简要记录了一下。 (我很快将在其中添加Yarn Unity集成。)