17906 字
90 分钟

用于自动摄影的声明式摄影机控制——中文全译

文章目录

查看术语表 阅读原理与文献解读

AAAI 1996 · 第 148–155 页 · 中文全译

Declarative Camera Control for Automatic Cinematography

David B. Christianson · Sean E. Anderson · Li-wei He · David H. Salesin · Daniel S. Weld · Michael F. Cohen*

华盛顿大学计算机科学与工程系,美国华盛顿州西雅图,98195。
* 微软研究院,One Microsoft Way,美国华盛顿州雷德蒙德,98052。

机构与联系方式原文

Department of Computer Science and Engineering
University of Washington
Seattle, Washington 98195

*Microsoft Research
One Microsoft Way
Redmond, WA 98052

{dbc1,lhe,salesin,weld}@cs.washington.edu, seander@cs.stanford.edu, mcohen@microsoft.com

8 页原文9 幅图2 张表6 条原注17 条参考文献 AAAI 英文原版 PDF

本文依据 AAAI 1996 会议论文原版 PDF 全文翻译,正文、图注、代码、表格、脚注、致谢和参考文献均予保留;跨页段落合并,图表按便于阅读的位置编排,英文对照标明原纸页码。正文中的“我们”指原论文作者。术语解释、原文内部差异及数学笔误均单独标作“译注”。这是非官方中文译文,原文和原图版权仍属于相应权利人;原版版权说明为:From: AAAI-96 Proceedings. Copyright © 1996, AAAI (www.aaai.org). All rights reserved.

阅读定位:文献标识 [CAwH*96] 对应本文。原文使用的语言名称是 DCCL(声明式摄影机控制语言),系统名称是 CPS(摄影机规划系统)。这里的“场景”指电影叙事单元,不能直接等同于游戏引擎的关卡;“演员”可以是动画角色。

摘要Abstract#

交互式三维计算机图形应用生成的动画,通常从某个角色的主观视点,或者从少量经过策略性布置的视点来呈现。由于忽视了摄影机布置,这些应用未能发挥摄影师多年来一直在探索的重要叙事能力。

英文原文 · 第 148 页

Animations generated by interactive 3D computer graphics applications are typically portrayed either from a particular character's point of view or from a small set of strategically-placed viewpoints. By ignoring camera placement, such applications fail to realize important storytelling capabilities that have been explored by cinematographers for many years.

本文介绍电影摄影的若干原则,并说明如何将它们形式化为一种称为声明式摄影机控制语言(Declarative Camera Control Language,DCCL)的声明式语言。我们以一个简单的交互式电子游戏为背景,介绍 DCCL 的应用,并通过编码一本电影教材中的 16 种摄影惯用式,论证 DCCL 可以在与专业导演相同的抽象层次上表达摄影知识。这些惯用式能够产生引人入胜的动画,随文录像带对此进行了展示。

英文原文 · 第 148 页

In this paper, we describe several of the principles of cinematography and show how they can be formalized into a declarative language, called the Declarative Camera Control Language (DCCL). We describe the application of DCCL within the context of a simple interactive video game and argue that DCCL represents cinematic knowledge at the same level of abstraction as expert directors by encoding 16 idioms from a film textbook. These idioms produce compelling animations, as demonstrated on the accompanying videotape.

引言Introduction#

电影语言是一种复杂的语言,自本世纪初以来,经由才华横溢的电影制作者不断努力,逐步发展而来。因此,电影的规则如今已如此常见,以至于观众几乎总是将它们视为理所当然;然而,这些规则有多么不易察觉,就有多么不可或缺。大多数交互式三维计算机图形应用,例如虚拟聊天管理程序、交互式小说环境和电子游戏,都没有利用已经确立的摄影技法。尤其是,大多数计算机动画都从某个角色的主观视点,或者从少量经过策略性布置的视点来呈现。限制摄影机布置,使这些应用未能发挥摄影师数十年来发展出的叙事表达能力。遗憾的是,尽管已有多本教材以非形式化的方式描述了拍摄各种场景的诸多规则(Arijon 1976;Lukas 1985;Mascelli 1965),要把这些教材知识编码得足够精确,让计算机程序能够操作它们,仍然十分困难。

英文原文 · 第 148 页

The language of film is a complex one, which has evolved gradually through the efforts of talented filmmakers since the beginning of the century. As a result the rules of film are now so common that they are nearly always taken for granted by audiences; nonetheless, they are every bit as essential as they are invisible. Most interactive 3D computer graphics applications (e.g., virtual chat managers, interactive fiction environments, and videogames) do not exploit established cinematographic techniques. In particular, most computer animations are portrayed either from a particular character's point of view or from a small set of strategically-placed viewpoints. By restricting camera placement, such applications fail to realize the expository capabilities developed by cinematographers over many decades. Unfortunately, while there are several textbooks that contain informal descriptions of numerous rules for filming various types of scenes (Arijon 1976; Lukas 1985; Mascelli 1965), it is difficult to encode this textbook knowledge in a manner that is precise enough for a computer program to manipulate.

本文介绍电影制作的若干原则,说明如何将它们形式化为一种声明式语言,再把这种语言用于交互式电子游戏中的摄影机控制问题。具体来说,我们描述声明式摄影机控制语言 DCCL,并证明它足以编码电影教材中的许多启发式规则。我们还提出摄影机规划系统(Camera Planning System,CPS):它接收动画轨迹作为输入,返回完整的摄影机规格。CPS 包含一个与应用领域无关的编译器,用于求解 DCCL 约束并计算摄影机的动态控制;还包含一个与应用领域无关的启发式评估器,对编译器生成的候选镜头规格进行质量排序。我们演示了一个简单的交互式电子游戏:它根据用户输入生成仿真动画,再把这些动画送入 CPS,以产生完整的摄影机规格,如随文录像带所示。

英文原文 · 第 148 页

In this paper, we describe several of the principles of filmmaking, show how they can be formalized into a declarative language, and then apply this language to the problem of camera control in an interactive video game. Specifically, we describe the Declarative Camera Control Language (DCCL) and demonstrate that it is sufficient for encoding many of the heuristics found in a film textbook. We also present a Camera Planning System (CPS), which accepts animation traces as input and returns complete camera specifications. The CPS contains a domain-independent compiler that solves DCCL constraints and calculates the dynamical control of the camera, as well as a domain-independent heuristic evaluator that ranks the quality of the candidate shot specifications that the compiler produces. We demonstrate a simple interactive video game that creates simulated animations in response to user input and then feeds these animations to CPS in order to produce complete camera specifications as shown on the accompanying videotape.

我们的游戏原型为 DCCL 和 CPS 的应用提供了试验平台。不过,DCCL 和 CPS 也可能用于其他多种应用。在电子游戏、多用户地下城(Multi-user Dungeons,MUD)和交互式小说中,自动摄影可以让应用传达某个特定角色的主观印象,而不必诉诸主观视点镜头。1 由于许多 MUD 会长时间持续运行,自动摄影系统可以为用户定制事件摘要,呈现他们离开期间错过的事情。另一方面,自动摄影可以用于与可能参与下一代用户界面的“智能体”建立自然的交互。自动摄影也可以帮助没有专业经验的用户制作桌面视频,或创建动画演示。在后一种情况下,Karp 和 Feiner 已经表明(Karp & Feiner 1990;1993),可以在计算机上有效设计动画演示,从而减少代价高昂的人工参与,并使演示能够针对特定观众或情境进行定制。

英文原文 · 第 148 页

Our prototype video game serves as a testbed for applications of DCCL and CPS. However, there are number of alternative applications to which both DCCL and CPS might be applied. Within the realm of video games, Multi-user Dungeons (MUDs), and interactive fiction, automated cinematography would allow an application to convey the subjective impression of a particular character without resorting to point-of-view shots.¹ Because many MUDs operate over long periods of time, an automated cinematography system could provide users with customized summaries of events they had missed while they were away. Alternatively, automated cinematography could be used to create natural interactions with the “intelligent agents” that are likely to take part in the next generation of user interfaces. Automated cinematography could also be used to assist naive users in the creation of desktop videos, or for building animated presentations. In the latter case, Karp and Feiner have shown (Karp & Feiner 1990; 1993) that animated presentations can be effectively designed on a computer, reducing costly human involvement and allowing presentations to be customized for a particular viewer or situation.

电影摄影原则Principles of Cinematography#

