Behavior行为篇
作者 钱麟
1.Avoid Behavior(避免行为):避免物体与物体、代理物体与代理物体、物体与代理物体之间的相互碰撞(在空间中重合)。

None:选择一个物体避免碰撞。
Multiple Selection:选择数个物体,使之互不碰撞。
Look Ahead:在当前帧前多少帧时就开始计算何时将要发生碰撞。缺省值为30帧。
Hard Radius:从物体的轴心(pivot point)到边缘的距离,在这段距离内不会产生相交现象。注意一般都要把轴心先对准物体的中心位置。
Display Hard Radius:在场景中显示Hard Radius的范围。
Detour Angle:代理物体为避免碰撞产生的转向的最大角度。缺省为360度。
Brake Pressure:形象化地讲,决定物体的“刹车”性能好不好。
Strength:排斥力的强度。
Radius:代理物体产生排斥范围的半径。
Fall off:排斥力强度沿半径衰减,1代表线性衰减,值越高衰减得越快,缺省值为3。
Display Repel Radius:显示排斥半径。
Strength:如果场景中有物体被赋予了向量场(vector field),加大此值可以加大场的影响力。
Falloff:向量场中力量强度的衰减,值越高衰减得越快。
最后是Display During Solve组,控制在计算时场景中的显示问题。
2.Orientation Behavior(方向行为):控制代理物体(在沿路径运动时)的旋转。Relative:缺省时为关闭,即不旋转,打开后就可结合下面的Min/Max
Heading进行设置。注意行为的方向和代理物体的朝向一致。

Heading组>Min Heading/Max Heading:物体在水平面上的旋转角度见图,这两个参数控制最大旋转角度和最小旋转角度。例如要想让物体在0到90度之间旋转,就把最小值设为0、最大值设为90。

Max Heading Velocity:每帧代理物体的最大角度加速度。
Head Response::物体沿路径运动时代理物体随之转向的反应速度,1为最大值,反应最快。
Pitch组>relative:打开物体的在沿路径运动时的前后摇晃功能。
Min/Max Pitch:最小/最大前后摇晃度数。
Max Ptich Velocity:每帧前后摇晃的最大角度加速度。
Pitch Response:物体沿路径运动时代理物体随之前后摇晃的反应速度,1为最大值,反应最快。
Banking组>Max Bank:代理物体左右摇晃的幅度,缺省为30度。
Max Bank Velocity:每帧左右摇晃的最大角度加速度。
Bank per Turn:在当前帧转几度。
3.Path Follow Behavior(路径追随行为)

None按钮:在场景中点取一条路径(可以是nurbs线或spline)
Radius:路径的辐射半径。
Turning组>awareness:决定代理物体自动适配曲线进行运动的自然流畅程度,最大值为1时适配得最好。
Deviation:控制awareness值可以自由随机变化的程度。
Starting Point>Beginning of the path:代理物体一开始出现在路径的起始点上。(路径的起始点可以用make
first功能来指定,属于max的基本知识,请参阅有关资料。)
End of the path:代理物体一开始出现在路径的最后一个节点上。
Nearest Point:开始点在离代理物体最近的那个节点上。
Direction>forwards:代理物体沿路径的起始点到终止点运动。
Backwards:代理物体沿路径的终止点到起始点运动。
Action at end of the path>loop:在一段动画完后重复在路径上运动,循环播放。
Reverse:在一段动画完后回放,即沿路径倒着开。
Continue:沿结束时的方向继续向前开。
Seed:设置一个能使awareness随机变化的值。
下面两个颜色块显示在计算时,路径向量的颜色和目标物体的颜色。
两个Display选项决定是否在计算时显示向量路径和目标物体。
Target Scale:设置目标物体图标大小。缺省值为5.0。
4.Repel Behavior(排斥行为):两个物体在接近到一定程度时会相互躲避对方。

