讲故事与叙事2017primegames.bg
用 Ink 在 Unity 中编写互动故事
Writing interactive stories with Ink in Unity
导读
这篇文章介绍如何在 Unity 中用 Ink 这套叙事脚本语言编写互动故事:故事文本与游戏逻辑分离,作者可以用变量、分支和条件写出会随选择变化的对话。对写作者来说,它提供了一种把"线性写作"升级为"分支叙事"的具体工作流,也引出一个关键问题:叙事工具应当降低门槛、方便协作,而不是逼作者去写代码。
可以直接用的写作要点
- 01
先把故事文本和分支逻辑写在独立的叙事脚本里,再接入引擎,避免把剧情硬编码进程序。
- 02
用变量和条件组织动态对话,而不是为每个分支复制粘贴大段文本,方便后期修改。
- 03
选择叙事工具时优先看协作与扩展能力:如果写作者必须面对代码或 IDE,每次改稿都会变成手工搬运。
- 04
互动故事的分支要有结构地组织(模块化场景、清晰的跳转),否则分支一多就难以维护和通读。
HN 评论精选
低门槛比技术优雅更重要,写作者需要的是不必打开 IDE 就能讲故事的叙事工具。
我不喜欢 Twine,但不得不承认它入门门槛极低,而这恰恰是这个项目所忽视的。用文本讲故事不应该需要 IDE,那种 XML 式的编程方式我会极力避开;其他语言选择也值得怀疑。我不情愿地替 Twine 说好话,但很难找出 Ink 的相对优势。
sethrin查看英文原文
I dislike Twine, and I unfortunately do not have enough to fill my days to be able to avoid reading a fair amount of Twine code. It's mostly terrible, even by hobbyist standards. It does however present an incredibly low barrier to entry, and that most of all is what I think this project misses. Telling stories in text should not require an IDE, and whatever form of programming is exemplified by that XML is one that I'll avoid at all costs. The other language choices are also dubious. I do not like feeling compelled to say nice things about Twine, but it's hard to find any comparative advantages in Ink.
叙事工具必须让写作者不碰代码、支持协作和模块化对话,否则改稿成本会压垮开发者。
ink 看起来非常酷,我之前没听说过,肯定会去试试;要是能有 JavaScript 编译器就好了。我在一个冒险游戏团队里,只有我一个开发者,团队想让我用 Unity,但我拒绝了——在专有平台上投入太多,长期看是个陷阱。游戏 jam 期间我坚持用 Twine2,结果很失望:我们的写手害怕任何看起来像代码的东西,只想用 Google Docs。于是我每次改稿都得手动复制粘贴进 Twine,同时还要折腾 CSS 和分支组织,实在受不了。Twine 不是为协作设计的,也不能用 CSS/JavaScript 轻松扩展,甚至会把我精心写进去的 HTML 实体转义掉,模块化对话根本做不了。Twine 适合做原型,我已经转用 TiddlyWiki5 了。
macawfish查看英文原文
Okay, first of all, ink looks very, very cool. I hadn't heard of it and will definitely be checking it out. It'd be nice if there was a javascript compiler. Maybe it wouldn't be too hard to port. I'm on an adventure game team. We started the game during a game jam. I'm the only developer. My team sort of wants me to use Unity but I absolutely refuse. I've put enough effort into proprietary platforms to know that it's pretty much a trap in the long run. Anyway, during the game jam I stubbornly used Twine2, and was very let down. It didn't help that our writers were terrified of anything that looked or smelled like code. They wanted to use google docs! Okay, so that meant that I had to copy and paste every revision into Twine manually all at the same time as I was trying to figure out the CSS and the branching/organization. That was too much. Twine was not made for collaboration. And I thought because it was built with some variation of HTML5, that I'd easily be able to extend it with css and javascript. Nope, that wasn't the case! Twine is not made for extensibility. It even escapes HTML entities that I carefully wove into our text, transforming them into `>` and `<`. And doing modular dialog was just not possible. We wanted to create something dynamic, but with Twine it was very difficult. Twine was not made for incorporating dynamic dialog. Twine was great as a proof of concept, but I've moved on to TiddlyWiki5. So far I'm feeling much better about that decision! There is a plugin called TiddlyMap that lets you treat TW5 content as a directed graph with multiple layers of edge and node types. It's very powerful: http://tiddlymap.org/ Maybe I can incorporate ink as a way of generating TiddlyWiki content? I'm in the process of creating an feature for TiddlyMap that lets you visualize local linearizations of time-flows on these directed graphs. The goal is to be able to connect content together on a non-linear causal level (in the graph view), yet also to be able to edit it in a local timeline view. The proposed feature actually goes beyond just time editing. Check it out: https://github.com/felixhayashi/TW5-TiddlyMap/issues/270 Once our content is organized as a TiddlyMap graph, I can bring it to life using various existing javascript libraries for sound, graphics, etc. Lastly, since TW5 integrates with dat & Beaker Browser, I'd like to create a p2p collaborative editor for tiddlywiki. I'm not imagining something with user authentication and a central server (like google docs). I'm imagining something where multiple users login to the same editing context via websockets and can pull/push to the collaborative version to each of their dat forks, similar to git. TW5 stores data as HTML, so it'd just be a matter of doing some smart diffing. TW5 already has an import feature, so even just using this could work! Honestly, a collaborative dat editor would be useful outside of tiddlywiki! Could be a cool project for someone who is ready to tackle it.
同类还值得读
Pixar in a Box:可汗学院的皮克斯讲故事课
Pixar in a Box – Khan Academy
这篇是 Khan Academy 与 Pixar 合作的“Pixar in a Box”项目介绍,用计算机图形和动画制作来讲解数学概念。
讲故事与叙事2015 · 753 分 · 65 评4 条写作要点编辑精选皮克斯的讲故事法则
Pixar's Rules of Storytelling (2013)
这是皮克斯动画工作室流传甚广的 22 条讲故事法则清单,从“从前有个___,每天___,有一天___”的骨架,到如何重写自己讨厌的作品。
讲故事与叙事2018 · 513 分 · 74 评4 条写作要点编辑精选皮克斯通过可汗学院提供免费在线讲故事课程
Pixar offers free online lessons in storytelling via Khan Academy
这篇报道介绍皮克斯与可汗学院合作的免费在线课程《讲故事的艺术》,把皮克斯内部的故事创作方法公开给普通学习者。
讲故事与叙事2017 · 503 分 · 93 评4 条写作要点编辑精选用皮克斯的故事公式说服投资人
Use Pixar's story formula to win over investors
这篇文章借用皮克斯的故事公式(以《海底总动员》为例)来示范如何给投资人讲创业路演故事:先讲目标、再讲障碍、最后讲改变。
讲故事与叙事2021 · 439 分 · 188 评4 条写作要点编辑精选贝索斯如何把叙事变成亚马逊的竞争优势
Jeff Bezos Turned Narrative into Amazon's Competitive Advantage
这篇讲杰夫·贝索斯如何把“六页叙事备忘录”变成亚马逊的管理与竞争优势:用可独立阅读的叙述性文档替代口头汇报和 PowerPoint。
讲故事与叙事2019 · 435 分 · 181 评4 条写作要点编辑精选