完善主体资料,免费赠送VIP会员!
* 主体类型
* 企业名称
* 信用代码
* 所在行业
* 企业规模
* 所在职位
* 姓名
* 所在行业
* 学历
* 工作性质
请先选择行业
您还可以选择以下福利:
行业福利,领完即止!

下载app免费领取会员

NULL

ad.jpg

3dmax认知控制器是什么?3dsmax认知控制器有啥用?

发布于:2020-11-27 16:48:19
首页/BIM专题
分享

3dmax认知控制器是什么?3dsmax认知控制器有啥用?在模拟过程中,可以根据环境使用认知控制器功能来使群组成员改变行为。例如,一个角色可以随机漫步,直到它移动到和一目标相距一定距离时开始朝那个目标直行。

在技术术语中,认知控制器使用条件脚本来影响群组模拟,这可以有效的实现一系列的人工智能。可以使用认知控制器编辑器,这是一个流程图样式编辑器(很像“运动流图”对话框),来设置行为网络和行为组合,我们将其称之为状态。然后,可以应用基于 MAXScript 脚本的变化来指定代理何时从一个状态移动到另一个状态。即便使用相对简单的设置,也可以创建模拟,以使角色栩栩如生、具有意识、在场景中移动时能作出决定。

腿腿教学网-3dmax认知控制器是什么?3dsmax认知控制器有啥用?

可以在“状态”对话框主题中找到介绍认知控制器变换的各种示例的步骤:

  • 测试粒子系统参数

  • 测试对象位置

  • 测试大气效果属性

  • 测试两个对象之间距离

  • 测试修改器参数

  • 测试另一对象行为

过程

要设置并使用认知控制器,请执行以下操作:

    此步骤是创建和使用认知控制器的典型设置过程。此步骤假设您已具备群组模拟设置的基本知识。为获得更多关于群组设置的信息,请参阅群组辅助对象和“设置”卷展栏。

  1. 创建一个包含群组对象和一个或多个代理的场景。请参见创建群组辅助对象。

  2. 至少创建两个行为。请参见指定行为。

  3. 腿腿教学网-3dmax认知控制器是什么?3dsmax认知控制器有啥用? 打开认知控制器编辑器。

  4. 单击“新建”按钮来创建认知控制器。

    `character studio 将此控制器命名为默认名称“认知控制器”。推荐为此认知控制器命名一个描述性的名称,例如:“查找/`漫步”。单击文本框中的名称并从键盘进行编辑。

    `腿腿教学网-3dmax认知控制器是什么?3dsmax认知控制器有啥用? 创建一个认知控制器会自动转到“创建状态”模式中。

  5. 单击编辑器窗口来创建并放置一个状态。在不同位置继续单击来添加任意多的状态。

  6. 右键单击状态以打开“状态”对话框。

  7. 推荐为状态命名更具描述性的名称,这可以在“状态”对话框中设置。在文本框中单击名称(状态或状态号码)并从键盘进行编辑。

    `下一步,给每一状态定义一个或多个行为。

  8. 单击“添加”按钮。

  9. 在“选择行为”对话框中,选择一个或多个行为。

    `如果选中了多个行为,那么可以在“状态”编辑器中给每个行为指定不同权重。例如,可以把二分之一权重的“漫步”行为合并到全权重的“查找”行为中,以便在代理查找目标时会轻盈地漫步。

  10. 关闭“选择行为”对话框,然后关闭“状态”编辑器。

  11. 根据需要重复步骤 6-10,来为控制器中的其它状态定义行为。

    `下一步,使用“创建变换”来定义在模拟过程中的状态序列。

    决定状态发生的顺序。

  12. 单击 腿腿教学网-3dmax认知控制器是什么?3dsmax认知控制器有啥用?(创建过渡)。

  13. 在一个状态到下一状态间拖动一条直线以便执行它们。单击某个状态来创建从状态自身到自身的变换。

    `显示一个变换箭头,它从“源”状态指向“目标”状态。

    `每一状态可以拥有任意数目的传入和外出变换。可以根据需要给每一状态指定不同的状态变换条件来创建复杂状态图表。

    `下一步,使用“状态变换”对话框给每一变换定义一个条件。

  14. 右键单击变换线条。

  15. 在“状态变换”对话框中,为变换条件输入一个名称,然后单击“编辑 MAXScript”按钮。

  16. 使用 MAXScript 编辑器窗口来输入或加载脚本,这些脚本定义了变换发生的一个条件或多个条件。

通常,它是一个用来测试条件的函数,并返回 1(如果为真)或 0(如果为假)。

注: 有关此函数的示例 MAXScript 代码的信息,请参见联机《用户参考》中的此主题。

例如:

fn test1 del t = (
if (del.simpos.x <= 40 and del.duration > 50) then 1 else 0
)

简而言之,上述内容说明如果代理在 X 轴上的位置小于或等于 40,而它当前所处的状态占用了 50 多个帧,则会发生过渡。然而,如果条件其中之一为假或都为假,那么代理应该呆在当前状态(或测试其它变换)。下面列出关键字:

    fn - 以下是 MAXScript 函数。

    test1 - 函数名应该作为变换条件显示在“变换”对话框中。当变换通过测试时,首先执行此函数。此脚本可能包含任意数目的条件函数,它们被脚本内部函数所调用。

    del - 指当前正应用该脚本的代理。每个认知控制器指向的代理/组成员的每帧中都执行一次变换脚本。因此,如果在脚本中使用“del”而不是指定的代理名称,那么将测试指定到认知控制器的所有代理。

    t - 模拟中的当前时间(帧编号)。

    del.simpos.x - X 轴上代理的的当前位置。特殊函数“simpos”确定代理在模拟过程中的位置。这是必要的,因为在模拟过程中使用标准函数“[node].pos”导致 MAXScrip 不可使用代理位置。

    del.duration - 代理位于当前状态的帧数。

    通过打开 MAXScript 监听窗口(按 F11 键)并输入以下字符,能够看到可以检入脚本的特定于代理的参数的完整列表:

    显示属性 $delegate01

    因为代理是一个节点,除了上面提到的“simpos”之外,它也能对标准的 MAXScript 节点相关函数作出反应。此外,为获得关于如何访问变换属性的信息,例如,持续时间和优先级,请参阅 MAXScript 帮助。

    要了解可以与认知控制器一起使用的 MAXScript 条件的更多示例,请参见“状态变换”对话框。

  • 使用“状态变换”对话框来设置其它参数,例如,优先级和持续时间。

  • 使用“行为指定和组合”对话框给代理或组合指定认知控制器。

注: 群组不允许在代理中使用多个认知控制器。可以指定多个控制器,但在解算时,character studio 将通知您它将只使用第一个指定的认知控制器。

转载请注明来源本文地址:https://www.tuituisoft/bim/17722.html

未标题-1.jpg

上一篇:没有了

下一篇:没有了