None:选择一个物体作为排斥目标。
Multiple Selection:选择多个物体,使它们能够互相排斥。
Closest Source Only:每一个代理物体只被离它最近的一个目标物体排斥。
Average of Sources:所有的代理物体根据多个目标的综合效果从一个点上被排斥。
Method>Angle:根据代理物体和目标物体(目标物体也可以是一个代理物体)的角度计算。
Force:直接在两个物体之间产生不变的力。是缺省方式。
Raius>Use Radii:打开后,代理物体只有在空间半径内接近到一定距离才会发生排斥作用。
Inner/Outer Radius:内外两个半径,其中用falloff衰减来控制强度。
Display Radii:显示半径范围。
下面的颜色块是控制在计算时在场景中显示力强度。
5.Seek Behavior(寻找行为):使物体朝目标接近。

None:选择一个物体作为接近目标。
Multiple Selection:选择多个物体,使它们能够互相靠拢。
Seek Target> Closest Source Only:每一个代理物体只和它最近的一个目标物体接近。
Average of Sources:所有的代理物体根据多个目标的综合效果向一个点靠拢。
Method>Angle:根据代理物体和目标物体(目标物体也可以是一个代理物体)的角度计算。
Force:直接在两个物体之间产生不变的力。是缺省方式。 Raius>Use
Radii:打开后,代理物体只有在空间半径内接近到一定距离才会发生靠拢效果
Inner/Outer Radius:内外两个半径,其中用falloff衰减来控制强度。
Display Radii:显示半径范围。
下面的颜色块是控制在计算时在场景中显示力强度。
6.Scripted Behavior(脚本语言行为):用Maxscript来控制行为。

Behavior Type:有Force(力)、Constraint(限制)、Orientatin(方向)三种行为方式可选择。
Script Context Name:脚本的名字。
Edit Maxscript:打开窗口编辑Maxscript。
7.Space Warp Behavior(空间扭曲行为):为代理物体设置如风力场、重力场等。

None:用此按钮点取场景中的空间扭曲物体。
下面的颜色块是用来显示空间扭曲力向量图标的颜色的。
8.Speed Vary Behavior(速度变化行为)

Time组>period:使用新速度前用多少帧进行过渡。
Deviation:控制period值可以自由随机变化的程度
Speed组,这里面的参数我们可以用一个公式来描述:新速度=(代理物体的Average
Speed*Center)*(1 + RN*Center Deviation),其中RN是一个在-1和1之间随机取的值。
Acceleration:代理物体的加速度,值为0时速度会产生瞬间的突变。
Deviation:控制Acceleration值可以自由随机变化的程度。
Seed:控制整个速度的随机程度。
9.Surface Arrive Behavior(表面到达行为):使物体到达目标物体的法线表面。

None:选择一个物体作为到达目标。
Multiple Selection:选择多个物体作为到达目标,我们可以设置代理物体随机地被吸引在任意一个目标表面上。
Arrival组>disable after arriving:当物体完成任务到达目标表面时自动关闭这一行为。
Rate:值为1时为使用最大加速度计算,缺省值为0.5。
Deviation:控制Rate值可以自由随机变化的程度。 Speed:达到表面的速度,还要根据目标表面是否动画来决定。
Deviation控制Speed值可以自由随机变化的程度。
Distance:在多少距离的范围内,会产生接近表面行为。
Deviation:控制Distance值可以自由随机变化的程度。
Location组>offset:代理物体离物体法线表面相隔多少距离,缺省为0。
Facing:打开时代理物体只会接触到三角面上。
Random:随便取一点作为接触点。
Closest:取目标物体上离代理物体最近的点作为接触点。
Every frame:计算时每一帧都计算一下目标物体上离代理物体最近的点作为接触点。极其耗时。
Display offset:如果代理物体和目标物体表面设置了相隔距离,用此显示出来。
Approach组>Height:设置离接触点有一定距离的一个点,让代理物体先到这个位置。
Deviation:控制Height值可以自由随机变化的程度。
Descent Start:代理物体到height设置的点后,再决定开始接近接触点的距离。
Deviation:控制Descent Start值可以自由随机变化的程度。
Off this normal:设置一个向量表示接近的朝向。
X/Y/Z/:设置这个向量在空间中的坐标。
Seed:控制整个Deviation的随机程度。
下面的颜色块是设置目标物体在计算时的显示颜色。
Target Scale:目标物体在计算时的图标尺寸。
10.Surface Follow Behavior(跟随表面行为):让物体沿目标表面运动。

