啥是行为树                                                  
                                                 
                                                     
    就是你不用去BB程序了,你已经是一个成熟的策划了,该学会自己写逻辑做需求了,但是第一次写会有很多不规范的地方,最好找个人看着                            
 
                                     
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                       
                                                     
    上面这个就是一段行为树,我们的行为树会包含4种类型的基础逻辑节点,1秒25帧,每帧都会从上到下执行一遍你写的逻辑,执行结果为true才会往下跑                          
                                                     
基础逻辑节点                                                  
                                                 
                                                     
    平行 执行该节点下的所有子节点并返回true,说人话就是在这个节点下的逻辑无论能不能判定通过都会继续往下跑,不会卡住                          
                                                     
                                                     
    顺序 该节点下一旦有子节点返回false则停止执行返回false,子节点全部返回true该节点才返回true,说人话就是这个节点下的逻辑一旦有一个执行失败那整个节点都返回失败,只有全部判定执行成功他才成功            
                                                     
                                                     
    选择 该节点下一旦有子节点返回true则停止执行返回true,子节点全部返回false该节点才返回false,说人话就是这个节点下的逻辑只选判定成功的,失败的会略过,得全失败才算失败,和顺序反着来              
                                                     
                                                     
    乱选 随机执行一个子节点,结果为true则返回true,结果false返回false。人话就是瞎几把选一个执行,这个用的比较少,比较像功能节点,一般就是平行顺序选择三个轮流用                  
                                                     
                                                     
常用功能节点                                                  
                                                 
                                                     
    上面的四种基础类型相当于骨头,行为树主要是由大量其他的行为类型填充的,最基本最常用的是下面几个                                  
                                                     
    int赋值 参数1|参数2 简单地说我们不可能每帧把所有逻辑都执行掉,需要一个开关控制哪些是这个时候执行的,哪些是那个时候执行,这个时候我们就可以赋值一个参数,比如  int赋值 #40001|1  .意思是我定义了一个#40001,并把它赋值为1,后续我们就可以使用检验int来判断#40001=1的时候该做什么
                                                     
                                                     
    检验int 参数1|参数2|参数3 一般配合赋值使用,当我们给#40001赋值之后,就可以对其检验比如  检验int #40001|1|1   .意思是检测#40001是否=1(各个位置的参数含义具体可以去行为类型里面查),检验通过后再写在这个参数下的逻辑          
                                                     
                                                     
    int赋值时间 参数1|参数2 int赋值时间 #40002|10    意思是将当前行为树时间+10秒赋值给#40002,#40002这个参数是校验用,相当于为未来定义了一个时间,如果我的关卡想在N秒后执行一个操作,那么需要使用这个类型先进行校验赋值        
                                                     
                                                     
    时间大于int 参数1|参数2 时间大于int #40002|0   意思是当前行为树时间是否≥#40002内赋值的时间参数+0秒,通俗点说就是我们现在的时间是否等于我们之前规划的时间+额外时间,另一种用法是 int赋值时间 #40002|0, 时间大于int #40002|10,同样可以实现倒计时10秒,这个东西有点抽象,看自己怎么好理解用哪个,组合实现的逻辑是不变的,就是一个定时器
                                                     
                                                     
    召唤  召唤 0|#3400|2006|#30012|2|S1|0|0|S1|0|0|0   意思是在S1处召唤一个阵营为2等级为#30012看向S1的怪物2006,代表这个怪物的参数是#3400,后续对这个怪物进行任何操作都是通过#3400            
      如果需要在某个参数点召唤NPC那么就用召唤字典坐标,用法一样                                    
                                                     
    待续                                                
                                                     
                                                     
