好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Miarmy 智能群组动画制作.docx

24页
  • 卖家[上传人]:飞***
  • 文档编号:16421240
  • 上传时间:2017-11-07
  • 文档格式:DOCX
  • 文档大小:2MB
  • / 24 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 37sky-factory08. 13Miarmy 智能群组动画制作Miarmy( My Army)是一款由国内公司 Basefount 科技自主研发的 Maya 插件,致力于群组动画模拟,智能行为的制作,生物物理模拟,渲染为降低群组镜头制作难度的门槛, 使用 Miarmy 制作群组,完全不需要任何的程序开发和节点连接,也不需要用户编写任何的表达式Miarmy 插件最有特色的地方是以下三个方面:1. Miarmy 是一个 Maya 插件,它和 Maya 紧密相连,这使得大多数以 Maya 为流水线的动画公司从中收益,它采用了 Maya 很多现有的基础设施,让用户用起来很贴切,很容易上手,不需要再去学一个新的软件和快捷键体系更重要的是,它同时兼容 Maya 自带的生产流程,比如设置绑定的流程,动作捕捉流程,MotionBuilder 和Maya HumanIK 的整合,还有很重要的 Referencing 体系;2. 为了绕过所有的瓶颈,研发团队在开发 Miarmy 之前,花了 4个月的时间进行研究,逐渐找到了突破瓶颈的方法Miarmy 重新定义了 Maya 的节点通信机制,采用“ 规定顺序非连接节点通信机制”,所有的 Miarmy 的智能和物理运算节点,均无任何连接。

      另外,Miarmy 团队重新编写了骨骼,动画,物理模拟模块,使得在 Maya场景中的角色数量,可以轻易达到数千计,并且每一个 agent,都带有自己独立的骨骼,属性和智能逻辑;可以这样说,Miarmy 在某种意义上,就是一个使用了 Maya 平台开发的独立软件;PhysX 物理37sky-factory08. 13引擎的进入,使得 Miarmy 可以轻松的计算数千个角色,几十万的刚体;3. Miarmy 的逻辑模块,是基于任意优先层级、树状排列结构的模糊(Fuzzy Logic)逻辑引擎,为用户提供了全新的 AI 搭建工作方式;让群组镜头制作,告别了所有的编程,节点连接,和 Maya 表达式,这是业界独有的一种设计,在确保群组制作的灵活性的同时,使得群组制作的难度大大降低,维护修改也更加容易;图例 1图例 237sky-factory08. 13图例 3在本文中,我们将会介绍如何利用 Miarmy,制作一个带有智能的,物理模拟的群组打斗动画简易 Demo,在掌握方法和流程后,用户便可以制作出很多有趣和精确的动画场景(见图例 4 和图例 5) 37sky-factory08. 13第一节,角色准备群组角色肯定离不开角色,那么我们第一步肯定就是要创建角色,在此处,我们讲直接使用 Miarmy 官方提供的一套预设角色,然后用它来制作内容;首先进入 Maya,新建一个场景,点击 Miarmy > Miarmy Ready!37sky-factory08. 13场景中讲自动做一些配置,并且创建一些 Miarmy 解算必需的节点,另外,在 Outliner 里边,将会自动创建出 Miarmy 的资源存放地;我们需要首先导入原始代理并且处理命名,Miarmy 官方目前提供了一个 Agent_casual 的原始代理,注意导入的时候,不要修改命名:把 Agent_casual 放到 Miarmy_Contents 层级下边(删除默认的Agent_Loco 空组)用 Miarmy > Agent Manager 修改其名字:点击 Modify 按钮,输入 Enemy由于 2 组人对打,所以我们需要再导入一次同样的角色,并且改名为 locoman,同样放在 Miarmy_Contents 层级下边,最终的目录结构应该是下图37sky-factory08. 13另外,如果点击 Agent Manager 的 Active 按钮可以激活某种 Agent,一旦激活,将来所做的操作,将作用于这个角色;点击下边的颜色按钮,可以为角色分配一个颜色;当然,如果需要自己建立全新的角色也是可以的,请参考官方详尽的教程。

      在此处,我们使用的是预设角色,但是我们简要的介绍一下这个预设我们导入的预设角色其实是原始代理(Original Agent)他是生成代理角色(Agents)的蓝图,系统根据它和放置节点(Placement,下面会讲到)部署很多个代理角色37sky-factory08. 13原始代理上边有很多 Box,这些 Box 可以决定最终放置出来角色的骨骼形态:用户可以随意缩放,位移,旋转这些 Box,并且让他们符合一定的比例,利于物理模拟;原始代理上边,还有很多关节设置,如果需要制作物理模拟,这些关节将会非常关键,他们可以可以调整角色动力学的关节类型和关节约束,让物理模拟看上去更加合理;37sky-factory08. 13另外还有一些详尽的参数,具体情况,请参考 Miarmy 文档;第二节.放置 Placement在上节提到,我们需要用原始代理和放置节点,生成我们的群组场景,那么现在就制作这个放置节点Miarmy > Placement > Create Placement Node,可以生成一个放置节点:37sky-factory08. 13调节它的参数如图:Place Type 是放置类型,调整为队列模式(formation)NumOfAgent 是 Agent 的数量,我们这里设置为 11Scale 是三角形的大小,根据需要随意调整,我们这里缩放到 8.7Noise 是一些乱序,让排列不规整一些;Column 是专用于控制队列群组的,我们设置为 12Distance 是 Place 节点之间,各个三角形的平均距离我们设置为 54.737sky-factory08. 13最终的效果如下图:然后我们以类似的方法,创建另一个放置节点,并且设置参数:此次我们不再用“队列 ”模式,而是用了“点”模式,让所有的 place 的放置,围绕一个点来生成,调整的结果如下:37sky-factory08. 13然后我们选择这个放置节点,然后进入:Miarmy > Placement > Placement Editor…在这个编辑器中,我们可以调整单个放置节点的不同种类的 Agents的比例,我们在这里,把他调整成 100%“敌人”(Enemy) ,如下图:37sky-factory08. 13最终的放置结果如下图:37sky-factory08. 13然后我们点击 Miarmy > Placement > Place 放置角色:我们的预设角色,自带有动画行为。

      第三节,逻辑驱动+ 物理模拟我们这里将使用逻辑驱动角色的动作:37sky-factory08. 13关于逻辑,我们首先要有一个大致的思路,红色的逻辑是:• 找蓝色的敌人,找蓝色的敌人,在近处到就打他那么蓝色的逻辑大致是:• 正常情况下前进,周围有红色敌人时,就打斗,被红色敌人打后,开启自身的动力学,倒地然后我们需要对他稍加抽象Miarmy 采用的是直观的 Human Logic建立方式,对于上述的人类逻辑,我们进行以下的抽象,和排序.红色的逻辑抽象:• 默认情况下,巡逻• 第一优先级:避免与别人碰撞• 第二优先级:近处有蓝色敌人,就转向对准他打斗(用于对准) 第三优先级:远处有蓝色的敌人,就转向对准他;(用于追赶)我们通过 Miarmy > Logic & Decision > Make Decision 创建 Decision节点,观察下图,可以发现,逻辑的主体跟上边我们描述的一模一样:同样,对于蓝色的 Agent,我们的逻辑如下:• 默认情况:前进• 第一优先级:避免与别人碰撞37sky-factory08. 13• 第二优先级:近处有敌人,就瞄准并且打斗(用于对准)• 当被打击时,就倒下• 当倒下时,颜色变为灰色同样,我们创建出一样的逻辑结构:优先级的排序的意义:优先级高的,如果逻辑成立,并且执行了行为,就会抑制优先级低的行为。

      例如远处左边有个敌人,我需要对准他走过去,此时我需要向左转,但是此时角色的左前方有一个人,所以需要避让,这样一来我们就需要向右转,这样我们就需要把避让的优先级,调整高于对准的优先级让避让的行为抑制跟随的行为;细化一下逻辑:避免碰撞,我们需要 3 个细部逻辑:• 左边近处有人,向右转• 右边近处有人,向左转• 前方有人,有左转(或右)追踪敌人,分为 2 个细部逻辑:• 敌人在视野的左边,左转细化一下逻辑:37sky-factory08. 13避免碰撞,我们需要 3 个细部逻辑:• 左边近处有人,向右转• 右边近处有人,向左转• 前方有人,有左转(或右)追踪敌人,分为 2 个细部逻辑:• 敌人在视野的左边,左转• 敌人在视野的右边,右转打斗,分为 3 个细部逻辑:• 敌人在左边近处,左转对准• 敌人在右边近处,右转对准• 敌人在正前方,表演打斗行为红色一方的逻辑细化后:37sky-factory08. 13蓝色一方的逻辑细化后:细化的逻辑,都放在了 Blank_XXX 逻辑的子层级下边,你会发觉,所有的逻辑就类似与人类的逻辑,是否简单;接下来我们看一下逻辑的内部结构,让我们来了解一下什么是模糊逻辑先选择一个逻辑节点,比如是 avoidL_decision_locoman,然后进入Miarmy > Logic & Decision > Decision Editor37sky-factory08. 13这就是我们的逻辑内部节点,上图中的内容,实现了一个这样的逻辑:• 如果人在左边并且是红色的人,我就向右转避让上边蓝色的条目,称为“输入条件” 下边橘黄色的条目,称为 “输出决策”:• 第一个蓝色条目:如果有人在 sound 范围,而且在 0~90 的范围(即是左侧)• 第二个蓝色条目:如果有人在 sound 范围,而且是红色的• 橘黄色的条目:如果上述 2 个条件成立,就执行这个“决策”,否则就不执行;那么怎么是模糊逻辑呢?分为两部,第一步是逻辑条件的成立问题,在常规的逻辑中,我们用的是 true 或 false,如果 true,便是 100%成立,false 就是 0%成立,但是在模糊逻辑的世界中,我们不称为 true或 false,而是 active,也就是可以一部分成立,一部分不成立;37sky-factory08. 13在这里,我们的例子是,一个人如果在我的左手边 0~90 度,此事件就成立,• 左手边 0~90 度,此条件成立,否则不成立但是,我们把他的模糊值,调到 30 与 30,这样的条件就变成了以下的情形:• 左右边 —30~30 度,逐渐成立(active 从 0%到 100%) ,30 度~60度 100%成立,60~120 度,逐渐不成立(active 从 100%到 0%) ,就把这个件事模糊了。

      因为如果条件成立,可以 100%成立,也可以 50%成立,也可以 25%成立,那么对应的决策就会乘以这个量化的成立值 active,那么对应于决策,100%成立的话,那么就行-120 * 100%,右转 120 度/ 秒,如果是 50%成立,那么就是-120 * 50%,右转 60 度/每秒,如果是 25%成立,我们就执行右转 30 度/秒同样的处理所有的逻辑节点,AvoidR(如果右边近处有红色的人,就像左转)AvoidF(如果近处前方有人,就像左转)37sky-factory08. 13以此类推,完成所有的逻辑节点设置,我们就可以播放动画了:红色的人,起始会去追赶蓝色的人到了近处,他就会打斗起来37sky-factory08. 13蓝色的人一旦被击中,就会开启动力学,变成灰色:37sky-factory08. 13红色的人就不会去追赶他们(灰色的角色)了红色的人在找到并打倒全部蓝色的人之前,他们不会停下来;最终的人,将会被全部打到;37sky-factory。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.