虽然可以把一部电影看作仅仅是一串线性排列的画格,但把它理解为具有结构的作品,往往更有帮助。在最高层次上,电影是场景的序列,每个场景捕捉某种特定的情境或动作。电影中的每个场景由一个或多个镜头组成。一个镜头覆盖从摄影机开机到关机之间的那一小段影片。通常,一部电影由大量独立镜头构成,每个镜头的持续时间可以短至一两秒,也可以长至几十秒。2

英文原文 · 第 149 页

Although a film can be considered to be nothing but a linear sequence of frames, it is often helpful to think of a film as having structure. At the highest level, a film is a sequence of scenes, each of which captures some specific situation or action. Each scene in the film is composed of one or more shots. A single shot covers the small portion of a movie between when a camera is turned on and when it is turned off. Typically, a film is comprised of a large number of individual shots, with each shot's duration lasting from a second or two in length to perhaps tens of seconds.²

摄影机布置Camera Placement#

导演相对于兴趣轴线(line of interest)来指定摄影机布置。这是一条假想的有向线,可以连接两个互动的演员,也可以沿着演员的运动方向,或沿着演员面朝的方向。图 1 展示了两个相向而立的演员所形成的轴线。

英文原文 · 第 149 页

Directors specify camera placements relative to the line of interest, an imaginary vector connecting two interacting actors, directed along the line of an actor's motion, or oriented in the direction the actor is facing. Figure 1 shows the line formed by two actors facing each other.

摄影机布置相对于“兴趣轴线”来指定。(改编自 Arijon 1976 的图 4.11。)

图 1 · 原文第 149 页 摄影机布置相对于“兴趣轴线”来指定。(改编自 Arijon 1976 的图 4.11。)

英文图注

Figure 1: Camera placement is specified relative to the “line of interest.” (Adapted from figure 4.11 of (Arijon 1976))

图内文字译注:The Line=轴线;External=外反打;Internal=内反打;Parallel=平行机位;Apex=顶角机位。字母 a–g 是机位标识。

从机位 b 拍摄演员 X,称为平行机位(parallel camera placement);从机位 c 拍摄 X,得到内反打机位(internal reverse placement);从机位 d 拍摄,得到同时呈现两名演员的顶角镜头(apex shot);最后,从机位 g 拍摄,称为外反打机位(external reverse placement)。

英文原文 · 第 149 页

Shooting actor X from camera position b is called a parallel camera placement. Filming X from position c yields an internal reverse placement. Shooting from position d results in an apex shot that shows both actors. Finally, filming from g is called an external reverse placement.

摄影师发现,某些“截取高度”可以形成悦目的构图,另一些则会产生难看的结果,例如画面把一个人的脚踝截掉。大致有五种实用的摄影机距离,也就是景别(Arijon 1976,第 18 页)。大特写(extreme closeup)在颈部截取;近景(closeup)在胸部下方或腰部截取;中景(medium view)在胯部或膝部下方截取;全景(full view)显示整个人;远景(long view)则提供远距离的观看视角。

英文原文 · 第 149 页

Cinematographers have identified that certain “cutting heights” make for pleasing compositions while others yield ugly results (e.g., an image of a man cut off at the ankles). There is a set of (roughly) five useful camera distances (Arijon 1976, p. 18). An extreme closeup cuts at the neck; a closeup cuts under the chest or at the waist; a medium view cuts at the crotch or under the knees; a full view shows the entire person; and a long view provides a distant perspective.

启发式规则与约束Heuristics and Constraints#

电影制作者已经总结出许多选择好镜头的启发式规则,也以非形式化的方式规定了连续镜头应满足的约束,以便组成好的场景。其中一些较重要的规则如下(Arijon 1976):

英文原文 · 第 149 页

Filmmakers have articulated numerous heuristics for selecting good shots and have informally specified constraints to be placed on successive shots to lead to good scenes. Several of the more important rules include (Arijon 1976):

**平行剪辑:**故事线以场景的形式呈现,应在不同角色、地点或时间之间交替。

英文原文 · 第 149 页

Parallel editing: Story lines (visualized as scenes) should alternate between different characters, locations, or times.

**只展示故事的关键时刻:**应当删去叙事中重复的时刻。

英文原文 · 第 149 页

Only show peak moments of the story: Repetitive moments from a narrative should be deleted.

**不要越轴:**一旦初始镜头从轴线左侧或右侧拍摄,后续镜头就应保持在同一侧;除非用一个中性的交代镜头展示从一侧转到另一侧的过程。这个规则确保:拍摄运动演员的连续镜头,能够保持其画面运动方向一致。

英文原文 · 第 149 页

Don't cross the line: Once an initial shot is taken from the left or right side of the line, subsequent shots should maintain that side, unless a neutral, establishing shot is used to show the transition from one side to the other. This rule ensures that successive shots of a moving actor will maintain the direction of apparent motion.

**让演员引领:**所有运动都应由演员先发起,摄影机随后跟上;反过来,在停止时,摄影机应比演员稍早静止。

英文原文 · 第 149 页

Let the actor lead: The actor should initiate all movement, with the camera following; conversely, the camera should come to rest a little before the actor.

**分解运动:**表现运动的场景,应拆成至少两个镜头。通常,每个镜头都应在演员看起来移动了半个画面区域时切换。切换时还应改变摄影机与主体之间的距离。

英文原文 · 第 149 页

Break movement: A scene illustrating motion should be broken into at least two shots. Typically, each shot is cut so that the actor appears to move across half the screen area. A change of the camera-to-subject distance should also be made in the switch.

摄影惯用式Idioms#

摄影师最重要的发明,或许就是摄影惯用式(idiom)这个概念:用一组镜头来捕捉某种特定动作的典型方式。例如,在两人对话中,电影制作者可以先用一个顶角视角同时呈现两名演员,再交替展示每个人,有时使用内反打机位,有时使用外反打机位。尽管惯用式的变化无穷无尽,电影导演已学会依赖其中一个较小的子集。实际上,电影书籍(例如 Arijon 1976)主要就是摄影惯用式的汇编,并讨论在何种情境下应优先选择某种惯用式而非另一种。图 2 展示了一种由三个镜头组成的惯用式,本文后续将持续以它为例。这一惯用式改编自 Arijon 教材(1976)的图 13.2,用于表现一名演员短距离接近另一名演员的运动。第一个镜头是近景:演员 X 起初位于画面中央,然后从左侧出画。第二个镜头以演员 Y 的远景开始;演员 X 从右侧画外入画,在 X 到达画面中央时结束。最后一个镜头以 Y 的中景开始,演员 X 从右侧画外入画,停在中央。

英文原文 · 第 149 页

Perhaps the most significant invention of cinematographers is the notion of an idiom — a stereotypical way to capture some specific action as a series of shots. For example, in a dialogue between two people, a filmmaker might begin with an apex view of both actors, and then alternate views of each, at times using internal reverse placements and at times using external reverse. While there is an infinite variety of idioms, film directors have learned to rely on a small subset of these. Indeed, film books (e.g., (Arijon 1976)) are primarily a compilation of idioms along with a discussion of the situations when a filmmaker should prefer one idiom over another. Figure 2 presents a three-shot idiom that serves as an extended example throughout the remainder of this paper. The idiom, adapted from Figure 13.2 of Arijon's text (1976), provides a method for depicting short-range motion of one actor approaching another. The first shot is a closeup; actor X begins in the center of the screen and exits left. The second shot begins with a long view of actor Y; actor X enters from off-screen right, and the shot ends when X reaches the center. The final shot begins with a medium view of Y, with actor X entering from off-screen right and stopping at center.

(改编自 Arijon 1976 的图 13.2。)一种常用惯用式,用于表现一名演员短距离接近另一名演员。图左显示机位,图右显示所得画面。箭头表示演员入画和出画的运动。

图 2 · 原文第 150 页 (改编自 Arijon 1976 的图 13.2。)一种常用惯用式,用于表现一名演员短距离接近另一名演员。图左显示机位,图右显示所得画面。箭头表示演员入画和出画的运动。

英文图注

Figure 2: (Adapted from figure 13.2 of (Arijon 1976)). A common idiom for depicting short range movement of one actor approaching another. Camera positions are shown on the left side of the figure; the resulting image is shown on the right. Arrows indicate motion of actors into and out of the screen.

DCCLDeclarative Camera Control Language#

本节对声明式摄影机控制语言 DCCL 作非形式化的介绍。DCCL 规格之所以重要,是因为它使 CPS 能够形式化、编码并实现常见的电影惯用式,例如图 2 所示的惯用式。

英文原文 · 第 149 页

