开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:1763

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 8324|回复: 23

[keyle] Behavior Designer 行为树入门

[复制链接]  [移动端链接]
抢楼 抢楼 本帖为抢楼帖,欢迎抢楼! 
排名
2399
昨日变化
1

16

主题

170

帖子

1558

积分

Rank: 9Rank: 9Rank: 9

UID
22288
好友
9
蛮牛币
2440
威望
0
注册时间
2014-4-21
在线时间
322 小时
最后登录
2017-7-18

专栏作家

QQ
发表于 2015-8-14 11:30:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
    本篇教程将带领大家熟悉 行为树插件之Behavior Designer 。本篇教程不会出现过多的代码,故也适合策划学习。

你将学习到一种新的动画与AI的解决方案
使即使用Behavior Designer来设计动画的播放逻辑与AI的行为逻辑, 如果你用过PlayerMaker那么再好不过了,你可以Behavior Designer当作是PlayerMaker的强化版但有不同于PlayerMaker。当然我不是在这里推崇这种插件,而是了解另一种设计思路。当然在现在国内对于Behavior Designer插件中文资料匮乏的情况下,你也可把文档当作文档阅读。 如有兴趣请继续看下文

    我们使用这种技术为了解决动画问题,与AI问题,先聊一聊我们遇到了什么样的问题把。

    1. 当AI足够复杂的时候 我发现此时的FMS已经被写成了一片代码的泥沼,想要继续维护下去已经是很乏力了


    2. 当我们使用Unity自带的动画状态机系统后,变成了这样 下图 ,当然你想改也不是不可以或许是个体力活,但是我想告诉你,你的队友可能在某些动画之中安插了一些 被称为 动画帧事件 的东西,而这种东西则需要你一个一个选中并且查看动画文件是否被更改,量一旦大了换一个人接手那就是“不可能实现的任务”


      1.png

    基本概念

    2.png

    Composites
        这里的"组合" 全名应该被成为“组合节点控制(管理)类目”,顾名思义在此条目下若干个选项都被称之为“控制类节点”,用以从最高的纬度去规范行为树的流程。具体细分为如下几种
       3.png

    Parallel 并行节点    此节点下属所有节点将一起进行,其中某一个执行返回false 则Parallel节点返回false

    Parallel Selector 并行选择节点    此节点下属所有节点只要有一个返回success,则Parallel Selector节点返回success     

        注意: 以上二节点都是并行的,也就是说同时执行所有下属节点

          4-2.png

    Proiorty Selector 优选选择节点    此节点下属所有节点依次执行直到返回success

    5.png

    Random Selector 随机选择节点    此节点下属所有节点随机执行直到其中某一个返回success

    6.png

    Ramdom Sequence 随机选择列队节点    此节点下属所有节点随机执行直到其中一个返回false

    7.png

    Selector 选择节点 此节点下属所有节点依次执行直到返回true

    8.png

    Selector Evaluator 计算选择节点(姑且这样叫把,这个名词翻译的优点拗口)    此节点下属所有节点依次执行直到返回success,有一种情况使其返回running状态并中断,就是有节点被打勾了

    9.png

   Sequence 顺序节点  此节点下属所有节点依次执行直到返回false

    10.png

    Decorators
        装饰节点应为Composites的分支节点,而装饰节点一般用来修饰判断,比如这个修饰可以是 “直到...成功”,“直到...失败”

       11.png

        Conditional Evaluator   条件计算节点  此节点下属节点执行直到返回success,有一种情况使其返回running状态并中断,就是有节点被打勾了

       12.png

        Interrupt 中断(开关)节点 此节点第一次执行为true第二次为false

       13.png

        Inverter 逆变节点 此节点的子节点如返回success他可将结果改为false反之也可

         14.png

        Repeater 重复节点    此节点可设置该节点下子节点重复执行的次数

         15.png

        Return Failure / Return Success  我就不解释了

        Task Guard Task意为任务Guard意为守卫,那么这个节点是告诉我们可以用他来限定该节点的子节点不能同时被两项或以上的任务访问,换而言之该节点可以设置它的子节点能同时被几个任务(其余的节点)访问,类似于多线程访问统一资源我们所使用的Lock。

        Until Fuilure /  Until Success 直到...返回false/知道...返回Success 这两项我想也没有必要说明了,但看字面上的意思足够说明一切了。


    Actions
        动作或行为,如“攻击” “追逐”
         16.png    

        Action有三大类,第一类为基础的API,第二类为基本的Monobehavior操作 如Animator,,Behavior 等等,第三类为辅助API 都是使用反射处理,当然这个大类隐含着性能的损耗要谨慎使用

        此处仅选必要的API解释,其余的相信你可以看懂

        Behavior Tree Reference 此节点允许此节点的脚本中重写GetExternalBehaviors方法,也就是你可以在运行时指定一个行为树在当前节点下运行!(动态指定行为树)
        Preform Interuption 此节点允许用户中断在节点列表中添加的任务(可以有很多任务)
        Restart Behavior Tree 重启行为树
        Stop Behavior Tree 终止行为树
        另外 Action 一般我们程序需要扩展给策划配置 后文将提到如何自行扩展Action。


   Conditionals
        用于条件对比,例如 “是否为空” “是否是处于某状态”  “是否接收到消息” “是否等于某数值”

       17.png

        作为行为树组建中最容易理解的Conditionals,在其基本API中大多以 "Is has XXX" 开头,顾名思义即可

    如何扩展(程序)
        创建一个自定义行为(Action)或是节点
       18.png

        相关文档
        http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=5


        使用运行时(Runtime)设置的数值

        在编辑器中设置的数值有两种一种是在使用功能性节点的时候节点中需要预设的数值,另一种是全局可访问到的数值

       19.png


