本文基于Craig Reynolds于1986年发布的《Flocks, Herds, and Schools: A Distributed Behavioral Model》进行学习和总结
通过一段原文,一段分析的方法,进行分析
·
·
The aggregate motion of a flock of birds, a herd of land animals, or a
school of fish is a beautiful and familiar part of the natural world.
But this type of complex motion is rarely seen in computer animation.
This paper explores an approach based on simulation as an alternative
to scripting the paths of each bird individually. The simulated flock
is an elaboration of a particle system, with the simulated birds being
the particles. The aggregate motion of the simulated flock is created
by a distributed behavioral model much like that at work in a natural
flock; the birds choose their own course. Each simulated bird is
implemented as an independent actor that navigates according to its
local perception of the dynamic environment, the laws of simulated
physics that rule its motion, and a set of behaviors programmed into
it by the “animator.” The aggregate motion of the simulated flock is
the result of the dense interaction of the relatively simple behaviors
of the individual simulated birds.
首先作者为我们介绍了,在自然界之中,无论是鸟群、鱼群还是陆地生物群落,它们的群体性运动都是非常壮观的,然而在动画领域(当时)却极少的出现。因此这篇论文提出了一种基于模拟的方法,用它来模拟每个独立个体的运动路径。这个模拟出来的模型跟自然中的鸟群运动模型十分相似,每个小鸟都是一个独立的角色。通过对动态环境的感知,物理定律来模拟运动,以及绘图程序这三部分,来实现这样一个运动感知模型 。
并向我们阐述了模型的运行逻辑,模拟鸟群的整体运动是模拟鸟群个体相对简单行为密集相互作用的结果。即,个体相互作用以影响整体。
·
The motion of a flock of birds is one of nature’s delights. Flocks and related synchronized group behaviors such as schools of fish or herds of land animals are both beautiful to watch and intriguing to contemplate. A flock* exhibits many contrasts. It is made up of discrete birds yet overall motion seems fluid; it is simple in concept yet is so visually complex, Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct it seems randomly arrayed and yet is magnificently synchronized. Perhaps most puzzling is the strong impression of intentional, centralized control. Yet all evidence indicates that flock motion must be merely the aggregate result of the actions of individual animals, each acting solely on the basis of its own local perception of the world.
第一段,作者给我们通俗的介绍了一下自然中鸟群的运动,以及通过计算机编程、绘图进行实现。这个模型是由离散的鸟类个体组成的,在整体上表现出流动性。作者认为这个概念易于理解和实现,但是完成视觉实现却很复杂。这个模型在是由离散的鸟类随机排列的,但却非常的同步。群体运动是个体动物行为的总和,每一种个体的行为都基于该个体对于世界的局部认知。
·
·
One area of interest within computer animation is the description and control of all types of motion. Computer animators seek both to invent wholly new types of abstract motion and to duplicate (or make variations on) the motions found in the real world. At first glance, producing an animated, computer graphic portrayal of a flock of birds presents significant difficulties. Scripting the path of a large number of individual objects using traditional computer animation techniques would be tedious. Given the complex paths that birds follow, it is doubtful this specification could be made without error. Even if a reasonable number of suitable paths could be described, it is unlikely that the constraints of flock motion could be maintained (for example, preventing collisions between all birds at each frame). Finally, a flock scripted in this manner would be hard to edit (for example, to alter the course of all birds for a portion of the animation). It is not impossible to script flock motion, but a better approach is needed for efficient, robust, and believable animation of flocks and related group motions.
第二段为我们介绍了计算机动画领域以及对于鸟群模型的动画实现。对于鸟群动画的电脑制作是很复杂的,如果用传统的动画技术,为大量的单个对象的路径编写脚本是乏味的。同时,在考虑了在整体鸟群模型中,个体所分别遵循的复杂的路径,这个方法能否正确实现也是值得怀疑的。因此传统方法实现的鸟群模型很难去编写。这里就作者就提出了需要一种高效、鲁棒性和可信性强的鸟群制作、绘制方法。
This paper describes one such approach. This approach assumes a flock is simply the result of the interaction between the behaviors of individual birds. To simulate a flock we simulate the behavior of an individual bird (or at least that portion of the bird’s behavior that allows it to participate in a flock). To support this behavioral “control structure” we must also simulate portions of the bird’s perceptual mechanisms and aspects of the physics of aerodynamic flight. If this simulated bird model has the correct flock-member behavior, all that should be required to create a simulated flock is to create some instances of the simulated bird model and allow them to interact.
这里就是关于作者提出的Boids模型的概述。**假设鸟群只是单个鸟类行为相互作用的结果。**为了模拟鸟群,我们模拟一只鸟的行为(或者至少是那只鸟参与鸟群的部分行为)。为了支持这种行为“控制结构”,我们还必须模拟鸟类的部分感知机制和空气动力飞行的物理方面。如果这个模拟的鸟类模型具有正确的鸟群成员行为,那么创建一个模拟的鸟群所需要的就是创建一些模拟的鸟类模型的实例,并允许它们进行交互。通过对单个个体不断施加条件,通过个体的运动模拟出对鸟群的整体运动。
Some experiments with this sort of simulated flock are described in more detail in the remainder of this paper. The suc-cess and validity of these simulations is difficult to measure objectively. They do seem to agree well with certain criteria [25] and some statistical properties [23] of natural flocks and schools which have been reported by the zoological and behavioral sciences. Perhaps more significantly, many people who view these animated flocks immediately recognize them as a representation of a natural flock, and find them similarly delightful to watch.
模型模拟的准确性和有效性很难去客观的衡量。模拟出的动物群体会符合动物学和行为学研究和报到出的统计学规律,更重要的是人们看到这些群体的模拟动画时,可以立刻就认出这是自然的群落,并且发现这是很赏心悦目的。
这一部分叙述了是如何通过力场这一物理概念,他们是如何产生作用的,进而对整个群体产生对应的作用。
在这里我们主要分析一下它的核心段落。
如下:
That animation was produced using a technique completely unlike the one described in this paper and apparently not specifically intended for flock modeling. But the underlying concept is useful and interesting in its own right. The following overview is based on unpublished communications [3]. The software is informally called “the force field animation sys- tem.” Force fields are defined by a 3 x 3 matrix operator that transform from a point in space (where an object is located) to an acceleration vector; the birds trace paths along the “phase portrait” of the force field. There are “rejection forces” around each bird and around static objects. The force field associated with each object has a bounding box, so object interactions can be culled according to bounding box tests. An incremental, linear time algorithm finds bounding box intersections. The “animator” defines the space field(s) and sets the initial positions, orientations, and velocities of objects. The rest of the simulation is automatic.
其向我们介绍了,在模拟群聚中,个体力场的数学描述。在后续的计算机程序中,也对其进行实现。文章这样写道:力场由一个3×3的矩阵运算定义,将从该点到空间中的一点转换为一个加速度矢量;鸟沿着力场的“相位图”来追踪路径。
在每个鸟和静态物体的周围都有排斥力。与每一个物体相关联的力场都有一个边界,因此可以根据边界框测试来实现物体边界的相互作用。线性时间增量算法可以计算边界框之间的交点。通过动画来定义空间场,并设定物体的初始位置、方向和速度(其实就是位置矢量和速度矢量)。其余的模拟都是自动进行的。
Underlying the bold flock model is a slight generalization of particle systems. In what might be called a “subobject sys- tem,” Reeves’s dot-like particles are replaced by an entire geometrical object consisting of a full local coordinate system and a reference tO a geometrical shape model. The use of shapes instead of dots is visually significant, but the more fundamental difference is that individual subobjects have a more complex geometrical state: they now have orientation.
Another difference between bold flocks and particle systems is not as well defined. The behavior of boids is generally more complex than the behaviors for particles as described in the literature. The present bold behavior model might be about one or two orders of magnitude more complex than typical particle behavior. However this is a difference of degree, not of kind. And neither simulated behavior is nearly as complex as that of a real bird.
这里我们着重分析这两段。
作者在这部分主要是想通过和另一个已有的相似模型,颗粒系统。进行对比介绍。
模拟群和粒子系统联系是十分紧密的。作者这里介绍了粒子系统的构成和属性。粒子系统的实现有火、烟、云等等。粒子系统是大量单个粒子的集合,每个粒子都有自己的行为。粒子会被创造、老化和消亡。他们由特定的行为可以改变自己的状态,包括颜色、不透明度、位置和速度。
在Boids群体模型之下,是对粒子系统的一种概括。 在所谓的“子对象系统”中,点状粒子被一个由完整的局部坐标系统和一个几何形状模型的参考组成的整个几何对象所取代。使用形状而不是圆点在视觉上很重要,但更根本的区别在于单个子对象有更复杂的几何状态:它们现在有了方向。
二者的另一个区别在Boids模型和粒子系统模型还没有很好的界定。Boids的行为通常比文献中描述的粒子的行为更复杂。目前的Boids模型可能比典型的粒子行为复杂一到两个数量级。然而,这只是程度上的不同,而不是性质上的不同。虽然,这两种模拟行为都没有真正的鸟类复杂。
二者最明显的区别是粒子系统中的粒子并不会产生相互作用,而Boids中,鸟类是通过个体间较强的相互作用才能正确的聚集在一起。Boids行为同时依赖于内部状态和外部状态。
分割线