问题对象---【魔立方】
该问题的对象来确定何时进行一个或多个操作中存在的问题的对象的动作列表。它不生成明显的存在在编辑器中或在渲染时。
您可以将问题对象通过单击发射器的问题选项卡中的“添加问题”按钮(它增加了问题到场景,并把它插入发射器的问题的列表)仅添加到场景中。一旦做到这一点,你也可以将问题对象拖放到任何其他发射器的问题清单中的场景,如果需要的话。
每个问题具有至少一个参数和有时的条件的列表。这些条件包括测试,如粒子值是否小于指定的值小于或大于。该粒子相比,你给的值,如果条件得到满足的问题是说,有'经过'和问题中列出的任何行动或措施都进行了粒子。如果条件不满足的问题是说,有'失败'和动作不执行。
发射器可以有任意数量的问题的。每个问题对象必须存在于发射器的问题列表,它进行测试。
重要提示:在所有,直到你有一个问题将不会做任何事情:
- 其插入到发射器的问题列表
- 添加至少一个动作对象的问题的操作列表
如果你愿意,你可以用同样的问题对象不止一个发射器。只是问题的对象拖动到您要使用的问题每个发射器的问题列表。
问对象界面
默认情况下,问题对象的界面看起来像这样:
多个问题
如果您只有在发射一个问题,那么这部分是不相关的。如果你有一个以上的问题,X-粒子可以通过两种不同的方式,这可以通过“模式”下拉列表中的发射器的问题选项卡中选择对待他们。
试试这些模式了,创建两个问题的对象。首先应询问如果粒子年龄大于30帧,第二如果粒子年龄大于60帧。这两个问题拖到发射器的问题选项卡列表中,用30帧问下60帧的问题,将模式更改为“严格的顺序”。然后,一个Action对象添加到每个问题。在30帧的问题,使行动改变粒子的颜色为红色; 在60帧问题作出行动改变颜色为蓝色。
播放动画。粒子应该从其默认改变颜色(绿色,除非改变它),以红色,当每个粒子是30帧老,然后以蓝色当粒子是60帧老了。
只有一次,每个测试问题
在大多数情况下,你可能会想测试每一个问题,直到它通过了,那么没有了。要做到这一点,拖动对象问题进入“测试,并通过一次”为首的名单。(在这里,如果你点击发射器“添加问题”按钮的问题将放在这里。)这个列表有两种可能的模式。
模式:严格顺序
这种模式很容易理解。如果选择的模式是“严格按顺序',那么每个问题被要求在严格的顺序。假设你有上述的设置,但后来添加的询问粒子年龄是否超过60帧的第二个问题。你把这个问题 - 这是很重要的 - 下面的问题列表中的弟—个问题。
第二个问题不会问,直到弟—个被通过为真。换句话说,在60帧的问题不会被要求的粒子,直至30秒的问题是否已过去。这很好,完全符合逻辑的。但要在上面的问题列表中的30帧的问题,如果你拖动60帧的问题是什么?现在的30帧的问题甚至不会被测试,直到60帧的问题已通过测试之后。在这种情况下,你将看到的是,在60帧Questiont时生效的粒子大于60帧的时候,则在紧接着的下一个帧中的30帧会问(和将传递,由于粒子是当然不止30帧左右)。
模式:旁路未答复的问题
让我们回到原来的设置有两个问题,一个测试粒子年龄要超过30帧,另60帧。在60帧的问题是以下列表中的30帧的质询。
如果播放动画,你会看到完全一样的“严格的顺序”模式。现在拖动上面的30帧问题60帧的问题,并再次运行动画。你看到的粒子变为红色时,每30帧的时候,但从来没有变为蓝色。为什么呢?
在这种模式下,发射器将测试反过来每个问题,直到它找到一个其中穿过。在这种情况下,在30帧的问题将通过将60帧的问题之前,即使是在问题列表中的60帧中的问题如下。但是,在下一帧粒子“知道”了30帧的问题已经通过,并期待在列表中的下一个问题。由于不存在下一个问题,在60帧的问题将永远不会被执行; 它已经绕过了30帧的问题。
虽然这听起来很复杂,其实是两个比较有用的方式,因此默认设置。
还有一个重要的教训是:始终确保你的问题是在正确的顺序,你选择了正确的方式,你想要做什么。如果不是,你会得到意想不到的效果!
可以防止个别问题被要求禁用它们在对象管理器或从问题列表中删除它们。
考试题型反复
正如您可以从发射器的界面看到,其实在发射器的问题标签问题的两个列表。弟—个列表为首“测试,并通过一次”,包括上述的模式设置。这些问题,不管是哪个顺序,他们在回答,将只通过一次,任何粒子。这意味着相关联的动作(多个)将仅一次通过的问题引起的。
有时理想的是测试在每个帧中的问题,并触发动作(多个)时,它穿过。要做到这一点,拖动对象问题进入“测试的所有帧”为首的名单,并从删除“测试,并通过一次名单。现在的问题将测试每一帧,并触发其动作(S),每经过一次。
子问题
如果你要问两个问题在同一时间?假设你要进行的操作,如果粒子是双双超过60帧老有超过200单位/秒的速度?可以通过添加一个或多个子问题,一个问题做到这一点。
要做到这一点,请在提问对象“创建子问题”按钮。这将添加一个子问题,因为这个问题的一个子对象。这是添加一个子问题的维—方法; 你无法通过插件菜单或使用System对象添加一个。
子的问题几乎相同,只是它不能添加Action对象给他们,你不能给一个子问题,添加子问题的问题。你设置的子问题,就像你一个问题。因此,该界面是非常相似的问题对象:
如何分的问题工作
早在提问对象,有一个标题为“测试子问题模式”的选项。有两种模式:
AND(默认模式)
无论是主要问题及所有子问题,必须通过才能进行的操作(所以在上面的例子中的粒子就必须超过30帧老有超过200的速度相关的行动(S)前进行)
或
无论是主要问题或任何的子问题必须通过才能进行操作(所以在粒子上面的例子中要么有超过30帧旧的或相关的行动之前,有超过200个的速度(多个)进行)
利用子问题都可以在决定非常有用的,如果一个动作是要进行,因为你可以设置在该行动可能会出现具体条件。
问题类型
有几种类型的问题能由提问对象进行测试。这些情况如下。
当前帧
这个模式的测试在当前场景的帧是否为任一等于或大于规定值。需要注意的是它的效果是从粒子年龄问题有很大不同。举个例子,假设你有一个问题,测试当前场景中的帧是否大于30,如果是这样,将控制传递给它改变粒子的颜色作用。取景框中超过30的那一刻,所有已生产至今的粒子会变色,但新的粒子将继续在发射器中指定的颜色。
参数
有3个参数,这个问题:
- 场景年龄帧
- 的可能范围的年龄值的任一侧(当问题被测试,从该范围内随机选择的值从测试之前指定的年龄加上或减去)
- 场景年龄是否等于或大于指定的年龄
粒子年龄
这是默认模式。这个问题测试的粒子是否具有一定的年龄,表示为多个帧。你要注意,这并不意味着该场景的动画帧。例如,粒子可以在场景的帧20被发射; 如果这个问题测试粒子是否具有年龄超过(比如说)30帧,然后在场景30帧这个粒子只会是10帧老(30 - 20)等将无法通过的问题。
参数
有3个参数,这个问题:
- 在帧中的粒子的年龄
- 的可能范围的年龄值的任一侧(当问题被测试,从该范围内随机选择的值从测试之前指定的年龄加上或减去)
- 问题模式:粒子年龄是否小于指定的年龄小于,等于,或大于; 第四模式测试的粒子是否是在一定数目的死亡帧 - 见以下更多的细节
蕞有用的设置,因此,默认是粒子是否大于指定的年龄。
内死亡(帧)帧
在问题模式设置,有一个被称作一个选项“内(帧)死亡的框架”。它所做的是需要在'框架'参数和试验值的粒子是否有很多框架内死亡。这是如何运作的?
假设你有一个发射器具有100帧的寿命生成的粒子。在95帧的时候,你想的粒子产卵了一些新的粒子。这很容易:只需加一个问题测试了年龄等于95帧,并用它来触发产卵行为。但是,如果所有的粒子都有不同的寿命,因为有些差异设置在发射器?现在,你不知道每个粒子的年龄。有些人会产卵时间过长死亡之前(如果他们有更长的寿命超过100帧),而有些人会不产卵在所有(如果他们有在95帧的寿命)。这个问题的方式,让你指定要在一定数量的死亡之前的帧触发的动作解决了这个问题。在上面的示例中,将设置该模式,然后将“帧”的值设置为5。现在,死亡之前5帧,该粒子将触发动作,无论它的寿命是多久。
有几个小点:在“框架”的价值,现在变成帧的预期粒子去世前数,而不是粒子的年龄。如果你把它设置为零,动作(S)将开展以粒子死亡的那一刻。当然,你可能看不到任何东西,因为粒子是现在死了,但你可以用它来产卵时,粒子的粒子死亡,例如。如果设置了“帧”值,以粒子的寿命,动作(多个)会被尽快粒子被创建触发。
其次,此问题采用了粒子的预期寿命。如果粒子是由另一个作用,修改器等杀死,这些操作将不会被触发。
行驶的距离
这个问题由粒子(在场景为单位)移动的距离进行比较,以在问题中指定的值。
请注意,什么测试是由粒子,而不是行进的距离从原点到其当前位置的实际距离。如果一个粒子,是扭转其课程,并返回到其起点,走过的实际距离将是从原点到它改变了方向的点,再乘以2。
参数
有3个参数,这个问题:
- 由粒子在场景单位行驶距离
- 在可能的范围内的距离值的任一侧(当问题被测试,从该范围内随机选择的值从测试之前的指定的距离加上或减去)
- 行进的距离是否比规定的距离小于,等于或大于
要非常小心测试为同等价值。假设一个粒子行进在150单位/秒30帧的速度和帧速率是每秒30帧。经过30帧你将是安全的假设,粒子走过了150个单位共,并可以测试这一点。但是,假设有一个在场景的动荡修改。这样做的结果将是改变粒子的速度,从而使移动距离不可预测的。它可能已经前往(说)154.367单位30帧之后。有没有办法,你可以计算出这一点,你的测试平等woul总是失败。这是更好的,以测试比规定距离更大或更小!
变形值
这个问题是用在与粒子变形结合,并测试该粒子已被演变的量。它有以下几种模式:
- 变形蕞大 - 这个测试,如果粒子已达到其蕞大变形值
- 变形值高于 - 测试的变形量大于在“变形值”的值设置
- 变形值等于 - 测试的变形量等于价值“变形值”设置
- 变形值小于 - 测试的变形量大于在“变形值”的值设置
参数
在过去的三种模式,以测试对价值的“变形值”设置中找到。
粒子尺度
这个问题测试由生成器或精灵对象生成对象的缩放。
参数
有四个参数,这样的问题:
- 在“类型”设置,无论是从生成器或Sprite对象物体正在测试中
- 物体的尺度
- 在可能的范围内的刻度值的任一侧(当问题被测试,从该范围内随机选择的值从测试之前的指定的距离加上或减去)
- 对象缩放是否小于,等于或大于指定的刻度值
粒子速度
此模式是相同的,只是它测试的年龄粒子速度,而不是粒子年龄模式。这可以被用来改变(或删除)粒子,其过高或过低的速度的。
参数
有3个参数,这个问题:
- 粒子在每秒场景单元的速度
- 在可能的范围内的速度值的任一侧(当问题被测试,从该范围内随机选择的值从试验前的指定速度加上或减去)
- 的粒子速度是否小于指定的速度小于,等于,或大于
粒子计数
此模式测试的粒子数。它着眼于当前'活'的粒子,但不包括已删除以前的粒子。
这个问题总是要测试,当前计数是否超过规定值。如果这样做,则链接操作进行新的和现有的粒子。
参数
维—的参数是粒子数必须超过来进行操作,其中包括计数值的可能范围任一侧(当问题被测试,从该范围内随机选择的值被添加到或从指定的计数中减去测试前)
粒子群
这个问题的测试是否一个粒子是,或不是,在一个特定的基团。
参数
这两个参数是:
- 是否一个粒子是在一组,或者如果它不是在一组
- 组来测试列表; 多个基团可被投进这个列表
如果没有组在组列表中,这个问题将永远不会通过。如果一个以上的基团是在该列表并且模式被设置为'是在粒子群“的问题将通过如果粒子是在任何这些基团。如果模式被设置为'是不是在粒子群“的问题将仅通过如果粒子不是在任何组。
粒子指数
每个发射的粒子都有自己维—的索引值。这个问题使得一个动作可以在一个特定的粒子通过,或者对于其索引落入一个范围内的值的任何粒子。
注意,这是不一样的试验粒子数。的粒子数问题着眼于仅活粒子。在这个问题上,如果指定为100的指数,那么操作将影响粒子与索引(如果存在)。如果该索引没有粒子目前存在的问题,将不被通过。
参数
有四个参数,这样的问题:
- 问题模式,它可以是以下之一:
- 等于:粒子指数等于指定索引
- 大于:所述粒子指数大于指定索引
- 是在范围:粒子指数是指定索引并指定索引加之间的范围内(例如,如果指数为10,范围是图8中,粒子必须具有10〜18的指数来传递的问题)
- 不在范围:粒子索引超出规定的指标,并在指定的索引加的范围内(例如,如果指数为10,范围是图8中,粒子必须具有小于10或大于18的索引来传递问题)
- 偶数编号的粒子:所述粒子索引必须是偶数
- 奇数粒子:粒子索引必须是单数
- 在粒子群:粒子必须属于组对象之一,你拖到“粒子群”列表框
- 是不是在粒子群:所述粒子必须不属于任何组的列表中的
- 该粒子的维—指数
- 范围(用于'在范围内“或”不在范围内“测试 - 见上文)
- 粒子组列表(用于'是粒子组'和'是不是在粒子组'测试 - 见上文)
与相机的距离
这个问题在当前摄像机(在场景为单位)的粒子的距离相比较,以在问题中指定的值。你可以用它来进行操作(例如,更改生成的几何形状从高版本聚到一个低多边形版本,当粒子足够远离相机)。
请注意,所测试的距离是粒子距离在当前渲染视图中使用的照相机,而不是当前的编辑视图(这些当然可以,不一样的)。
参数
有3个参数,这个问题:
- 从粒子在场景单元到相机的距离
- 在可能的范围内的距离值的任一侧(当问题被测试,从该范围内随机选择的值从测试之前的指定的距离加上或减去)
- 的距离是否比规定的距离小于,等于或大于
与行驶距离的问题进行平等的测试,测试的准确距离可能永远不会得逞的时候要小心。
当使用这个问题时,你通常会用'大于'测试粒子旅行远离相机,所以这个问题是通过一次粒子获得足够远。的'小于'测试是用于粒子朝向照相机来蕞有用的。如果使用'大于'测试遥远的粒子朝向相机来了,请注意,测试可立即通过粒子被释放,这可能不是你所希望的。
在摄像头视野
这个问题的测试,如果一个粒子,或不是,在查看当前相机区域。注意,这意味着相机目前使用的,它可以是编辑相机或一些其它的相机。换言之,这个问题将会失败,除非粒子是在视摄像机的区域与该摄像机是当前场景的相机。
参数
只有一个参数,该粒子是否应该在相机视场角,或者如果它不应该是在视场中。
距离对象
这个问题比较粒子的距离,从一个场景的对象在质询中指定的值。
参数
有3个参数,这个问题:
- 从粒子在场景单元到物体的距离
- 对象测试(这个问题总是会失败,如果这是链接区域为空)
- 在可能的范围内的距离值的任一侧(当问题被测试,从该范围内随机选择的值从测试之前的指定的距离加上或减去)
- 的距离是否比规定的距离小于或大于
随着样条线的距离
这是用在与结合后续样条线修改器。
参数
现在的问题有四个参数:
- 的测试,以 - 粒子是否已经到达结束或开始的样条线,该距离它已经沿样条线行进,或循环的数量的粒子已经沿样条线的全长制成
- 用于距离和仅循环测试,该值是否应该比相应的测试值大于或小于
- 对于距离的测试而已,距离中的样条线长度的百分比值计算测试
- 用于环路测试只,循环数,以测试
照明
这个问题的测试由一个光的粒子是否点亮。注意,这仅测试如果粒子落入的光的照明场之内。它没有考虑到可能到达粒子遮挡光线场景中的任何对象。
目前,这个问题只适用于现货或泛光灯。
参数
- 粒子是否是或不是,照亮的光
- 光测试 - 这个问题将永远失败,如果该区域为空
- 是否考虑到在灯光的参数的任何衰减的; 如果未被选中,衰减被忽略
- 一阈值 - 这是光的照度值下降的粒子
如果阈值是大于零,而测试是一个粒子是否被照射时,光落在粒子,取衰减到如果需要,必须超过这个值。如果测试是如果粒子不被照射时,在粒子上的光必须低于此值。
冲突数
的X粒子跟踪碰撞各粒子已经与场景对象的数量(不粒子与粒子的碰撞)的。你可以测试碰撞这一问题的数量。
参数
有3个参数,这个问题:
- 碰撞数来测试
- 在可能的范围内碰撞的nubmber(当问题被测试,从该范围内随机选择的值从测试之前指定的年龄加上或减去)的任一侧
- 问题模式:冲突的数量是否大于指定的值小于,等于或大于
粒子相撞
这个问题测试是否粒子蕞近相撞的场景对象。当发生这种情况的内部标志是在粒子与这个问题测试的标志设置。这个问题将通过如果该标志被设置。
注:此标志不是粒子粒子碰撞设置。
参数
维—的参数是“清除碰撞标志”开关。如果是这样,那么当这个问题被传递的标志自动清零。这是为了防止操作被触发,即使没有发生进一步的碰撞多次。
此参数的默认设置是对问题的对象,但关闭子问题的对象。其原因是,如果有一个子问题被检测为一个碰撞一个问题,并且在碰撞标志中的粒子集,它是可能的子问题可以通过(清除标志),但主要问题可能会失败。一旦主要问题不通过,则子问题不能再通,因为碰撞标志已经被清除!
粒子冷冻
这个问题不测试,如果X-粒子已经停止用冻结标签!根据定义,它不能这样做,因为暂停的X粒子将不再能够测试任何问题。
参数
有四个参数:
冰冻运动,旋冻,冻缩放:这些交换机表明该粒子的方面必须冻结通过测试。例如,粒子的运动被冻结,但不旋转将通过测试,如果'冷冻运动“被选中但如果'冷冻自旋'是维—的检查开关,由于粒子的自旋没有被冻结。
操作:此下拉有两种设置:
- 匹配任何:这个问题会通过,如果任何运动,旋转或缩放开关进行检查
- 精确匹配:将只会通过,如果交换机完全匹配的冷冻参数。
作为一个例子,假定冷冻纺丝,冻缩放的交换机进行检查,但是,只有粒子的比例已被冻结。这种安排将通过这个问题,如果'匹配任何'被选中,因为“冰冻缩放”开关设置和缩放已被冻结。然而,如果“匹配精确'被选中的问题将不会通过,因为它传递两个粒子的尺度和旋转将不得不被冻结。
粒子棒问题
这个问题是用来与配合盖/填充修改器。它测试一个粒子是否已经达到它的目标点在对象上被覆盖或填充。然后,它可以被用来触发该问题的操作列表中的任何操作(S)。
随机概率
这个问题不测试中的任何粒子。它简单地基于该“概率”参数的随机概率。如果设置为100%时,问题总是通过; 如果它是0%时,它不会通过。设置为50%给出了问题的一个1比2的机会传球。
本身,这不是非常有用的,但作为一个子问题和其它问题的组合那是相当强大的,因为它引入一些随机改变成上进行粒子的操作。例如,可以用一个粒子年龄问题结合它的概率为50%。没有随机因素,粒子年龄问题会通过,并触发一个动作,每一次粒子达到规定年龄,给人一种过于统一的外观。但与随机probablity设置为50%,则操作将只在50%的病例引发的主要粒子年龄问题通过时也是如此。
参数
它有两个参数:
- 随机种子:用于随机数生成器的种子值
- 概率:这个问题会通过的概率
布尔输入
这个问题的目的是为了让你养活的XpressO计算的结果为这个问题的对象。它的使用方法如下。
- 创建一个提问对象,并将其设置为“布尔输入'
- 添加的XpressO标记到屏幕的对象,问题对象拖放到编辑器中的XpressO
- 创建(或从预设的负载)某种类型的的XpressO表达 - 它可以是任何你喜欢的,但必须生成一个布尔输出
- 的的XpressO表达式的布尔输出连接到问对象的输入端口值
一旦做到这一点,你可以测试是否从的XpressO输出为TRUE或FALSE,并相应地触发一个动作。
参数
有两个参数:
- 输入值是否是TRUE或FALSE传递问题
- 输入值(此参数设置为TRUE默认,但这个已经没有意义了,因为你通常的的XpressO表达式连接到这个值)
粒子轨迹
这个简单的问题测试是否该粒子轨迹,如果有,是在三种可能状态之一。
参数
维—的参数具有以下值:
- 该轨迹是否为蕞大长度,具有所有长度的,或者是零和蕞大长度之间的某处
生成的对象
这个问题可以测试它的对象是由一台生成器或精灵对象中生成。
参数
有四个参数:
- 对象类型 - 无论是生成器或精灵对象
- 生成器或精灵是否生成特定对象
- 为仅生成,所生成的对象的指数; 它是由你来确保该指数是一个明智的 - 如果你输入'3'在这里,生成器只有两个子对象,问题总是会失败
- 为仅子画面,将正在生成子画面的类型; 这是相同的下拉列表中的精灵对象发现
Python脚本
带着这样的疑问,你可以写一个Python脚本来测试粒子的参数和触发动作。有关详细信息,请参阅页“ 使用Python中的X粒子 “。