添加wait节点的暂停时间

         20.png


添加全局可访问的数值

         21.png


非运行时可以使用刚才设置的float数值

         22.png


当然也可使用全局数值

        说完了使用编辑器访问数值现在该使用运行时动态获取这些数值了,代码很简单

       23.png

        相关文档  
        http://www.opsive.com/assets/BehaviorDesigner/documentation.php?id=54



       结束语
           本篇中的如何扩展这一栏我觉得还是没有必要写,但还是稍微写了一点,其实代码部分我给出的官网链接可以直接拷贝代码另外官网也有视频youtube上需要FQ。祝好运~




behavior designer unity;unity behavior designer
4-1.png

评分

参与人数 2鲜花 +55 收起 理由
annie466 + 5 很给力!
朱迪 + 50 赞一个!

查看全部评分


回复

使用道具 举报

7日久生情
1653/5000
排名
717
昨日变化
1

3

主题

278

帖子

1653

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
4951
好友
1
蛮牛币
3044
威望
0
注册时间
2013-10-3
在线时间
372 小时
最后登录
2017-7-4

社区QQ达人

发表于 2015-8-14 17:03:47 | 显示全部楼层
屌爆了,正在学习,感谢分享!!

回复

使用道具 举报

5熟悉之中
569/1000
排名
3369
昨日变化
2

0

主题

104

帖子

569

积分

Rank: 5Rank: 5

UID
28104
好友
0
蛮牛币
1959
威望
0
注册时间
2014-6-4
在线时间
147 小时
最后登录
2017-3-27
发表于 2015-8-17 09:43:43 | 显示全部楼层
搜索了一下好几个资源也不知道是哪个...
最贵的75刀,其他几个都是10刀

回复

使用道具 举报

排名
2399
昨日变化
1

16

主题

170

帖子

1558

积分

Rank: 9Rank: 9Rank: 9

UID
22288
好友
9
蛮牛币
2440
威望
0
注册时间
2014-4-21
在线时间
322 小时
最后登录
2017-7-18

专栏作家

QQ
 楼主| 发表于 2015-8-17 10:24:22 | 显示全部楼层
feuerbach 发表于 2015-8-17 09:43
搜索了一下好几个资源也不知道是哪个...
最贵的75刀,其他几个都是10刀

貌似最新的是版本是1.5.1以上 你可以尝试找一下1.5.1这个版本

回复

使用道具 举报

排名
2399
昨日变化
1

16

主题

170

帖子

1558

积分

Rank: 9Rank: 9Rank: 9

UID
22288
好友
9
蛮牛币
2440
威望
0
注册时间
2014-4-21
在线时间
322 小时
最后登录
2017-7-18

专栏作家

QQ
 楼主| 发表于 2015-8-17 10:24:22 | 显示全部楼层
feuerbach 发表于 2015-8-17 09:43
搜索了一下好几个资源也不知道是哪个...
最贵的75刀,其他几个都是10刀

貌似最新的是版本是1.5.1以上 你可以尝试找一下1.5.1这个版本

回复

使用道具 举报

4四处流浪
399/500
排名
5759
昨日变化
1

7

主题

68

帖子

399

积分

Rank: 4

UID
39366
好友
0
蛮牛币
86
威望
0
注册时间
2014-8-12
在线时间
156 小时
最后登录
2016-11-1
发表于 2015-8-17 15:27:28 | 显示全部楼层
感谢作者,一直在学习。苦于没有教程,官网第三方支持插件有何处可以得到啊?主要是想要playmaker