This section provides an informal description of the Declarative Camera Control Language DCCL. The specification of DCCL is important because it allows CPS to formalize, encode, and implement common film idioms, such as the one presented in Figure 2.

DCCL 有四个基本概念:片段(fragments)、景别(views)、机位布置(placements)和运动端点(movement endpoints)。这些基本元素组合起来,用于指定镜头和摄影惯用式等更高层次的结构。

英文原文 · 第 150 页

There are four basic primitive concepts in DCCL: fragments, views, placements, and movement endpoints; these primitives are combined to specify higher-level constructs such as shots and idioms.

片段Fragments#

上一节讨论了摄影师如何将镜头视为电影的基本构建单元。对于我们的自动化系统,我们发现,把每个镜头进一步分解成一个或多个片段的集合很有用。片段指定一个时间区间,在此期间,摄影机的位置和朝向保持不变,或者执行一种简单运动。DCCL 定义了五种片段类型,图 4 对它们作了示意。

英文原文 · 第 150 页

In the previous section, we discussed how cinematographers treat a shot as the primitive building block in a film. For our automated system, we have found it useful to further decompose each shot into a collection of one or more fragments. A fragment specifies an interval of time during which the camera is in a static position and orientation or is performing a single simple motion. DCCL defines five fragment types (illustrated schematically in Figure 4).

要完整地指定一个片段,还需要额外信息。有些参数是显而易见的:例如,要跟随演员运动,就必须指定跟随哪名演员,以及在哪个时间区间进行拍摄。此外,还必须指定所需景别——大特写、近景、中景、全景或远景——以及摄影机相对于一个或多个演员的机位布置——内反打、外反打、平行或顶角。其中三种片段,即经过式(go-by)、摇摄(panning)和跟移(tracking),还需要一个称为基准时刻(primary moment)的参数,用于指定:在包含运动的镜头中,机位布置命令应在哪个时刻成立。

英文原文 · 第 150 页

A fully-specified fragment requires additional information. Some of these arguments are obvious — for example, to track the motion of an actor, one must specify which actor to track and over what time interval to roll the film. In addition, one must also specify the desired camera range — extreme, closeup, medium, full, or long, as well as the placement of the camera relative to the actor (or actors) — internal, external, parallel, and apex. Three of the fragments, go-by, panning, and tracking, require an additional argument, called the primary moment, which specifies the moment at which the placement command is to take effect during a shot in which there is motion.

最后,经过式与摇摄这两种片段还需要另一个参数,称为运动端点,用于表示演员相对于画面应当走过的运动范围。3 如图 5 所示,DCCL 支持七个运动端点关键字。

英文原文 · 第 150 页

Finally, two of these fragments, go-by and panning, require another argument called a movement endpoint, which is used to indicate the range of motion to be covered by the actor relative to the screen.³ As Figure 5 illustrates, DCCL recognizes seven movement-endpoint keywords.

请注意,运动端点关键字虽然指向画面上的位置,却被用于计算经过式与摇摄片段的持续时间。4 例如,图 2 惯用式的第一个镜头,可以定义为从 center 运动到 out-left 的经过式片段。

英文原文 · 第 150 页

Note that although the movement-endpoint keywords refer to locations on the screen, they are used to calculate the temporal duration of go-by and panning fragments.⁴ For example, the first shot of the idiom of Figure 2 can be defined as a go-by moving from center to out-left.

DCCL 片段指定摄影机运动的类型。

图 4 · 原文第 151 页 DCCL 片段指定摄影机运动的类型。

英文图注

Figure 4: DCCL fragments specify the type of camera motion.

图内文字译注:Static Fragment=静止片段,演员站立不动;Go-by Fragment=经过式片段,演员横穿画面;Panning Fragment=摇摄片段,摄影机转动时演员保持在画面中央附近;Tracking Fragment=跟移片段,摄影机平行于运动轴线移动时演员保持在画面中央附近;Point of View (POV) Fragment=主观视点片段,演员与摄影机一起移动。line of action=运动轴线。

DCCL 允许用户通过指定演员在画面上的预期初始位置与结束位置,来限定经过式与摇摄片段的持续时间。

图 5 · 原文第 151 页 DCCL 允许用户通过指定演员在画面上的预期初始位置与结束位置,来限定经过式与摇摄片段的持续时间。

英文图注

Figure 5: DCCL allows the user to delimit the temporal duration of go-by and panning fragments by specifying the desired initial and terminal locations of the actor on the screen.

图内文字译注:从左到右的七个位置为 out-left(左侧画外)、on-left(左边界)、in-left(画内左侧)、center(中央)、in-right(画内右侧)、on-right(右边界)、out-right(右侧画外);Screen 表示画面范围。out-left/out-right 的时间含义见原注 4。

镜头与摄影惯用式Shots and Idioms#

在很多情况下,一个镜头由一个片段构成;但有时,将多个片段合并成更复杂的镜头会更有效。例如,可以先用一个摇摄片段,让奔跑的演员从 out-left 移动到画面中央;接着停止摄影机旋转,并增加其横向运动,使其与演员速度一致,从而转为一个跟移镜头(图 6)。多片段镜头通常以不同顺序组合摇摄、跟移和经过式片段。

英文原文 · 第 150–151 页

In many cases, a shot is composed of a single fragment, but sometimes it is effective to merge several fragments together to form a more complex shot. For example, one can start with a panning fragment in which a running actor moves from out-left into the center of the screen, then shift to a tracking shot by terminating camera rotation and increasing its lateral motion to match that of the actor (Figure 6). Multifragment shots typically combine panning, tracking and go-by fragments in different orders.

由两个片段组成的镜头示意:一个摇摄片段以察觉不到的方式融入一个跟移片段。

图 6 · 原文第 151 页 由两个片段组成的镜头示意:一个摇摄片段以察觉不到的方式融入一个跟移片段。

英文图注

Figure 6: Schematic illustration of a shot composed of two fragments: a panning fragment that melds imperceptibly into a tracking fragment.

图内文字译注:Panning=摇摄;Tracking=跟移。

在多片段镜头中,能够让一个片段的结束与下一个片段的开始在“仿真时间”上同步,往往十分重要。因此,DCCL 支持导出计算得到的变量,例如片段的开始或结束时间,供同一惯用式中的其他片段使用。如果片段没有覆盖整个场景,场景的时长就可能缩短,从而产生“时间压缩”。

英文原文 · 第 151 页

In multifragment shots, it is often important to be able to synchronize (in “simulation time”) the end of one fragment with the beginning of the next. For this reason, DCCL supports the ability to export computed variables, such as the starting or ending time of a fragment, for use by other fragments in the same idiom. The duration of a scene can decrease if fragments do not cover the entire scene, producing “time contraction.”

定义一个摄影惯用式时,必须指定:它适合表现哪些活动、名称、参数(例如演员和时间),以及一个镜头描述列表。例如,图 3 给出了图 2 所示惯用式的实际 DCCL 编码;要表现一名演员接近另一名演员,这个惯用式是一种合适的选择。

英文原文 · 第 151 页

To define an idiom, one must specify the activities for which the idiom is deemed appropriate, a name, arguments (e.g., actors and times), and a list of shot descriptions. For example, Figure 3 shows the actual DCCL encoding of the idiom illustrated in Figure 2; this idiom is a good choice for showing one actor approaching another.

与图 2 中的惯用式对应的 DCCL 代码。

图 3 · 原文第 150 页 与图 2 中的惯用式对应的 DCCL 代码。

英文图注

Figure 3: DCCL code corresponding to the idiom depicted in Figure 2.

图 3 代码转录 · 标识符与参数值保留原文,可复制

(AcFilmIdiom name Arijon-13-2
:parameter (AcParamApproach :actor1 :actor2 :start :stop)
:line (AcLineIdiom :primary ?actor1 :other ?actor2 :side left)
(AcFilmShot name shot1
(AcFragGoBy name frag1
:time ?start :primary-moment beginning :entry-pos center :exit-pos out-left
:placement (AcPlaceInternal :primary ?actor1 :other ?actor2 :range closeup :primary-side center)))
(AcFilmShot name shot2
(AcFragGoBy name frag2
:time ?frag3.first-tick :primary-moment end :entry-pos on-right :exit-pos center
:placement (AcPlaceExternal :near ?actor1 :far ?actor2
:primary-subject near :range longshot :primary-side center)))
(AcFilmShot name shot3
(AcFragGoBy name frag3
:time ?stop :primary-moment end :entry-pos out-right :exit-pos right12
:placement (AcPlaceApex :primary ?actor1 :other ?actor2 :range mediumshot :primary-side right12))))