基础逻辑结构                                                  
                                                 
                                                     
    知道一些基础的行为类型之后就可以写行为树了,行为树的基础结构一般就是下面这样,分为头文件(关卡初始化)和执行逻辑                              
                                                     
    301502490 巴别塔8-1 平行             上面301502490这个带0的部分是头文件,里面的逻辑只执行一次,一般用来放一些定义的参数,但是需要注意最多只能塞50行内容,      
          组合 方法:通用关卡赋值       组合里放的是封装好的函数,说人话就是别人已经把这个关卡里很多必备的逻辑参数都定义好塞进去了,你直接调用就行,比如头文件内赋值#94001=0就能关闭入场镜头
          组合 方法:关卡初始化[1]       另外参数定义从#40000开始,防止组合内参数占用,每个定义都需要备注,防止你忘了交接的人也看不懂            
          后面是你自己的逻辑                                        
                                                     
    30150249 巴别塔8-1 顺序             下面30150249这个不带0的部分就是实际的执行逻辑了,上面说过这些逻辑每帧执行                
          组合 方法:关卡预准备[2]       需要注意的是左边列的这些平行顺序节点不要动,比如你把执行逻辑的顺序改成平行,那就会出现在入场镜头期间按钮显示出来的各种BUG      
          平行                                          
            组合 方法:关卡通用集合[3]                                    
            后面是你自己的逻辑                                      
                                                     
                                                     
                                                     
基础通用参数                                                  
                                                 
    像是开场结算镜头,关卡结算之类的很多东西其实都是通用的而且上面结构的组合里已经包括了,不需要我们手动去写                                
                                                     
    表格启用宏之后,双击后悬浮可以看到组合里包含的逻辑                                            
                       
               
   
               
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                                       
                                       
    比较常用的                                                
                                                     
    int赋值时间 #1001|8 关卡结束时间赋值                                            
                                                     
    int赋值 4#94001|1 开启关闭进出场镜头                                            
                                                     
    int赋值时间 #39990|180 关卡战斗时间赋值                                            
                                                     
    。。。。。。                                                
                                                     
关卡布怪                                                  
                                                 
                                                     
    一个地图换怪不会带来体验差异,所以推荐是怪物风格匹配地图风格,减少表现割裂                                      
                                                     
    1、res进工程                                                
   
                           
                               
                               
                               
                               
                               
                                                     
    2、关卡路径,这个路径下选地图                                              
   
                                 
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                                     
    3、打开地图编辑器                                                
   
                           
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
                               
    4、可以先看下已有地点组是否满足你的要求                                              
   
                     
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                                                     
    5、不满足就新增地点组,地点组ID和关卡表内一致,一般就是你这关的关卡ID                                        
   
                       
                           
                           
                           
                           
                           
                           
   
                                 
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                     
                                                     
    6、新增地点组之后就布点,布点一般就是出生点,看向点两个大类,需要注意角色出生点如果关卡表不填默认是右边这些,没有指定角色出生看向点又没布默认点PB1这些就会报错关卡初始化失败                  
   
                               
   
     
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
         
                                   
                                   
                                   
                                   
                                   
                                                     
    7、布好之后要提交的话只能提交坐标文件,在你第一次布点之前找个人看一下,确保流程没出错                                    
                                                     
   
                               
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                   
                                                     
                                                     
                                                     
关卡性能                                                  
                                                 
    关卡不要瞎几把放怪,对玩家和性能都不好,怪物之间的整体性,以及与地图的整体性最好强点。保险起见一关里建议同屏不超过5只怪以及3种类型的怪物,最多一种类型的BOSS,即便如此也不能保证性能不超标                
                                                     
    所以制作的时候最好还是监控一下关卡性能,防止后期性能不过返工                                          
                                                     
   
                           
                               
                               
                               
                               
                               
   
             
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                 
                           
    分析之前需要先进一次关卡,资源总大小不要超过90000KB保险一点,具体要看玩法用什么角色,否则就换图、换怪、删怪                                
                                                     
   
                     
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                         
                                                     
                                                     
                                                     
关卡调试                                                  
                                                 
                                                     
    写完逻辑点生成关卡,然后引擎快速重载                                              
   
               
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                                                     
    最好是一边写一边黑幕调试,这样可以不断排除错误增加稳定性,后期也少修BUG少返工,位置看图                                    
                                                     
 
                         
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                           
                                                     
   
                         
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                             
                                                     
                                                     
    输入或者勾选你的关卡ID,然后选择配置机器人,点右边的单机战斗就能进黑幕调试,方便你在没有关卡配置的情况下改BUG                                
                                                     
                                                     
                                                     
