游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3039|回复: 7

引擎中区域触发器的作用,兼谈制作心得

[复制链接]

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
发表于 2007-6-7 17:09:00 | 显示全部楼层 |阅读模式
引擎中的区域触发器,会直接影响到剧情制作,战斗AI,区域OP编程。

一,区域触发器在剧情制作中的作用:举个很简单的例子,当角色走到某个区域,这时触发一个游戏功能。比如当角色走到断桥上,然后桥断了,角色被摔死。这时,GameOver了。比如角色走到门边,这时,门自己就打开了。这种区域触发器总是依靠事先定制好的一系列由外部工具做好的数据,然后依靠这些数据,给定区域参数,最后达到目的,这是一种基于fix数据的触发器形式。

二,区域触发器在战斗AI中的作用:这里只能局部来说一下区域触发器和战斗AI,因为战斗系统比较大,涉及很多条件反射流程,诸如AI选择施展的技能等等,在概念上我将这种流程定义为条件反射流程。区域触发器是负责在该反射流程前面做范围检定做。举个例子,角色都有警戒范围,当敌方角色进入警戒范围,这时区域触发器就会通知条件反射流程进行。这里面的具体攻击方式,法术施展等等,是另一套为游戏量身定做的AI流程。该流程在触发上依靠区域触发器,在运行时会依靠区域检定来决定行动。区域鉴定是一种,衡量达到攻击效果和付出攻击代价的流程,其中距离满足AI因素是主要付出的代价。这种区域触发器总是根据角色不断的移动而变换触发范围,这是一种基于dynamic数据的区域触发器形式。

三,区域OP编程:OP角色是区域触发器在角色运用过程中的应用。举个例子,当角色正在施展一套暴风雪技能,这时区域被触发器锁定,凡是进入该区域时,均受到暴风雪技能的影响。区域OP编程和战斗AI的区别在于,战斗AI对于区域触发器的使用是基于底层的,区域OP编程则是基于高层区域触发器系统使用的。

总结一下。区域触发器所具备的必须功能:
1,角色进入区域触发vn事件
2,角色离开区域触发vn事件
3,角色身处区域触发vn事件
4,区域可移动,并在移动中捕捉角色
5,区域触发检测的制作很讲究技巧。因为一旦被应用到AI系统中,触发频率是很高的。检测效率是个不大不小的问题。比如几百个角色的运动,这时对区域触发系统的性能是有一定要求的。
6,区域应该用长矩来做,放弃用圆和椭圆。

以上是一些制作心得。随便侃侃。
顺带说一声,制作区域触发系统的数据编辑功能还是有点麻烦,我很头大;)

6

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2007-6-8 09:13:00 | 显示全部楼层

Re:引擎中区域触发器的作用,兼谈制作心得

触发器以前我们做过...在网络游戏里面作任务使用的.

以前叫做机关系统.

主要由触发器和动作对象组成

触发器主要有

时间触发器
区域触发器
动作触发器
等.

地图编辑器上设置触发器到地图上, 然后放置动作对象,然后把触发器连接到动作对象上, 并设置触发器触发后执行动作对象的哪种操作,从而实现一系列的功能.

比如, 定时开关的门, 规定数量的人才能打开的重力机关, 指定人数进入房间刷BOSS, 定时传送, 指定时间内击破几个石像,就打开某个门,只类的....

这些用在MMORPG游戏里基本上是足够了.

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
 楼主| 发表于 2007-6-8 17:25:00 | 显示全部楼层

Re: Re:引擎中区域触发器的作用,兼谈制作心得

昨天晚上: Re:引擎中区域触发器的作用,兼谈制作心得

触发器以前我们做过...在网络游戏里面作任务使用的.

以前叫做机关系统.

主要由触发器和动作对象组成
...


感觉和你有点共同语言,呵呵。

timetrigger,我基于deltatime在实现,在node节点做了个自动触发器。直接按逻辑时间触发一对多vn出去。并没有直接的触发器接口,可能以后会对剧本层做这种接口。

actiontrigger,整个系统都是基于这种方式在做。每个moudle都是独立的,register以后,直接收事件。对该功能我划分很细,细到,滚屏,显示fps,等等,都单一化了。

areatrigger,感觉他和核心关系比较密切,丝丝寇寇的那种关系,深思了很久,这种trigger只能放在内部实现。原因多多。

mmoarpg做起来有点麻烦,那些底层,高层的很多的action接口都要做成command形式,要不然不好同步,不好做协议。

另,我业余在做个ARPG玩。回头和你好好侃侃。

我很想就,技能筛选AI,衡量arc,任务系统,很多东西和探讨一下。我很喜欢借鉴+分析你们的脑精。呵呵。

workfun.!

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
 楼主| 发表于 2007-6-8 17:29:00 | 显示全部楼层

Re:引擎中区域触发器的作用,兼谈制作心得

补充一下。

所有的trigger我全用pascal的脚本在实现。引擎就是个功能元。好处不多,坏处不少,唯一是比较舒服。奇想做大,代价很大。用分析算法,大概把引擎中那些接口导了1W多个到脚本。

made fun~

13

主题

245

帖子

245

积分

中级会员

Rank: 3Rank: 3

积分
245
发表于 2007-6-8 23:08:00 | 显示全部楼层

Re:引擎中区域触发器的作用,兼谈制作心得

呵呵,WIN的控件就是消息触发器嘛。。。你可以写一个触发器通用框架出来,不用具体实现,纯虚的接口即可,造福大家,这才是真正的心得。。。呵呵

8

主题

716

帖子

716

积分

高级会员

Rank: 4

积分
716
发表于 2007-6-15 10:27:00 | 显示全部楼层

Re:引擎中区域触发器的作用,兼谈制作心得

简单的办法
所谓的触发就是普通的OBB盒子之间的碰撞
那么编辑触发区,就是编辑一个OBB盒子在场景里,给它一个ID,同时绑定一个CALLBACK函数,类似于boost::functional这种玩意

然后当人物的OBB与场景中的OBB发生碰撞,即代表触发

20

主题

222

帖子

276

积分

中级会员

Rank: 3Rank: 3

积分
276
发表于 2007-6-17 23:37:00 | 显示全部楼层

Re:引擎中区域触发器的作用,兼谈制作心得

看过点WarIII的事件编辑器,x触发器的感觉真爽

197

主题

1041

帖子

1104

积分

金牌会员

Rank: 6Rank: 6

积分
1104
QQ
 楼主| 发表于 2007-6-18 09:09:00 | 显示全部楼层

Re:引擎中区域触发器的作用,兼谈制作心得

逻辑部分两次检查。第一次检查xy地图,第二次才是AABB计算相交。

逻辑不难搞。那些ide工具,脚本,工程中的接口麻烦。

编辑环境


游戏触发器

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-13 09:49

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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