译注:原文第 149 页以自然语言说第三个镜头中的 X 停在“中央”,而图 3 明确写的是 :exit-pos right12 与 :primary-side right12;第二个镜头的代码也明确使用 on-right。这里分别忠实保留文字描述与代码,不将这些位置自动改成同一个值。?frag3.first-tick 引用了第三片段计算出的起始时刻。

摄影机规划系统The Camera Planning System#

摄影机规划系统(CPS)将前文介绍的电影摄影机布置原则编码并实现,用于一名或两名演员的简单运动序列。

英文原文 · 第 151 页

The Camera Planning System (CPS) codifies and implements the previously described cinematographic principles of camera placement for the case of simple movement sequences on the part of one or two actors.

CPS 的输入是动画轨迹:每个角色的位置与活动信息,以及指定在哪些时间区间拍摄哪些演员的指令。在我们的交互式游戏中,这些信息由一个简单的计算机仿真产生,而仿真则响应用户命令生成。有了这些轨迹信息,CPS 会选择要用摄影机捕捉哪些时间子区间,以及采用哪些视点和镜头焦段,也就是采用多大的视场角。随后,动画就可以按照 CPS 选定的时间区间与摄影机布置回放给用户。

英文原文 · 第 151 页

As input, CPS requires an animation trace: information about the positions and activities of each character, as well as directives stating which actors are to be filmed over what intervals of time. In our interactive game, this information is produced by a simple computer simulation generated in response to a user command. Given this trace information, the CPS chooses which subintervals of time to capture with the camera and from which vantage points and with which lenses (i.e., what field of view). The animation can then be played back to the user using the intervals and camera placements selected by the CPS.

CPS 使用的主要数据结构是影片树(film tree,图 7),它表示正在生成的影片。树中的场景层与候选惯用式层尤为重要:影片中的每个场景都关联一个或多个可能的惯用式,每个惯用式代表拍摄其父级场景的一种特定方式。CPS 会不断展开影片树,直到为每个惯用式编译出详细解,再为每个场景选择合适的候选惯用式与画格。

英文原文 · 第 151 页

The primary data structure used by CPS is the film tree (Figure 7), which represents the film being generated. Of primary consequence are the scene and candidate idiom levels of the tree: each scene in the film is associated with one or more possible idioms, with each idiom representing a particular method of filming the parent scene. The CPS operates by expanding the film tree until it has compiled detailed solutions for each idiom, and then selecting appropriate candidate idioms and frames for each scene.

CPS 流水线中的各个模块依次、逐步展开影片树数据结构。

图 7 · 原文第 152 页 CPS 流水线中的各个模块依次、逐步展开影片树数据结构。

英文图注

Figure 7: Successive modules in the CPS pipeline incrementally expand the film tree data structure.

图内文字译注:Film=影片;Sequences=影片段落;Scenes=场景;Candidate Idioms=候选惯用式;Candidate Frames=候选画格。

在内部,CPS 实现为一个三级流水线,包含序列规划器、DCCL 编译器和启发式评估器,如图 8 所示。一个惯用式数据库(图中未画出)为被拍摄动画中的每个场景提供相关的惯用式规格。

英文原文 · 第 151 页

Internally, the CPS is implemented as a three-stage pipeline involving a sequence planner, DCCL compiler, and a heuristic evaluator, as shown in Figure 8. An idiom database (not shown) provides idiom specifications relevant to each scene in the animation being filmed.

CPS 实现为一个三级流水线。

图 8 · 原文第 152 页 CPS 实现为一个三级流水线。

英文图注

Figure 8: The CPS is implemented as a three-stage pipeline.

图内文字译注:从左到右:仿真数据(Simulation Data)→ 序列规划器(Sequence Planner)→ 惯用式(Idioms)→ DCCL 编译器(DCCL Compiler)→ 候选画格(Candidate Frames)→ 启发式评估器(Heuristic Evaluator)→ 最终画格(Final Frames)。

序列规划器The Sequence Planner#

CPS 序列规划器当前的实现相当简单。与 CPS 的其他部分不同,序列规划器的实现代码针对应用的领域,也就是情节而编写,例如追逐与捕捉交互。规划器接收动画轨迹作为输入,这些轨迹描述一组演员随时间变化的行为;输出则是一个已经指定到场景层的影片树(图 7)。

英文原文 · 第 151–152 页

The current implementation of the CPS sequence planner is quite simple. Unlike the other portions of the CPS the code implementing the sequence planner is specific to the domain (plot) of the application (e.g. chase and capture interactions). As input the planner receives an animation trace describing the time-varying behavior of a group of actors. As output, the sequence planner produces a film tree (Figure 7) that is specified down to the scene level.

动画轨迹为动画中的每一帧指定每名演员的位置、速度与关节位置。轨迹还标注每名演员在每一帧正在进行的活动,并把更高层次的信息编码为一组影片段落。每个影片段落包含一个时间区间、一名用作主角的演员,以及可选的第二名演员。在当前应用中,我们使用多个影片段落产生平行剪辑效果:让 CPS 将表现一组演员的场景,与表现另一组演员的场景交织起来,见随文录像带。

英文原文 · 第 152 页

The animation trace specifies position, velocity, and joint positions for each actor for each frame of the animation. The trace also labels the activity being performed by each actor in each frame, as well as higher-level information encoded as a set of film sequences, with each film sequence including an interval of time, an actor to use as the protagonist, and (optionally) a second actor. In the current application, multiple film sequences are used to create parallel editing effects by having the CPS intermix scenes featuring one set of actors with scenes featuring a different set of actors (see accompanying videotape).

依据动画轨迹中的信息,序列规划器首先按照主角在给定段落中进行的活动,对每个影片段落进行分区,从而生成场景。针对当前应用,我们识别了十种活动类型(表 1)。完成分区后,序列规划器根据每个分区的活动、演员和时间区间,生成带有这些参数的场景。

英文原文 · 第 152 页

Given the information in the animation trace, the sequence planner generates scenes by first partitioning each film sequence according to the activities performed by the protagonist during the given sequence. For the current application we have identified ten activity types (Table 1). After partitioning a sequence, the sequence planner generates scenes parameterized by the activity, actors, and time interval of each partition.

表 1:游戏原型的活动分类 / Table 1: Activity classifications for prototype game.
活动 / Activity单人活动 / Solitary惯用式数量 / Idioms
停止/启动 / Stopping/StartingY1
X 接近 Y / X-Approaches-YN2
X 远离 Y / X-Retreats-From-YN2
X 跟随 Y / X-Follows-YN2
移动 / MovingY2
转身 / TurningY1
转头 / HeadTurningY1
静止 / StationaryY1
观看 / LookingY1
注意到 / NoticingN1
拾取 / Picking UpN1
持有 / HoldingN1

译注:Y 表示是,N 表示否。原文正文写“十种活动类型”,但表 1 实际列出 12 行,惯用式数量合计为 16。此处保留原文这项不一致,不擅自删减表项或改写正文。

序列规划器创建场景节点之后,CPS 必须实例化与各个场景相关的惯用式模式。是否相关,取决于场景活动能否匹配每个惯用式定义的适用活动列表。当前数据库实现包含 16 种惯用式(表 1)。规划器通过把实际参数——演员名称,以及场景开始和结束时间——代入惯用式定义中的占位符,来实例化惯用式。涉及演员在左侧或右侧位置的引用,会在后续惯用式求解过程中自动进行镜像处理。

英文原文 · 第 152 页

Once the sequence planner has created the scene nodes, the CPS must instantiate the idiom schemata relevant for each scene. Relevance is determined by matching the scene activity against a list of applicable activities defined for each idiom. The current implementation of the database contains 16 idioms (Table 1). The planner instantiates idioms by substituting actual parameters (actor names, and scene start and ending times) for the placeholders specified in the idiom definitions. References to actor placements on the right or left sides will be automatically mirrored later, during the idiom solving process.

DCCL 编译器The DCCL Compiler#

DCCL 编译器利用演员的运动信息,把每个候选惯用式中的片段展开为可以直接播放的逐帧规格数组。一帧由摄影机的三维位置、朝向与视场角共同完全确定,因此,编译器只需为每个候选惯用式中每个镜头的每个片段,生成这些数值的数组。

英文原文 · 第 152 页

The DCCL compiler uses information about the movement of the actors to expand the fragments in each candidate idiom into an array of frame specifications, which can be played directly. Since a frame is fully constrained by the combination of its camera's 3D position, orientation, and field of view, the compiler need only generate an array of these values for each fragment in each shot in each candidate idiom.