待续                                                  
                                                 

[1]
37000+
39000+
40000+
各参数初始化

动态等级赋值(未获取到等级则默认20级)

   记录战斗开始
   组合 方法:记录玩家
第1波定义   int赋值 #30001|0
第2波定义   int赋值 #30002|0
第3波定义   int赋值 #30003|0
第4波定义   int赋值 #30004|0
第5波定义   int赋值 #30005|0
第6波定义   int赋值 #30006|0
第7波定义   int赋值 #30007|0
第8波定义   int赋值 #30008|0
第9波定义   int赋值 #30009|0
LV.普通   获取战斗怪物等级 #30011|3
LV.精英   获取战斗怪物等级 #30012|2
LV.BOSS   获取战斗怪物等级 #30013|1
怪物波数判断  int赋值 #37001|1
怪物等级变量(无需设置) int赋值 #37003|5
怪物1Buff设定  int赋值 #37041|0
怪物2Buff设定  int赋值 #37042|0
怪物3Buff设定  int赋值 #37043|0
怪物4Buff设定  int赋值 #37044|0
怪物5Buff设定  int赋值 #37045|0
怪物6Buff设定  int赋值 #37046|0
怪物7Buff设定  int赋值 #37047|0
怪物8Buff设定  int赋值 #37048|0
怪物9Buff设定  int赋值 #37049|0
怪物1等级设定  int赋值 #37761|0
怪物2等级设定  int赋值 #37762|0
怪物3等级设定  int赋值 #37763|0
怪物4等级设定  int赋值 #37764|0
怪物5等级设定  int赋值 #37765|0
怪物6等级设定  int赋值 #37766|0
怪物7等级设定  int赋值 #37767|0
怪物8等级设定  int赋值 #37768|0
怪物9等级设定  int赋值 #37769|0
   npcid赋值 #37770|20060
关卡提示变量  int赋值 #39001|0
   int赋值 #39002|0
倒计时变量  int赋值 #39003|0
特殊选择变量  int赋值 #39004|0
特殊选择变量  int赋值 #39005|0
   int赋值 #39006|0
   int赋值 #39007|0
   int赋值 #39008|0
   int赋值 #39009|0
   int赋值时间 #39010|0
胜利等待开关1  int赋值 #39011|0
胜利等待延时1  int赋值时间 #39012|0
胜利等待开关2  int赋值 #39013|0
胜利等待延时2  int赋值时间 #39014|0
关卡结束分支  int赋值 #39015|0
   int赋值时间 #39020|0
   int赋值 #39021|0
最终波镜头时间  int赋值时间 #39030|0
最终波确认波数  int赋值 #39031|0
最终波镜头进度  int赋值 #39032|0
互动键按键间隔  int赋值时间 #39033|0
互动键按键开关  int赋值 #39034|0
互动键开关  int赋值 #39035|3
互动键读条  int赋值 #39036|1
互动键编号  int赋值 #39037|1
守护目标进度  int赋值 #39038|0
装逼时间判断  int赋值时间 #39039|0
装逼结束结算1次  int赋值 #39040|0
最终波打完不结束  int赋值 #39041|0
互动目标   int赋值 #39042|0
镜头暂停计时控制  int赋值 #39043|0
镜头暂停计时计数  int赋值 #39044|0
战斗复活使用开关  int赋值 #39051|1
关卡提示跳过计算  int赋值 #39069|0
第1句关卡提示  int赋值 #39070|0
关卡提示开关1  int赋值 #39071|0
关卡提示开关2  int赋值 #39072|0
关卡提示开关3  int赋值 #39073|0
关卡提示开关4  int赋值 #39074|0
关卡提示开关5  int赋值 #39075|0
关卡提示开关6  int赋值 #39076|0
关卡提示开关7  int赋值 #39077|0
关卡提示开关8  int赋值 #39078|0
关卡提示开关9  int赋值 #39079|0
   int赋值时间 #39080|999
   int赋值 #39081|1