回复

使用道具 举报

排名
2399
昨日变化
1

16

主题

170

帖子

1558

积分

Rank: 9Rank: 9Rank: 9

UID
22288
好友
9
蛮牛币
2440
威望
0
注册时间
2014-4-21
在线时间
322 小时
最后登录
2017-7-18

专栏作家

QQ
 楼主| 发表于 2015-8-17 16:07:15 | 显示全部楼层
lutongpop 发表于 2015-8-17 15:27
感谢作者,一直在学习。苦于没有教程,官网第三方支持插件有何处可以得到啊?主要是想要playmaker ...

你在蛮牛搜搜看看 有么有,插件我是不提供下载的...

回复

使用道具 举报

5熟悉之中
569/1000
排名
3369
昨日变化
2

0

主题

104

帖子

569

积分

Rank: 5Rank: 5

UID
28104
好友
0
蛮牛币
1959
威望
0
注册时间
2014-6-4
在线时间
147 小时
最后登录
2017-3-27
发表于 2015-8-18 09:09:23 | 显示全部楼层
Keyle 发表于 2015-8-17 10:24
貌似最新的是版本是1.5.1以上 你可以尝试找一下1.5.1这个版本

在论坛找到了,感谢楼主提醒

回复

使用道具 举报

4四处流浪
399/500
排名
5759
昨日变化
1

7

主题

68

帖子

399

积分

Rank: 4

UID
39366
好友
0
蛮牛币
86
威望
0
注册时间
2014-8-12
在线时间
156 小时
最后登录
2016-11-1
发表于 2015-8-18 10:40:49 | 显示全部楼层
结合点案例来讲吧,希望还有第二篇。谢谢

回复

使用道具 举报

6蛮牛粉丝
1313/1500
排名
862
昨日变化

2

主题

102

帖子

1313

积分

Rank: 6Rank: 6Rank: 6

UID
2344
好友
0
蛮牛币
4158
威望
0
注册时间
2013-8-21
在线时间
309 小时
最后登录
2016-3-16
发表于 2015-8-23 19:54:55 | 显示全部楼层
建议用nodecanvas 是Behavior Designer 和 playmaker的集合体。 360截图20150823195345609.png

回复

使用道具 举报

排名
2399
昨日变化
1

16

主题

170

帖子

1558

积分

Rank: 9Rank: 9Rank: 9

UID
22288
好友
9
蛮牛币
2440
威望
0
注册时间
2014-4-21
在线时间
322 小时
最后登录
2017-7-18

专栏作家

QQ
 楼主| 发表于 2015-8-24 10:27:29 | 显示全部楼层
zbrush 发表于 2015-8-23 19:54
建议用nodecanvas 是Behavior Designer 和 playmaker的集合体。

貌似不错的样子 去看下把

回复

使用道具 举报

排名
5919
昨日变化
1

0

主题

56

帖子

286

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
34139
好友
2
蛮牛币
1784
威望
0
注册时间
2014-7-14
在线时间
69 小时
最后登录
2016-11-10
发表于 2015-10-27 16:51:19 | 显示全部楼层
谢谢,能入门.

回复

使用道具 举报

排名
26384
昨日变化
7

0

主题

9

帖子

21

积分

Rank: 1

UID
39480
好友
0
蛮牛币
37
威望
0
注册时间
2014-8-12
在线时间
11 小时
最后登录
2016-3-30
发表于 2015-11-25 11:11:23 | 显示全部楼层
帮助很大 谢谢
[发帖际遇]: 真奇不姓妙 发帖时在路边捡到 2 蛮牛币,偷偷放进了口袋. 幸运榜 / 衰神榜

回复

使用道具 举报

排名
26384
昨日变化
7

0

主题

9

帖子

21

积分

Rank: 1

UID
39480
好友
0
蛮牛币
37
威望
0
注册时间
2014-8-12
在线时间
11 小时
最后登录
2016-3-30
发表于 2015-12-2 15:43:08 | 显示全部楼层
帮助很大~O(∩_∩)O谢谢

回复

使用道具 举报

排名
10782
昨日变化
6

0

主题

9

帖子

96

积分

Rank: 2Rank: 2

UID
131100
好友
0
蛮牛币
222
威望
0
注册时间
2015-12-7
在线时间
27 小时
最后登录
2017-1-26
发表于 2015-12-11 18:03:32 | 显示全部楼层
剛好無法下載他的Sample
這裡可以學習一下~

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表