None:选择一个物体作为目标表面物体。
Multiple Selection:选择多个物体作为目标表面物体,我们可以设置代理物体随机地被吸引在任意一个目标表面上。
Projection Vector组>Use Projection:保证物体在任何情况下根据向量指定的方向运动。
X/Y/Z:让向量使用世界坐标。
Position on Surface组>Offset:物体在沿目标表面运动时和目标表面隔开多少距离。
Display offset:在视图中显示隔开的距离。 下面的颜色块是设置目标物体在计算时的显示颜色。
Target Scale:目标物体在计算时的图标尺寸。
11.Wall Repel Behavior(墙壁排斥行为):和普通排斥行为不同的是,墙壁排斥行为的阻隔对象是平面物体(Grid),就象在一个封闭的房间内,角色不会走到墙壁外面去。

Grid from which to repel:点取平面物体作为阻隔对象。
Method>Angle:根据代理物体和目标物体(目标物体也可以是一个代理物体)的角度计算。
Force:直接在两个物体之间产生不变的力。是缺省方式。
Positive Axis:只会在坐标轴的正方向产生阻隔。
Negative Axis:只会在坐标轴的负方向产生阻隔。
Both Axis:在坐标轴的正负方向都会产生阻隔。
Distance组>Use Distance:打开后,物体只有在空间内接近到一定距离才会发生排斥效果。
Inner/Outer Distance:内外两个区域距离,其中用falloff衰减来控制强度。
Display Distance:显示距离范围。
Grid Spacing:用于描述内外区域的网格大小。
End Force at grid edges:打开时排斥力只从网格平面发出,关闭时那个平面就变成了一个向四周无限延伸的平面,力从一个无限巨大的平面中产生。
下面的颜色块表示在计算时是否显示力以及显示的颜色。
12.Wall Seek Behavior(寻找墙壁行为):和墙壁排斥行为相反,物体向一个平面靠近。

Grid to seek:指定物体向哪个平面靠近。
Method>Angle:根据代理物体和目标物体(目标物体也可以是一个代理物体)的角度计算。
Force:直接在两个物体之间产生不变的力。是缺省方式。
Positive Axis:只会在坐标轴的正方向产生吸引。
Negative Axis:只会在坐标轴的负方向产生吸引。
Both Axis:在坐标轴的正负方向都会产生吸引。
Distance组>Use Distance:打开后,物体只有在空间内接近到一定距离才会发生吸引效果。
Inner/Outer Distance:内外两个区域距离,其中用falloff衰减来控制强度。
Display Distance:显示距离范围。
Grid Spacing:用于描述内外区域的网格大小。
End Force at grid edges:打开时吸引力只从网格平面发出,关闭时那个平面就变成了一个向四周无限延伸的平面,力从一个无限巨大的平面中产生。
下面的颜色块表示在计算时是否显示力以及显示的颜色。
13.Wander Behavior(散步行为):控制无序的走动效果。

Time组>Period:在转向一个新的方向前用多少帧过度。
Deviation:控制Period值可以自由随机变化的程度。
Turning组>Angle:设置角色能转动的幅度,取值范围为0.5—1,取1时角色会到处乱转。
Turn Period:角色做转动动作时的速度。
Deviation:控制Turn Period值可以自由随机变化的程度。
Seed:控制整个散步行为的随机动画。
下面的颜色块表示在计算时是否显示力以及显示的颜色。