最简单的惯用式仅包含一个镜头,而该镜头仅由一个片段构成,因此先讨论这种情况。如果片段类型是 pov,编译过程就很简单,所以我们假设片段类型为 static、tracking、go-by 或 panning。我们把编译器的工作分成四项任务:

英文原文 · 第 152 页

In its simplest form, an idiom consists of a single shot that is composed of a single fragment, so we cover that case first. If the fragment has type pov, then compilation is trivial, so we assume that the fragment has type static, tracking, go-by, or panning. We decompose the compiler's job into four tasks:

1. 确定适当的基准时刻。

英文原文 · 第 152 页

1. Determine the appropriate primary moment(s).

2. 为每个基准时刻确定可能的逐帧规格集合。

英文原文 · 第 152 页

2. Determine the set of possible frame specifications for each primary moment.

3. 在给定初始帧规格的条件下,计算片段的持续时间,也就是帧数组的长度。

英文原文 · 第 152 页

3. Calculate the temporal duration (length of the frame array) of the fragment given an initial frame specification.

4. 根据第 n − 1 帧的规格,生成第 n 帧的插值规格。

英文原文 · 第 152 页

4. Generate the interpolated specification of frame n from that of frame n − 1.

完成这些任务后,编译器只需为每个基准时刻和帧规格生成一个帧数组。在当前版本的 CPS 中,通常只有两个帧数组,分别对应把摄影机放在兴趣轴线的一侧或另一侧。选择合适一侧的任务留给启发式评估器。5

英文原文 · 第 152–153 页

Once these tasks have been completed, the compiler simply has to generate a frame array for each primary moment and frame specification. In the current version of CPS there are typically only two frame arrays corresponding to placing the camera on one side of the line of interest or the other. The task of choosing the appropriate side is left up to the heuristic evaluator.⁵

片段的基准时刻定义了这样一个时间点:在该时刻,摄影机布置应当满足该片段指定的布置。它随片段类型而变化。经过式、跟移和摇摄片段将基准时刻指定为片段的第一个或最后一个时间刻度。静止片段则不指定基准时刻,所以在当前版本的 CPS 中,我们分别在片段时间区间的起点、终点与中点求解机位布置;启发式评估器稍后会判断哪个解看起来最好,并剪去其余解。

英文原文 · 第 153 页

The primary moment of a fragment defines the point in time at which the camera placement should conform to the placement specified for the fragment, and varies with the type of fragment. The go-by, tracking, and panning fragments specify the primary moment as either the first or last tick of the fragment. The static fragments, on the other hand, do not specify a primary moment, so in the current version of CPS we solve the placement for the first, last, and midpoint ticks of the fragment's time interval; the heuristic evaluator will later determine which solution looks best and prune the rest.

惯用式指定的片段机位布置,例如内反打、外反打、平行或顶角,与动画轨迹提供的演员位置相结合,将摄影机的初始位置约束在两个向量之一上,具体取决于使用轴线的哪一侧(图 1)。摄影机在这个向量上的实际位置,由摄影机与主要主体之间的预期距离决定。这个距离又由片段的景别——大特写、近景、中景、全景或远景——以及镜头焦距来指定。编译器尝试使用标准镜头,例如 60 度视场角,生成一组适当的机位布置。这些计算背后的向量代数,见 Blinn(1988)。

英文原文 · 第 153 页

The fragment's placement (e.g., internal, external, parallel, or apex), as specified in the idiom, combined with the location of the actors (from the animation trace) constrains the camera's initial position to lie on one of two vectors, according to the side of the line being used (Figure 1). The actual location on this vector is determined by the desired distance between the camera and the primary subject. This distance, in turn, is specified by the fragment's range (extreme, closeup, medium, full, or long) and the lens focal length. The compiler attempts to generate a set of appropriate placements using a normal lens (e.g., a 60-degree field of view). The vector algebra behind these calculations is explained in (Blinn 1988).

静止、跟移与主观视点片段的持续时间,作为 DCCL 规格的一部分被显式指定。但是,经过式与摇摄片段的持续时间,必须根据运动端点规格并结合演员速度来计算。

英文原文 · 第 153 页

The temporal duration of static, tracking, and pov fragments is specified explicitly as part of the DCCL specification. However, the duration of go-by and panning fragments must be computed from the movement-endpoint specification in conjunction with the actor's velocity.

用来逐帧更新摄影机位置与朝向的函数,取决于相关片段的类型,以及演员位置的变化。静止片段和经过式片段不改变摄影机位置或朝向。跟移片段中的摄影机保持朝向不变,但根据演员的速度向量改变位置。摇摄片段中的摄影机保持位置不变,但改变朝向,其角速度受到演员速度以及演员最接近摄影机时的距离约束;这个最近距离由基准时刻决定。

英文原文 · 第 153 页

The function used to update the camera position and orientation from one frame to the next depends on the type of fragment involved and the change in the actors' positions. Static and go-by fragments do not change camera position or orientation. The camera in tracking fragments maintains its orientation, but changes its position based on the actor's velocity vector. The camera in panning fragments maintains its position, but changes its orientation with angular velocity constrained by actor velocity and the distance at the closest approach to the camera (as determined by the primary moment).

请注意,与序列规划器不同,DCCL 编译器完全不依赖具体应用领域:编译器只依赖几何信息,而不依赖动画的情节或主题。此外,惯用式数据库中的 DCCL 规格可用于不同动画;例如,我们数据库中的惯用式,应当适用于任何包含双角色互动的动画。

英文原文 · 第 153 页

Note that unlike the sequence planner, the DCCL compiler is completely domain-independent in that the compiler depends only on geometry and not on the plot or subject of the animation. Furthermore, the DCCL specifications in the idiom database are applicable across various animations; for example, the idioms in our database should apply to any animation with two-character interactions.

启发式评估器The Heuristic Evaluator#

由于影片树是一个与/或图(AND/OR graph),它表示许多可能的影片。6 启发式评估器选择能最好地呈现场景的候选惯用式:先对各个片段的帧数组评分并剪枝,再为每个惯用式分配一个实数评分。请注意,在编译之前,不可能估计一个片段或惯用式的质量,因为视觉质量取决于片段类型与演员运动之间复杂的几何相互作用。当演员处于某种相对位置时,一个惯用式可能表现得非常好;而在另一种配置下,它的效果可能很差。

英文原文 · 第 153 页

Since the film tree is an AND/OR graph, it represents many possible films.⁶ The heuristic evaluator chooses the candidate idiom that renders a scene best, assigning each idiom a real-valued score by first scoring and pruning the frame arrays of its fragments. Note that it is not possible to estimate the quality of a fragment or idiom before it is compiled, because visual quality is determined by the complex, geometric interactions between the fragment type and the motions of the actors. A given idiom might work extremely well when the actors stand in one position relative to one another, yet work poorly given a different configuration.

评分机制主要着眼于片段之间的评价标准,即:

  • 保持机位布置之间的平顺过渡;
  • 排除会导致摄影机越轴的片段。
英文原文 · 第 153 页

The scoring mechanism is primarily focused towards evaluating inter-fragment criteria, namely: maintaining smooth transitions between camera placements; eliminating fragments which cause the camera to cross the line.

此外,评分机制还处理 CPS 编译阶段有时会产生的某些片段内部行为,例如:

  • 惩罚过短或过长的片段;
  • 排除摄影机反向摇摄的片段。
英文原文 · 第 153 页

In addition, the scoring mechanism deals with certain intra-fragment behaviors that sometimes arise from the compilation phase of the CPS such as: penalizing very short or very long fragments; eliminating fragments in which the camera pans backwards.

评估器为将要纳入影片的每个场景选出最佳惯用式后,摄影机规划过程就完成了。CPS 将影片树中所有剩余惯用式节点的帧数组连接起来,把相应的帧序列输出给播放器进行渲染。

英文原文 · 第 153 页

After the evaluator has selected the best idiom for each scene to be included in the film, the camera planning process is complete. CPS concatenates the frame arrays for all idiom nodes remaining in the film tree and outputs the corresponding sequence of frames to the player for rendering.

请注意,评估器的规则虽然是启发式的,但在电影与动画范围内,它们也不依赖具体应用领域:每条规则都编码了一项广泛适用的知识,用来判断哪些类型的镜头在影片中好看,哪些不好看。

英文原文 · 第 153 页