关卡提示换人键显示  int赋值 #39082|0
关卡提示计时开关  int赋值 #39083|0
关卡提示计时器  int赋值 #39084|0
保护目标Tips开关  int赋值 #39085|0
开场隐藏界面开关  int赋值 #39086|0
开场隐藏界面间隔  int赋值时间 #39087|0
关卡提示结束不恢复按键 int赋值 #39089|0
互动键结束不恢复按键 int赋值 #39091|0
按钮显示隐藏判断  int赋值 #39092|1
战中剧情宠物显隐判断 int赋值 #39093|0
超时判定参数1  int赋值 #39097|0
超时判定参数2  int赋值 #39098|0
超时判定参数3  int赋值 #39099|0
胜利判断参数  int赋值 #39100|0
Tips滚动计数  int赋值 #39101|0
Tips滚动计时  int赋值时间 #39102|2
助战召唤用  int赋值 #41000|0
1 胜利;2 失败;3 进场;0 不想要进场或者进场结束
暂停倒计时  magic #2001|#2001|0|710161
暂停战斗计时  magic #2001|#2001|0|710163
怪物分组初始CD  int赋值 4#93031|3
   int赋值 4#93032|4
   int赋值 4#93039|2
   int赋值 4#305017|1
   int赋值 4#305016|0
宠物不隐藏  int赋值 4#410099|0
   int赋值 #39999|0
   int赋值时间 #30000|0
   int赋值时间 #38000|0
   int赋值时间 #39000|0
关卡倒计时计时  int赋值时间 #39990|300
   int赋值时间 #5000|0
   int赋值 #5010|0
   int赋值 #5011|0
   int赋值 #5012|0
   int赋值 #5013|0
   int赋值 #5015|0
   int赋值 4#1900|0
   int赋值 4#1901|1
   int赋值 4#1902|2
   int赋值 4#1903|3
   int赋值 4#1904|4
   int赋值 4#1905|5
   int赋值 4#1906|6
   int赋值 4#1907|7
   int赋值 4#1908|8
   int赋值 4#1909|9
   int赋值 4#1910|10
   int赋值 4#91220|0
   设置低饱和度 #2001|0|0
[2]
1. 角色出场动作时隐藏界面
2. 等待角色出场动作结束
3. 恢复倒计时和战斗计时
[3]
37000+
39000+
40000+
各参数初始化

动态等级赋值(未获取到等级则默认20级)

   记录战斗开始
   组合 方法:记录玩家
第1波定义   int赋值 #30001|0
第2波定义   int赋值 #30002|0
第3波定义   int赋值 #30003|0
第4波定义   int赋值 #30004|0
第5波定义   int赋值 #30005|0
第6波定义   int赋值 #30006|0
第7波定义   int赋值 #30007|0
第8波定义   int赋值 #30008|0
第9波定义   int赋值 #30009|0
LV.普通   获取战斗怪物等级 #30011|3
LV.精英   获取战斗怪物等级 #30012|2
LV.BOSS   获取战斗怪物等级 #30013|1
怪物波数判断  int赋值 #37001|1
怪物等级变量(无需设置) int赋值 #37003|5
怪物1Buff设定  int赋值 #37041|0
怪物2Buff设定  int赋值 #37042|0
怪物3Buff设定  int赋值 #37043|0
怪物4Buff设定  int赋值 #37044|0
怪物5Buff设定  int赋值 #37045|0
怪物6Buff设定  int赋值 #37046|0
怪物7Buff设定  int赋值 #37047|0
怪物8Buff设定  int赋值 #37048|0
怪物9Buff设定  int赋值 #37049|0
怪物1等级设定  int赋值 #37761|0
怪物2等级设定  int赋值 #37762|0
怪物3等级设定  int赋值 #37763|0
怪物4等级设定  int赋值 #37764|0
怪物5等级设定  int赋值 #37765|0
怪物6等级设定  int赋值 #37766|0
怪物7等级设定  int赋值 #37767|0
怪物8等级设定  int赋值 #37768|0
怪物9等级设定  int赋值 #37769|0
   npcid赋值 #37770|20060
关卡提示变量  int赋值 #39001|0
   int赋值 #39002|0
