用故事曲线可视化非线性的叙述(Visualizing Nonlinear Narratives with Story Curves)

叙述说明了故事中的事件被讲述的方式。非线性叙述是一个跳出以时间先后顺序来描述事件的叙述技巧。例如,叙述可以隐瞒一些信息来保持神秘感。最终,叙述可以闪回到故事的开端,来释放紧张感。这种非线性叙述技巧被广泛的应用于多种讲述故事的体裁中,包括文学、戏剧、电影、小说和电子游戏。

故事由事件和存在的事物(角色和设定)组成的内容,故事的时间线是以时间先后为顺序的。叙述是关于内容怎样向读者展示的表达,叙述的时间线是事件被讲述的顺序。非线性叙述跳出时间先后顺序描述事件,它不需要遵循直接的因果关系。

故事顺序和叙述顺序有以下6种关系:

  1. 事件按时间先后顺序叙述。
  2. 事件按时间从后向前的顺序叙述。
  3. 叙述在过去和现在之间交替。
  4. 倒叙。
  5. 提前叙述未来事件。
  6. 事件基于某些标准被分组叙述。
建立故事曲线

图片1 建立故事曲线

左边的图表现了怎样从事件序列的故事顺序和叙述顺序中建立故事曲线。在故事曲线中,叙述事件是从左到右排布的,故事顺序是从上到下。右图是电影Pulp Fiction 的故事曲线,用有颜色的片段代表人物,用包围着片段的有色条带代表位置,用灰色的背景代表在一天中的时间。对角线代表了按时间先后顺序的时间线。

图片2 《记忆碎片》的故事曲线

例如,图片2中描述了电影《记忆碎片》的故事曲线。红色代表了电影的主角,也是唯一一个在倒叙中出现的角色。他还在提前叙述未来事件时和其他角色互动。曲线的厚度代表了有多少角色在一个场景中同时出现。在这个例子中,叙述是从故事的最后一个事件开始的,然后不停的闪回到最初的故事。有趣的是,闪回的场景是呈按时间先后顺序排列的,提前叙述的未来事件是按相反的时间顺序排列的。曲线偏离对角线的程度代表了它的模式。曲线上方显示了非线性的程度指标,计算方式为事件距离对角线的距离的和。

图片3 交换坐标轴

可以通过交换坐标轴,使得故事顺序从左到右排列。

从电影脚本中提取故事

程序首先把电影脚本分割为独立的行。然后计算每个行的特征,例如这一行是不是全由大写字母组成 (角色的姓名、场景的标题、过渡) ,是不是包括特殊的标记例如INT或者EXT(室内或室外),或者是不是被圆括号括起来了。程序还会探测每行的左边空白大小。接着分离被分割的行,用k-means聚类,把分割的结果分到两组。第一组包括由大写字母组成的行(角色的姓名、场景的标题),第二组包括剩下的其他行 (行动,对话和附加说明)。解析完场景和角色信息后,系统进一步从脚本中提取语义的元数据,例如地点的名称,在一天中的时间,场景是在室内还是室外。每个场景的长度是由这个场景的字数决定的。这个系统还能提取出角色的情感,基于每个场景中他们台词中的情绪,用简单的朴素贝叶斯分类器分类。

STORY EXPLORER

图片4 story explorer系统界面

Story explorer 系统包含三个视图,第一个是故事曲线视图。第二个是脚本视图,可以使用户近距离的从故事顺序或者叙述顺序阅读脚本,脚本元素包括 场景标题、行为、角色姓名、对话和其他信息。第三个是元数据视图,与故事曲线对齐,展现了角色、地点和在一天中的时间。

扩展的模式
  • 从故事的中间或者最后开始叙述,随后用闪回来解释更早是事件来填充背景。
  • 延续闪回或者提前叙述未来事件。使叙述回到之前闪回或者提前叙述未来事件结束的地方,将两组在叙述中被分开的事件关联起来。
  • 一系列的闪回或提前叙述未来事件,呈阶梯状。
  • 闪回和提前叙述未来事件交缠在一起,一前一后的显示过去和未来的事件。
  • 多组场景形成的子叙述分开或聚合。在记忆碎片中,闪回和提前叙述未来事件在电影的最后汇聚到一起。
语义模式
  • 故事中,总是跟随一个主角叙述。
  • 通过成组的角色叙述,角色出现在不同事件中。

    图片5 电影故事曲线

     

reference:

[1] Kim N W, Bach B, Im H, et al. Visualizing Nonlinear Narratives with Story Curves[J]. IEEE Transactions on Visualization and Computer Graphics, 2017.

评论关闭。