Note that while the evaluator's rules are heuristic, they are also domain-independent within the domain of film and animation: each rule encodes broadly-applicable knowledge about which types of shots look good on film, and which do not.

示例应用Sample Application#

我们尤其关注自动摄影的交互式用途。因此,我们决定制作一个简单的交互式游戏,用 CPS 来拍摄人类玩家下达命令后产生的动作。游戏的基本情节很简单:主角 Bob 必须在一个虚拟世界中四处行走,寻找圣杯;我们的实现使用 SGI 的 Performer Town。游戏中还加入了一只企图偷走圣杯的恶犬 Fido,让过程更有趣。游戏不时生成 Fido 的活动动画,并指示 CPS 将这些动画剪辑到当前行动中。最终,Bob 和 Fido 会发生互动:如果 Fido 拿到了圣杯,Bob 就必须追赶 Fido,把它夺回来。用户通过弹出菜单指挥 Bob。这些命令分为四大类:让 Bob 朝某个方向看、移动到画面上的某个点、拾取物体,或追逐另一名演员。

英文原文 · 第 153–154 页

We are particularly interested in interactive uses of automatic cinematography. Therefore, we decided to build a simple interactive game that would use CPS to film actions commanded by a human player. The basic plot of the game is very simple. The main character, Bob, must walk around a virtual world (in our case, SGI's Performer Town) looking for the Holy Grail. The game is made more interesting by the introduction of Fido, an evil dog that seeks to steal the Grail. From time to time, the game generates animations of Fido's activities and instructs CPS to edit these animations into the action. Eventually, Bob and Fido interact: if Fido gets the grail, Bob has to chase Fido in order to get it back. The user commands Bob through a pop-up menu. These commands fall into four basic categories: telling Bob to look in a particular direction, to move to a particular point on the screen, to pick up an object, or to chase another actor.

CPS 的整体应用上下文。

图 9 · 原文第 154 页 CPS 的整体应用上下文。

英文图注

Figure 9: Overall context of CPS

图内文字译注:User Commands=用户命令;Movies=影片;Game Engine=游戏引擎;Control=控制;Simulator=仿真器;Camera Planning System=摄影机规划系统;Player=播放器。

游戏及其各种动画/仿真模块使用 C++ 实现,采用运行于 SGI 工作站上的 IRIS Performer 工具包,并且部分基于 SGI 提供的 perfly 应用——一个基于 Performer 的漫游程序。游戏作为有限状态机运行:用户向游戏引擎发出命令时,它生成动画轨迹;CPS 则作为一个独立库运行,其仅有的输入是动画轨迹与惯用式数据库(图 9)。游戏本身,不包括 CPS 和现有 perfly 应用中的代码,大约需要 10,000 行 C++ 代码。CPS 系统也是用 C++ 编写的,尽管 DCCL 的外观看起来像 Lisp;其实现约有 19,000 行代码。

英文原文 · 第 154 页

The implementation of the game and its various animation/simulation modules was done in C++ using the IRIS Performer toolkit running on SGI workstations, and based partially on the perfly application provided by SGI (a Performer-based walkthrough application). The game operates as a finite-state machine that produces animation traces as the user issues commands to the game engine, with the CPS acting as a separate library whose sole inputs are the animation trace and the database of idioms (Figure 9). The game itself (not counting CPS or the code present in the existing perfly application) required approximately 10,000 lines of C++ code. The CPS system is also written in C++ (despite the Lisp-like appearance of DCCL) and implemented with about 19,000 lines of code.

录像末尾展示的游戏交互示例,旨在演示游戏中若干可执行活动,以及不同的 DCCL 惯用式。出于演示需要,我们从录像中剪去了 CPS 所需的规划等待时间;表 2 给出了在 SGI Onyx 上进行一次类似游戏过程时采集的性能数据。

英文原文 · 第 154 页

The sample game interaction presented at the end of our video is intended to demonstrate a number of the activities possible in the game, as well as the various DCCL idioms. For presentation purposes, the planning time required by CPS was edited out of the video; Table 2 gives performance data taken from a similar run-through of the game on an SGI Onyx.

表 2:CPS 的典型性能 / Table 2: Typical CPS Performance
命令 / Command帧数 / Num. Frames生成场景数 / Scenes GeneratedCPU 时间(秒)/ CPU Time (s)
拾取圣杯 / Pick Up Grail733947.63
拾取网 / Pick Up Net451414.74
抓狗 / Catch Dog603432.74
步行(长距离)/ Walk (long range)701411.52
步行(中距离)/ Walk (med range)20846.74
向右看 / Look Right8735.6
步行(短距离)/ Walk (short range)15845.12

译注:表 2 位于原文第 155 页,现随示例应用放置。CPU 时间是原文在 SGI Onyx 上报告的历史测量;“Pick Up Net”的原版印刷值为 14.74,扫描 PDF 的文本识别层容易误识别为 44.74。原文明确说明演示视频剪去了规划等待,这组数据不应被理解为实时逐帧计算的性能。

相关工作Related Work#

利用电影摄影原则来控制摄影机位置与场景结构,这个主题在计算机图形学和人工智能领域受到的关注相对有限。这里我们概述大部分相关工作。

英文原文 · 第 154 页

The subject of using principles from cinematography to control camera positions and scene structure has received relatively little attention in the computer graphics or AI communities. We survey most of the related work here.

He、Cohen 和 Salesin(1996)利用 DCCL 背后的部分思想,开发了一个实时控制摄影机布置的系统。他们的工作着重于拍摄多个动画角色之间的对话,并使用有限状态机来选择和生成摄影机位置。

英文原文 · 第 154 页

He, Cohen, and Salesin (1996) have developed a system for controlling camera placement in real-time using some of the ideas behind DCCL. Their work focuses on filming dialogues between multiple animated characters, and uses a finite state machine to select and generate camera positions.

已有一些系统研究如何在执行给定交互任务时,自动把摄影机放到有利的位置(Gleicher & Witkin 1992;Mackinlay、Card & Robertson 1990;Phillips、Badler & Granieri 1992)。不过,这些系统既没有尝试创建场景序列,也没有在制定其规格时应用电影摄影规则。

英文原文 · 第 154 页

A number of systems have been described for automatically placing the camera in an advantageous position when performing a given interactive task (Gleicher & Witkin 1992; Mackinlay, Card, & Robertson 1990; Phillips, Badler, & Granieri 1992). However, these systems neither attempt to create sequences of scenes, nor do they apply rules of cinematography in developing their specifications.

与我们的工作更接近的是 Karp 和 Feiner 的研究(Karp & Feiner 1990;1993):他们描述了一个用于自动生成演示的动画规划系统。他们重点关注规划引擎本身,而本文更关心如何定义一种高层声明式语言,用来编码电影摄影的专业知识。因此,这两种方法是互补的。

英文原文 · 第 154 页

In work that is closer to our own, Karp and Feiner (Karp & Feiner 1990; 1993) describe an animation planning system for generating automatic presentations. Their emphasis is on the planning engine itself, whereas the work described in this paper is more concerned with the problem of defining a high-level declarative language for encoding cinematic expertise. Thus, the two approaches complement each other.

Strassman(1994)报告了 Divaldo,这是一项雄心勃勃的实验,旨在创建“桌面戏剧”的原型系统。与我们专注于摄影机布置不同,Strassman 试图创建能够响应自然语言命令的半自主演员。CPS 与 Divaldo 同样具有互补性。

英文原文 · 第 154 页

Strassman (Strassman 1994) reports on Divaldo, an ambitious experiment to create a prototype system for “desktop theatre.” Unlike our focus on camera placement, Strassman attempts to create semi-autonomous actors who respond to natural language commands. CPS is also complementary to Divaldo.

Drucker 等人的工作(Drucker、Galyean & Zeltzer 1992;Drucker & Zeltzer 1994;1995)关注的问题是:在约束条件下,为单个镜头设置最优摄影机位置。他们采用通用的连续优化范式,为给定镜头自动调整具体摄影机参数。在我们的工作中,一组可能的摄影机配置由 DCCL 中的镜头描述和场景几何完全指定。从这一组不同镜头中进行最终选择时,依据的是每个镜头对场景的覆盖效果。我们的方法不需要通用优化搜索,而且能够保证结果具有常见的镜头形式;代价是可能的摄影机规格集合被大幅缩小。

英文原文 · 第 154 页

Drucker et al. (Drucker, Galyean, & Zeltzer 1992; Drucker & Zeltzer 1994; 1995) are concerned with the problem of setting up the optimal camera position for individual shots, subject to constraints. Specific camera parameters are automatically tuned for a given shot based on a general-purpose continuous optimization paradigm. In our work, a set of possible cameras is fully specified by the shot descriptions in DCCL and the geometry of the scene. The final selection from among this set of different shots is made according to how well each shot covers the scene. Our approach avoids the need for generic optimization searches, and it is guaranteed to result in a common shot form. The cost is a greatly reduced set of possible camera specifications.

另有几本实用著作介绍了如何根据场景几何推导底层摄影机参数(Foley 等 1990;Hearn & Baker 1994;Blinn 1988)。

英文原文 · 第 154 页

Several useful texts derive low-level camera parameters, given the geometry of the scene (Foley et al. 1990; Hearn & Baker 1994; Blinn 1988).

结论Conclusion#

最后,我们总结本文的贡献,并说明未来工作计划探索的方向。本文的主要贡献包括:

英文原文 · 第 154 页

We close by summarizing the contributions of this paper and describing the directions we intend to pursue in future work. The main contributions of this paper include:

梳理电影制作中已经确立的原则,这些原则可以用于多种计算机图形应用。

英文原文 · 第 154 页

Surveying established principles from filmmaking that can be used in a variety of computer graphics applications.

描述一种高层语言 DCCL,它通过演员在画面上的预期位置与运动来指定摄影机镜头。我们通过编码一本电影教材(Arijon 1976)中的十六种惯用式,例如图 2,论证 DCCL 可以在与专业导演和制片人相同的抽象层次上表达电影摄影知识。

英文原文 · 第 154 页

Describing a high-level language, DCCL, for specifying camera shots in terms of the desired positions and movements of actors across the screen. We have argued that DCCL represents cinematic knowledge at the same abstraction level as expert directors and producers by encoding sixteen idioms from a film textbook (Arijon 1976) (e.g., Figure 2).

提出一个与应用领域无关的编译器,它能够求解 DCCL 约束,并对摄影机进行动态控制。

英文原文 · 第 155 页

Presenting a domain-independent compiler that solves DCCL constraints and dynamically controls the camera.

描述一个与应用领域无关的启发式评估器,它利用详细的几何信息,以及关于适宜焦距、镜头时长等方面的知识,对镜头规格的质量进行排序。

英文原文 · 第 155 页

Describing a domain-independent heuristic evaluator that ranks the quality of a shot specification using detailed geometric information and knowledge of desirable focal lengths, shot durations, etc.

描述一个已经完整实现的电影摄影机规划系统 CPS,它利用 DCCL 编译器和启发式评估器,从一个独立交互式应用生成的三维数据中合成短动画场景。

英文原文 · 第 155 页

Describing a fully-implemented film camera planning system (CPS) that uses the DCCL compiler and heuristic evaluator to synthesize short animated scenes from 3D data produced by an independent, interactive application.

将 CPS 集成到一个游戏原型中,并展示游戏中的交互示例,见录像带。

英文原文 · 第 155 页

Incorporating CPS into a prototype game, and demonstrating sample interactions in the game (see videotape).

致谢Acknowledgements#

本研究部分得到以下资助:美国海军研究办公室项目 N00014-94-1-0060 和 N00014-95-1-0728,美国国家科学基金会项目 IRI-9303461 和 CCR-9553199,ARPA/Rome Labs 项目 F30602-95-I-0024,Alfred P. Sloan 研究奖助金 BR-3495,以及 Interval、Microsoft、Rockwell 和 Xerox 的企业捐赠。

英文原文 · 第 155 页

This research was funded in part by Office of Naval Research grants N00014-94-1-0060 and N00014-95-1-0728, National Science Foundation grants IRI-9303461 and CCR-9553199, ARPA/Rome Labs grant F30602-95-I-0024, an Alfred P. Sloan Research Fellowship (BR-3495), and industrial gifts from Interval, Microsoft, Rockwell, and Xerox.

参考文献References#

译注:以下保留原文第 155 页的全部 17 条书目、排列顺序及发表时状态;中文为条目翻译,英文对照保留原始书目信息。第 3 条是作者的技术报告,其作者次序与本文首页略有不同,按各自来源保留。第 9 条原文仍标记“将发表于 SIGGRAPH ’96”,不以事后出版信息替换。

[1] Arijon, D. 1976。《电影语言语法》。纽约:Communication Arts Books,Hastings House 出版社。

英文原文 · 第 155 页

Arijon, D. 1976. Grammar of the Film Language. New York: Communication Arts Books, Hastings House, Publishers.

[2] Blinn, J. 1988。《我在哪里?我在看什么?》。IEEE Computer Graphics and Applications,76–81 页。

英文原文 · 第 155 页

Blinn, J. 1988. Where am I? What am I looking at? IEEE Computer Graphics and Applications 76–81.

[3] Christianson, D. B.;Anderson, S. E.;He, L.;Weld, D. S.;Salesin, D. H.;Cohen, M. F. 1996。《用于自动摄影的声明式摄影机控制》。技术报告 UW-CSE96-02-01,华盛顿大学计算机科学与工程系。

英文原文 · 第 155 页

Christianson, D. B., Anderson, S. E., He, L., Weld, D. S., Salesin, D. H., and Cohen, M. F. 1996. Declarative camera control for automatic cinematography. TR UW-CSE96-02-01, University of Washington Department of Computer Science and Engineering.

[4] Drucker, S. M.;Zeltzer, D. 1994。《虚拟环境中的智能摄影机控制》。载于 Graphics Interface ’94 会议论文集,190–199 页。加拿大阿尔伯塔省班夫:加拿大信息处理学会。

英文原文 · 第 155 页

Drucker, S. M., and Zeltzer, D. 1994. Intelligent camera control in a virtual environment. In Proceedings of Graphics Interface ’94, 190–199. Banff, Alberta, Canada: Canadian Information Processing Society.

[5] Drucker, S. M.;Zeltzer, D. 1995。《Camdroid:一个智能摄影机控制系统》。载于 SIGGRAPH 交互式三维图形学研讨会 ’95 论文集。

英文原文 · 第 155 页

Drucker, S. M., and Zeltzer, D. 1995. Camdroid: A system for intelligent camera control. In Proceedings of the SIGGRAPH Symposium on Interactive 3D Graphics ’95.

[6] Drucker, S. M.;Galyean, T. A.;Zeltzer, D. 1992。《CINEMA:一个程序式摄影机运动系统》。载于 Zeltzer, D. 编,Computer Graphics(1992 年交互式三维图形学研讨会),第 25 卷,67–70 页。

英文原文 · 第 155 页

Drucker, S. M., Galyean, T. A., and Zeltzer, D. 1992. CINEMA: A system for procedural camera movements. In Zeltzer, D., ed., Computer Graphics (1992 Symposium on Interactive 3D Graphics), volume 25, 67–70.

[7] Foley, J. D.;van Dam, A.;Feiner, S. K.;Hughes, J. F. 1990。《计算机图形学:原理与实践》,第 2 版。美国马萨诸塞州雷丁:Addison-Wesley 出版公司。

英文原文 · 第 155 页

Foley, J. D., van Dam, A., Feiner, S. K., and Hughes, J. F. 1990. Computer Graphics, Principles and Practice. Reading, Massachusetts: Addison-Wesley Publishing Company, second edition.

[8] Gleicher, M.;Witkin, A. 1992。《透过镜头的摄影机控制》。载于 Catmull, E. E. 编,Computer Graphics(SIGGRAPH ’92 会议论文集),第 26 卷,331–340 页。

英文原文 · 第 155 页

Gleicher, M., and Witkin, A. 1992. Through-the-lens camera control. In Catmull, E. E., ed., Computer Graphics (SIGGRAPH ’92 Proceedings), volume 26, 331–340.

[9] He, L.;Cohen, M. F.;Salesin, D. H. 1996。《虚拟摄影:自动实时摄影机控制与导演的一种范式》。将发表于 SIGGRAPH ’96。

英文原文 · 第 155 页

He, L., Cohen, M. F., and Salesin, D. H. 1996. Virtual cinematography: A paradigm for automatic real-time camera control and directing. To appear at SIGGRAPH ’96.

[10] Hearn, D.;Baker, M. P. 1994。《计算机图形学》,第 2 版。美国新泽西州恩格尔伍德克利夫斯:Prentice Hall。

英文原文 · 第 155 页

Hearn, D., and Baker, M. P. 1994. Computer Graphics. Englewood Cliffs, New Jersey: Prentice Hall, second edition.

[11] Karp, P.;Feiner, S. 1990。《自动生成动画演示中的问题》。载于 Graphics Interface ’90 会议论文集,39–48 页。

英文原文 · 第 155 页

Karp, P., and Feiner, S. 1990. Issues in the automated generation of animated presentations. In Proceedings of Graphics Interface ’90, 39–48.

[12] Karp, P.;Feiner, S. 1993。《使用任务分解与启发式推理的动画自动演示规划》。载于 Graphics Interface ’93 会议论文集,118–127 页。加拿大安大略省多伦多:加拿大信息处理学会。

英文原文 · 第 155 页

Karp, P., and Feiner, S. 1993. Automated presentation planning of animation using task decomposition with heuristic reasoning. In Proceedings of Graphics Interface ’93, 118–127. Toronto, Ontario, Canada: Canadian Information Processing Society.

[13] Lukas, C. 1985。《电影与电视导演》。美国纽约州加登城:Anchor Press/Doubleday。

英文原文 · 第 155 页

Lukas, C. 1985. Directing for Film and Television. Garden City, N.Y.: Anchor Press/Doubleday.

[14] Mackinlay, J. D.;Card, S. K.;Robertson, G. G. 1990。《在虚拟三维工作空间中快速而可控地移动》。载于 Baskett, F. 编,Computer Graphics(SIGGRAPH ’90 会议论文集),第 24 卷,171–176 页。

英文原文 · 第 155 页

Mackinlay, J. D., Card, S. K., and Robertson, G. G. 1990. Rapid controlled movement through a virtual 3D workspace. In Baskett, F., ed., Computer Graphics (SIGGRAPH ’90 Proceedings), volume 24, 171–176.

[15] Mascelli, J. V. 1965。《电影摄影的五个 C》。好莱坞:Cine/Grafic Publications。

英文原文 · 第 155 页

Mascelli, J. V. 1965. The Five C’s of Cinematography. Hollywood: Cine/Grafic Publications.

[16] Phillips, C. B.;Badler, N. I.;Granieri, J. 1992。《用于三维直接操纵的自动视图控制》。载于 Zeltzer, D. 编,Computer Graphics(1992 年交互式三维图形学研讨会),第 25 卷,71–74 页。

英文原文 · 第 155 页

Phillips, C. B., Badler, N. I., and Granieri, J. 1992. Automatic viewing control for 3D direct manipulation. In Zeltzer, D., ed., Computer Graphics (1992 Symposium on Interactive 3D Graphics), volume 25, 71–74.

[17] Strassman, S. 1994。《半自主动画演员》。载于 AAAI-94 会议论文集,128–134 页。

英文原文 · 第 155 页

Strassman, S. 1994. Semi-autonomous animated actors. In Proceedings of the AAAI-94, 128–134.

原文脚注Original Footnotes#

1. 目前大多数游戏仍然只为每位参与者提供单一的主观视点镜头,其中 Doom 是典型例子;不过,Alone in the Dark、Fade 2 Black 和 Virtua Fighter 等一些游戏,已开始采用更加多样的视角。返回正文

英文原文 · 第 148 页

¹ Most current games, of which Doom is the classic example, still provide each participant with a single point-of-view shot; however, a number of games such as Alone in the Dark, Fade 2 Black and Virtua Fighter have begun to employ a wider variety of perspectives.

2. 一个显著的例外是阿尔弗雷德·希区柯克的《夺魂索》(Rope):它以单个镜头拍摄,尽管其中存在经过掩饰的中断。返回正文

英文原文 · 第 149 页

² A notable exception is Alfred Hitchcock's Rope, which was filmed in a single shot, albeit with disguised breaks.

3. 要理解为什么需要这个参数,请回想:经过式片段会让摄影机处于静止位置,朝向一个穿过其视野的演员。图 2 的第一个镜头就是经过式片段的例子。请注意,Arijon(1976)表达这个镜头时,并不指定持续时间,而是用箭头表示在拍摄期间演员应当走过的运动范围。DCCL 使用运动端点来支持同样的声明式规格,并依靠编译器计算能够产生适当运动范围的时间边界。返回正文

英文原文 · 第 150 页

³ To understand why this argument is necessary, recall that a go-by fragment results in a static camera position directed at an actor who moves across the field of view. An example of a go-by fragment is the first shot of Figure 2. Note that Arijon (1976) expresses the shot not by specifying the temporal duration, but rather by indicating (with arrows) the range of motion that the actor should cover while the film is rolling. DCCL uses movement endpoints to allow the same type of declarative specification and relies upon the compiler to calculate the temporal bounds that will yield the proper range of motion.

4. 这也解释了 out-right 和 out-left 的定义。Arijon(1976)规定,演员移出画面或进入画面的镜头,应当在演员消失后三帧,或出现前三帧处切换。因此,我们根据三个画格时间内走过的距离,定义 out-right 和 out-left。返回正文

英文原文 · 第 150 页

⁴ This explains the definition of out-right and out-left. Arijon (1976) specifies that shots in which an actor moves off-screen (or onto the screen) should be cut three frames after (or before) the actor disappears (or appears). As a result we define out-right and out-left in terms of the distance traveled while three frames transpire.

5. 通常,摄影机被限制在兴趣轴线的一侧。不过,有时也会出现“换边”的机会,例如演员转身,朝一个中性方向行走时。返回正文

英文原文 · 第 153 页

⁵ Typically, the camera is restricted to one side of the line of interest. However, opportunities to “switch sides” sometimes present themselves, such as when an actor turns to walk in a neutral direction.

6. 事实上,如果有 n 个场景,每个场景都有 k 个候选惯用式作为子节点,那么影片树就表示 nk 种可能的惯用式组合。返回正文

英文原文 · 第 153 页

⁶ Indeed, if there are n scenes and each scene has k candidate idioms as children, then the film tree represents nᵏ possible idiom combinations.

译注:原注 6 印刷为 nk,这里保留原式。按它给出的定义——n 个场景、每个场景 k 种独立选择——组合数应为 kn。这项数学笔误不改变原文关于候选影片组合空间的论述。

中英术语表Translator’s Glossary#

本节为译者整理,并非原论文组成部分。景别名称按本文给出的身体截取位置理解;不同电影教材的中文名称不完全一致。

英文本译文用语本文中的含义
Declarative Camera Control Language (DCCL)声明式摄影机控制语言以摄影惯用式、镜头和片段描述拍摄意图的语言。
Camera Planning System (CPS)摄影机规划系统接收动画轨迹与惯用式规格,编译并选择摄影机帧序列的系统。
film / film sequence / scene影片/影片段落/场景影片树中的三个层次;这里的场景是叙事与活动分区,不是引擎关卡。
shot镜头从开机到关机的一段连续拍摄,可包含多个片段。
fragment片段摄影机保持静止或执行一种简单运动的时间区间。
idiom摄影惯用式适合某类动作的一组典型镜头安排。
view / range景别本论文以人物在画面中的截取高度来区分。
extreme closeup / closeup / medium / full / long大特写/近景/中景/全景/远景以第 149 页的具体定义为准;代码还使用 longshot、mediumshot 等拼写。
camera placement / placement摄影机布置/机位布置摄影机相对于演员和兴趣轴线的配置。
line of interest兴趣轴线连接互动演员、沿演员运动或朝向建立的有向轴线。
internal reverse / external reverse内反打/外反打图 1 中相对于演员和轴线的两类反打机位。
parallel / apex平行机位/顶角机位图 1 定义的两类布置;apex 可同时呈现两名演员。
static / go-by静止片段/经过式片段二者的摄影机均不改变位置与朝向;go-by 用于演员穿越视野的运动。
panning / tracking摇摄/跟移前者保持位置、改变朝向;后者保持朝向、跟随演员改变位置。
point of view (POV)主观视点摄影机与角色一同运动、从角色视点观看的片段。
primary moment基准时刻指定的机位布置必须成立的时刻。
movement endpoint运动端点画面上的起止位置;与演员速度一起约束片段的时间边界。
animation trace动画轨迹包括逐帧位置、速度、关节位置、活动标签及影片段落信息的记录。
frame specification / frame array帧规格/帧数组每帧的摄影机三维位置、朝向和视场角,以及这些规格的序列。
sequence planner / heuristic evaluator序列规划器/启发式评估器分别负责划分场景与选择候选;本文的前者依赖应用情节,后者使用通用摄影规则。
time contraction / parallel editing时间压缩/平行剪辑前者省略部分仿真时间;后者交织不同故事线。

继续阅读:声明式摄影机控制:理解 DCCL 与自动摄影。