倒计时变量  int赋值 #39003|0
特殊选择变量  int赋值 #39004|0
特殊选择变量  int赋值 #39005|0
   int赋值 #39006|0
   int赋值 #39007|0
   int赋值 #39008|0
   int赋值 #39009|0
   int赋值时间 #39010|0
胜利等待开关1  int赋值 #39011|0
胜利等待延时1  int赋值时间 #39012|0
胜利等待开关2  int赋值 #39013|0
胜利等待延时2  int赋值时间 #39014|0
关卡结束分支  int赋值 #39015|0
   int赋值时间 #39020|0
   int赋值 #39021|0
最终波镜头时间  int赋值时间 #39030|0
最终波确认波数  int赋值 #39031|0
最终波镜头进度  int赋值 #39032|0
互动键按键间隔  int赋值时间 #39033|0
互动键按键开关  int赋值 #39034|0
互动键开关  int赋值 #39035|3
互动键读条  int赋值 #39036|1
互动键编号  int赋值 #39037|1
守护目标进度  int赋值 #39038|0
装逼时间判断  int赋值时间 #39039|0
装逼结束结算1次  int赋值 #39040|0
最终波打完不结束  int赋值 #39041|0
互动目标   int赋值 #39042|0
镜头暂停计时控制  int赋值 #39043|0
镜头暂停计时计数  int赋值 #39044|0
战斗复活使用开关  int赋值 #39051|1
关卡提示跳过计算  int赋值 #39069|0
第1句关卡提示  int赋值 #39070|0
关卡提示开关1  int赋值 #39071|0
关卡提示开关2  int赋值 #39072|0
关卡提示开关3  int赋值 #39073|0
关卡提示开关4  int赋值 #39074|0
关卡提示开关5  int赋值 #39075|0
关卡提示开关6  int赋值 #39076|0
关卡提示开关7  int赋值 #39077|0
关卡提示开关8  int赋值 #39078|0
关卡提示开关9  int赋值 #39079|0
   int赋值时间 #39080|999
   int赋值 #39081|1
关卡提示换人键显示  int赋值 #39082|0
关卡提示计时开关  int赋值 #39083|0
关卡提示计时器  int赋值 #39084|0
保护目标Tips开关  int赋值 #39085|0
开场隐藏界面开关  int赋值 #39086|0
开场隐藏界面间隔  int赋值时间 #39087|0
关卡提示结束不恢复按键 int赋值 #39089|0
互动键结束不恢复按键 int赋值 #39091|0
按钮显示隐藏判断  int赋值 #39092|1
战中剧情宠物显隐判断 int赋值 #39093|0
超时判定参数1  int赋值 #39097|0
超时判定参数2  int赋值 #39098|0
超时判定参数3  int赋值 #39099|0
胜利判断参数  int赋值 #39100|0
Tips滚动计数  int赋值 #39101|0
Tips滚动计时  int赋值时间 #39102|2
助战召唤用  int赋值 #41000|0
1 胜利;2 失败;3 进场;0 不想要进场或者进场结束
暂停倒计时  magic #2001|#2001|0|710161
暂停战斗计时  magic #2001|#2001|0|710163
怪物分组初始CD  int赋值 4#93031|3
   int赋值 4#93032|4
   int赋值 4#93039|2
   int赋值 4#305017|1
   int赋值 4#305016|0
宠物不隐藏  int赋值 4#410099|0
   int赋值 #39999|0
   int赋值时间 #30000|0
   int赋值时间 #38000|0
   int赋值时间 #39000|0
关卡倒计时计时  int赋值时间 #39990|300
   int赋值时间 #5000|0
   int赋值 #5010|0
   int赋值 #5011|0
   int赋值 #5012|0
   int赋值 #5013|0
   int赋值 #5015|0
   int赋值 4#1900|0
   int赋值 4#1901|1
   int赋值 4#1902|2
   int赋值 4#1903|3
   int赋值 4#1904|4
   int赋值 4#1905|5
   int赋值 4#1906|6
   int赋值 4#1907|7
   int赋值 4#1908|8
   int赋值 4#1909|9
   int赋值 4#1910|10
   int赋值 4#91220|0
   设置低饱和度 #2001|0|0