抢先预约

《新倩女幽魂》官方论坛

热帖
同人
视频
活动
查看: 7683|回复: 25

[家园] 【名人堂】818关于家园智能怪物的那些事——手把手教你如何金屋藏"娇"

[复制链接]
发表于 2018-5-13 00:35:10 | 显示全部楼层 |阅读模式 来自:浙江

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

您需要 登录 才可以下载或查看,没有帐号?创建论坛帐号

x
本帖最后由 梵依。 于 2018-5-13 04:08 编辑

3-2.gif



想不想要一个上图这样会动会说话的活的小家伙?

40.gif



最近家园设计大赛如火如荼啊..

大家似乎对花花草草都已经麻木了...

我们来点新鲜刺激的...



(这个东西会有一点点难,

但是学会了之后会有很多变数供你玩个痛快










目   录



1楼 家园自定义怪物是个啥&怪物详解

2楼 预定义AI详解

3楼 新增AI详解

4楼 备用楼








【家园自定义怪物是个啥?】


1-1.png


在自己的家园里,

点下这个按钮,会打开如下界面:

1-4.png


基本操作方式是,

1.鼠标点击所要编辑的怪物,拖到右边放下;

2.然后再点击所要编辑的属性,拖到右边放下;

3.编辑完毕后,点击确定,内容就保存到了笛子上;

4.你的包裹里会有一个怪物笛子;

5.使用笛子即可召唤怪物。



但是只经过了这样的操作,

所召唤的怪物是身上没有AI的,是不会动的。

点击“智能”选项卡,即可编辑AI。

1-3.png


编辑完AI后,点击“提交”,

然后再回到怪物页面,点击“确定”,

即可更新笛子上的怪物信息。



这个AI的基本逻辑是:

当一个事件发生时,

AI检测是否满足预设条件

满足条件,则执行设定的行为

不满足条件,则不执行任何操作






【怪物设定详解】


1.怪物的外观



怪物的外观好比是它的皮囊,

而你亲手写的AI,赋予了你的怪物以灵魂。

(这样说是不是感觉特别牛×)


所以,怪物由1个好(ni)看(xuan)的皮囊,

和1个你赋予的灵魂组成。

故,一个怪物只能有一副皮囊。



1-5.png


怪物的属性包括:

1-6.png

特别说明一下势力这个东西,

如果你的家园里放了灵兽,而且设置的是主动攻击,

那么设置为友方势力,会导致它被你的灵兽一顿群殴,但奶妈可以给它加血。

设置为敌方势力,会导致它看见你就一顿狂殴,奶妈无法给它加血,但是不会被灵兽打。

设置为中立势力,它就不会挨人的打,也不会打人,但奶妈还是可以给他加血,但是还是会被灵兽群殴..。





怪物的等级反正我怎么搞都是69级,

移动速度我设置为中,势力我设置为中立,存活时间我填了0,

其他的属性我都设置的高,

名字自己填吧。



1-7.png


点击确定,即可获得一个怪物笛子。



1-8.png


右键使用笛子,

即可召唤出刚才编辑好的怪物。


1-9.png


但是刚才说了,这样的怪物它不会动的,

而如何操作让它动起来,

请看下一楼。





(P.S  我因为已经看腻了宋体和黑体,你所看到的截图中,字体是我已经换过的。

关于游戏的字体怎么改,可以去搜搜教程,

简单讲就是替换游戏客户端所在文件夹里的字体文件,操作很简单,

但替换的时候注意下载包含完整GBK字库的字体文件,不要用只包含简体字的字体文件,

否则替换出来会有很多特殊符号和繁体字不显示)

评分

1

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2018-5-13 01:47:41 | 显示全部楼层 来自:浙江
本帖最后由 梵依。 于 2018-5-13 04:01 编辑

【关于预定义AI】

预定义AI大致包括:
-说闲话;

-移动到指定坐标;

-靠近坐标,说闲话后再移动;

-靠近坐标,说闲话;

-跟随看到的任意玩家;

-跟随指定玩家;

-普通攻击;

-脱离仇恨后归位;

-仇恨不随距离衰减;

-视野触发仇恨;

-不攻击家园主人。

切换到“智能”选项卡,
点击“新增预定义AI”,
即可开始编辑。
2-0.png

当然,编辑完了不要忘了点提交
然后再回到怪物页面点击确定,来更新笛子上的信息。



1.说闲话

2-1.png

触发几率:填0到1之间的数,可以是个小数,0就是不触发,1就是必定触发;
喊话内容:你想要怪物说的话,当然要文明啦,可以很长;
触发间隔:0到10之间的数,单位是秒。

2-1-2.png

(为了演示,我把间隔设定成了1)

出来的就是如下图这样:
2-1.gif




2. 移动到指定坐标

2-2.png

我设定了两段AI。
坐标可以参考右上角小地图上方的显示,
格式就是(X,Y)。

2-2-1.png
像这个,X就是86,Y就是108.

效果如下:
2-2.gif




3.跟随看到的任意玩家/跟随指定玩家

2-3.png

这两个相比差异只是在,
跟随指定玩家需要设置参数,参数就是你指定的玩家id。
而跟随看到任意玩家,是跟随第一个进入怪物视野的玩家。
效果如下图。

2-3.gif




4.普通攻击+视野触发仇恨/脱离仇恨后归位/仇恨不随距离衰减/不攻击家园主人

如果要使用这个,
需要把怪物的势力指定为敌方。

2-4.png

效果如下。

2-4.gif

(P.S 这个小家伙很脆的。。)

上面是只设置了普通攻击的情况,
如果你要做成主动怪,需要附带上“视野触发仇恨”。

2-4-1.png

2-4-1.gif

如果你要让她像皇城夺书里的怪物一样,
一追追十八条街,
那就再加上“仇恨不随距离衰减”。

2-4-2.png

2-4-2.gif

如果你不想让她这么死缠烂打的,
就加上“脱离仇恨后归位”。

2-4-3.png

2-4-3.gif

如果你这个怪物不想让它打你自己,
那你就加上“不攻击家园主人”,
那么她就不会打你了~

2-4-4.png


P.S

至于靠近坐标,说闲话后再移动 和 靠近坐标说闲话,
需要在AI前面预先加好“移动到指定坐标”,
这个指定坐标需要和你在靠近坐标里写的坐标一致。
此外,还有别的办法让小家伙做上述两个动作,
请移步3楼。

回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-13 02:04:42 | 显示全部楼层 来自:浙江
本帖最后由 梵依。 于 2018-5-13 04:16 编辑

【新增AI详解】


新增AI自定义程度更高,

当然也就意味着更加复杂,和更加多样化。

这里我从事件、条件以及行为三个部分来讲解,
事件和条件会放在一起讲,因为不同的事件下,可检测的条件有差异。



复习下1楼说过的基本概念,


当一个事件发生时,

AI检测是否满足预设条件

满足条件,则执行设定的行为

不满足条件,则不执行任何操作

通俗说,

当天下起了雨,你恰好在这里,这里有个带了伞的我,于是我为你打起了伞,而后我们相爱了。
这句话,“天下起了雨”=事件,
“你恰好在这里”和“这里有个带了伞的我”=条件,
“我为你打起了伞”和“而后我们相爱了”=行为,而且是顺序执行的行为。

同样是天下起了雨这个事件,(事件发生)
事件发生时,你恰好不在这里,或者这里没有带了伞的我,(也就是条件不符合)
那就不存在我为你打起了伞,也就不会相爱了。(行为不会执行)






一、事件和条件

一个事件下,支持设置多个条件,
3-1.png

具体事件和条件如下。




1.每秒触发:只要时间在流逝,那么秒针每跳一下,就会检测一次条件。
可选择的条件:
自身等级,包括大于、等于、小于,值需要自己填写;
自身血量,包括大于、等于、小于,值就是怪物的血量,是一个数值;
自身血量百分比,包括大于、等于、小于,值是怪物的血量百分比,不需要填写百分号,值在0到100之间;
自身坐标,就是靠近某个坐标,参数是X,Y,距离;前两个就是指定坐标的X和Y值,取值范围是1到254之间的整数,第三个值取值范围是1-20之间的整数;
(比如说我写250,250,3,意思就是当怪物自身靠近250,250这个坐标3格范围内,视为符合条件)
仇恨目标距离,包括大于、等于、小于,代表仇恨第一位目标与自身的距离,取值范围是0到100之间的整数;



2.目标进入视野:当目标进入到怪物的视野时,检测条件(与这条密切相关的是怪物的视野,如果视野范围大,就更容易发生;反之亦然);
可选择的条件除了每秒触发里的所有内容,新增了如下:
目标职业:判断规则是等于、不等于,内容是下拉框选择各种职业(这里等于按照“是、符合”理解,不等于按照“不是、不符合”理解)
3-2.png
目标血量、目标血量百分比:设置内容等同于自身血量和自身血量百分比,只是对象变成目标;
目标角色类型:判断规则是等于、不等于,内容是下拉框选择玩家或者怪物;
目标玩家ID:判断规则是等于、不等于,内容是手动输入玩家ID;
目标距离:与仇恨距离大致相同,但与仇恨距离不同的是,仇恨是指双方必须势力互为敌对(就是见面可以互相打架的那种),目标距离则只要进入了怪物视野就算是目标。


3.受到攻击:怪物挨打的时候,检测条件(与这条密切相关的是怪物的势力,如果你设置的是友方怪或者中立,那你必须在旁边放一个家园灵兽,且设置为主动攻击才可能发生怪物挨打这件事);
条件与目标进入视野相同。



4.出生:怪物出生的时候,检测条件(通常怪物出生是基于你用笛子召唤,或者有人进入家园的时候);
条件与每秒触发相同。



5.进入战斗:怪物进入战斗的时候,检测条件(与受到攻击不同的是,怪物打人的时候也会算作事件发生);
6.离开战斗:怪物离开战斗的时候,检测条件;
这两条的条件都与每秒触发相同。




二、行为

3-2.png

其实严格说,行为树这概念大概不是很适合,
叫做行为序列更合适吧。
改图太麻烦了,就不改了。。_(:з」∠)_原谅我的懒。

一个简单说话+移动的序列如下:
3-2-1.png

3-2.gif
(这货在我朋友家园里,嘿嘿你猜猜在哪)




行为包括:
1.说闲话:就是瞎bb,闲话内容可以自己输入,但是不长;
3-2-2.png

2.移动至坐标:怪物走到指定坐标;
3-2-3.png

3.销毁:没有参数,就是怪物会自己把自己干掉;

4.结束智能:没有参数。不加这个,那么一段AI会反复循环执行,加了就执行一次。

5.怪物朝向:参数是朝向角度,0-360之间整数。
3-2-4.png


6.表情动作:参数是表情动作,每一个怪物支持的动作不一样,自己探索吧233
3-2-5.png

7.场景特效:参数是特效名字、X坐标、Y坐标和持续时间,
特效可下拉框选择,
X和Y坐标取值在1-255之间,
持续时间是1-10,单位秒。
3-2-6.png
场景特效指的是在地图里发生的特效,比如月亮啊地震之类。

8.屏幕特效:参数是屏幕特效名,
屏幕特效就是。。比如说比武招亲抛绣球那个,就是屏幕特效。
3-2-7.png

9.等待:勾选了顺序执行才会出现,参数是时间,单位秒,取值范围是1到60之间的整数。
如果你写的内容不加等待,那间隔就是0,会非常快,快到看不清。
3-2-8.png




三、实战

铺垫了这么久,实打实写一段吧。
刚说有个靠近坐标后说闲话后移动,就按照这个写一段。

3-2-9.png

3-2-9.gif

  1. ^SQNAI^N1^N1^Z^N1^N1^B^Z^N1^Sequal^N1^N1^N2^N69^N6^N4^N2^N2^N143^N2^N165^N5^N1^N2^N3^N3^N1^N2^S世界始终你好。^N5^N1^N2^N3^N4^N2^N2^N145^N2^N160^N4^N2^N2^N155^N2^N165^N0
复制代码
(复制上述内容,点击家园自定义怪物-智能,点击“导入”按钮,贴进去即可)
我在这段AI里没有加结束智能,所以她会循环这样走动,说话,走动。
如果我加一个结束智能,就是下面这样:
3-2-9-2.png

3-2-9-2.gif
她在这样执行完之后,就直接停住不动了。
  1. ^SQNAI^N1^N1^Z^N1^N1^B^Z^N1^Sequal^N1^N1^N2^N69^N7^N4^N2^N2^N143^N2^N165^N5^N1^N2^N3^N3^N1^N2^S世界始终你好。^N5^N1^N2^N3^N4^N2^N2^N145^N2^N160^N4^N2^N2^N155^N2^N165^N7^N0^N0
复制代码
3.gif

写的比较仓促,所以存在肉眼可见的问题,
我预想是让她优雅地跳一段舞,
然后走到一个坐标问一句话召唤一个特效,
然后再优雅地继续跳舞。
39.png


第一段:
39-1.png

条件这样写,是为了它一定能触发,因为怪物出生的等级是69;
然后按照顺序执行跳舞,等待10秒的设定与第二段有关;
移动坐标再等待,是为了后续的AI能执行。
当然,这段因为包含了移动坐标,所以只执行一次。



第二段:
39-2.png
条件还是一样的,
这是边跳舞边念诗的第二段【念诗】这部分AI,
可以看到我设定了3个等待3秒,
故我在第一段AI里写了一个等待10秒的设定。
这里加了个结束智能,是避免与我等下要她说别的话冲突。



第三段,

39-3.png

条件写靠近151,162,1,
意思是靠近151,162这个点1格范围内,
第一段AI里有一个移动到这个点,就是为了这段AI能够执行。
这段AI我只需要它执行一次,
执行完毕后会回到152,168这个坐标,移动坐标是为了让它顺序执行后续AI。



第四段,
39-4.png

这是后续说话的AI,
没有加结束智能,所以她会一直念诗。



第五段,
39-5.png

条件一样,执行跳舞。
第四和第五段,连起来就是最后的循环跳舞+念诗。
  1. ^SQNAI^N5^N1^Z^N1^N1^B^Z^N1^Sequal^N1^N1^N2^N69^N4^N9^N1^N4^N4700006^N5^N1^N2^N10^N4^N2^N2^N151^N2^N162^N7^N0^N0^N1^Z^N1^N1^B^Z^N1^Sequal^N1^N1^N2^N69^N8^N3^N1^N2^S昔有佳人公孙氏,^N5^N1^N2^N3^N3^N1^N2^S一舞剑器动四方。^N5^N1^N2^N3^N3^N1^N2^S观者如山色沮丧,^N5^N1^N2^N3^N3^N1^N2^S天地为之久低昂。^N7^N0^N0^N1^Z^N1^N1^B^Z^N1^Snearby^N1^N7^N2^S151,162,1^N7^N9^N1^N4^N4700002^N5^N1^N2^N3^N3^N1^N2^S公子可是,来偷菜的?^N5^N1^N2^N3^N10^N4^N5^N3800115^N2^N157^N2^N164^N2^N10^N4^N2^N2^N152^N2^N168^N7^N0^N0^N1^Z^N1^N2^B^Z^N1^Snearby^N1^N7^N2^S152,168,1^N7^N3^N1^N2^S昔有佳人公孙氏,^N5^N1^N2^N3^N3^N1^N2^S一舞剑器动四方。^N5^N1^N2^N3^N3^N1^N2^S观者如山色沮丧,^N5^N1^N2^N3^N3^N1^N2^S天地为之久低昂。^N0^N1^Z^N1^N1^Z^Z^N1^Snearby^N1^N7^N2^S152,168,1^N1^N9^N1^N4^N4700006^N0
复制代码
总结一下:
当一个怪物的AI里拥有多个AI序列,默认他们是同时执行的;
我们可以通过在序列里添加行为,
然后设定下一个序列的条件是执行到序列的最后一段才会符合,
那么它就会变成顺序执行的。

刚我这段,两次移动坐标这个行为,
就是为了让怪物按照顺序执行我要她干的事情。

你想要一些现成的AI?
移步四楼。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-13 04:00:10 | 显示全部楼层 来自:浙江
【备用楼】



1楼头图里的AI:

  1. ^SQNAI^N1^N1^Z^N1^N2^B^Z^N1^Snearby^N1^N7^N2^S183,102,10^N20^N3^N1^N2^S你来我家干啥?^N5^N1^N2^N1^N3^N1^N2^S你别是来偷菜的吧?^N5^N1^N2^N2^N3^N1^N2^S你会被打的我跟你讲^N5^N1^N2^N3^N3^N1^N2^S我爸爸三蝴蝶刷刷刷!^N5^N1^N2^N3^N3^N1^N2^S哎不理你了。。^N5^N1^N2^N1^N3^N1^N2^S我什么时候才能有老婆^N5^N1^N2^N3^N4^N2^N2^N181^N2^N106^N5^N1^N2^N1^N3^N1^N2^S地上好像有点脏。。^N5^N1^N2^N1^N9^N1^N4^N4700027^N3^N1^N2^S反正我是不会扫地的!^N4^N2^N2^N184^N2^N99^N7^N0^N0
复制代码


如果想要让1楼这个小家伙在看到特定的人说些特别的话,

就用下面这一段:

  1. ^SQNAI^N2^N1^Z^N1^N2^B^Z^N1^Snearby^N1^N7^N2^S183,102,10^N20^N3^N1^N2^S你来我家干啥?^N5^N1^N2^N1^N3^N1^N2^S你别是来偷菜的吧?^N5^N1^N2^N2^N3^N1^N2^S你会被打的我跟你讲^N5^N1^N2^N3^N3^N1^N2^S我爸爸三蝴蝶刷刷刷!^N5^N1^N2^N3^N3^N1^N2^S哎不理你了。。^N5^N1^N2^N1^N3^N1^N2^S我什么时候才能有老婆^N5^N1^N2^N3^N4^N2^N2^N181^N2^N106^N5^N1^N2^N1^N3^N1^N2^S地上好像有点脏。。^N5^N1^N2^N1^N9^N1^N4^N4700027^N3^N1^N2^S反正我是不会扫地的!^N4^N2^N2^N184^N2^N99^N7^N0^N0^N1^Z^N2^N1^B^Z^N1^Sequal^N1^N8^N2^N2932360186^N12^N3^N1^N2^S爸爸你回来啦!^N5^N1^N2^N2^N3^N1^N2^S记得给弟弟喂书!^N5^N1^N2^N3^N3^N1^N2^S弟弟应该在这里!^N5^N1^N2^N1^N4^N2^N2^N175^N2^N117^N5^N1^N2^N3^N3^N1^N2^S我要继续看门了!^N5^N1^N2^N1^N4^N2^N2^N181^N2^N104^N7^N0^N0
复制代码


四段kfz内置AI:

(参观房屋)

  1. ^SQNAI^N5^N2^N2833406^Z^Z^Z^Z^N0^N0^N2^N2^N150^N2^N118^N2^N2833402^Z^Z^Z^Z^N0^N0^N6^N2^N150^N2^N118^N2^S这是前厅~^N2^N1^N2^N110^N2^N118^N2^N2833402^Z^Z^Z^Z^N0^N0^N6^N2^N110^N2^N118^N2^S这是主人的屋子~^N2^N2^N2^N110^N2^N100^N2^N2833405^Z^Z^Z^Z^N0^N0^N3^N2^N110^N2^N100^N2^S我就带你参观到这里了~^N1^Z^N1^N1^Z^Z^N1^Snearby^N1^N7^N2^S110,100,2^N1^N6^N1^N2^N5^N0
复制代码
(跟随说话)

  1. ^SQNAI^N4^N2^N2833404^Z^Z^Z^Z^N0^N0^N0^N2^N2833405^Z^Z^Z^Z^N0^N0^N3^N2^N184^N2^N91^N2^S主人要出门了吗?^N2^N2833405^Z^Z^Z^Z^N0^N0^N3^N2^N110^N2^N118^N2^S我看这丫鬟长得还挺标致^N2^N2833405^Z^Z^Z^Z^N0^N0^N3^N2^N177^N2^N118^N2^S小主人一般就在这边玩
复制代码
(主动怪,注意势力等设置)

  1. ^SQNAI^N6^N2^N2833407^Z^Z^Z^Z^N0^N0^N0^N2^N2833408^Z^Z^Z^Z^N0^N0^N0^N2^N2833409^Z^Z^Z^Z^N0^N0^N0^N2^N2833410^Z^Z^Z^Z^N0^N0^N0^N1^Z^N5^N1^Z^Z^N1^Sgreater^N1^N3^N2^N0.3^N1^N3^N1^N2^S我要你尝尝我的厉害^N0^N1^Z^N1^N1^Z^Z^N1^Sless^N1^N2^N2^N1^N2^N3^N1^N2^S我做鬼也不会放过你的^N7^N0^N0
复制代码
(参观房屋的另外一种写法)

  1. ^SQNAI^N1^N1^Z^N4^N1^B^Z^N0^N9^N4^N2^N2^N150^N2^N118^N3^N1^N2^S这是前厅^N5^N1^N2^N1^N4^N2^N2^N110^N2^N118^N3^N1^N2^S这是主人的屋子^N5^N1^N2^N2^N4^N2^N2^N110^N2^N100^N3^N1^N2^S我就带你参观到这里了^N6^N1^N2^N5^N0
复制代码




回复 支持 反对

使用道具 举报

发表于 2018-5-13 11:06:35 | 显示全部楼层 来自:河北
我先占坑还来得及吗
回复 支持 反对

使用道具 举报

发表于 2018-5-13 15:36:29 | 显示全部楼层 来自:浙江
真是服了,这是有多少个小号朋友?辛苦啦!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-13 16:14:58 | 显示全部楼层 来自:浙江
孟婆。 发表于 2018-5-13 11:06
我先占坑还来得及吗

来得及!

评分

1

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2018-5-13 17:25:11 | 显示全部楼层 来自:湖南
我没搞这些,两只蝶子一个人物,朝向特效设置完就不管了,顶多蝴蝶颜色不喜欢,杀了让它自己刷新
回复 支持 反对

使用道具 举报

发表于 2018-5-13 19:20:50 | 显示全部楼层 来自:浙江
梵依出品
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-13 21:02:46 | 显示全部楼层 来自:浙江
love冰藍 发表于 2018-5-13 17:25
我没搞这些,两只蝶子一个人物,朝向特效设置完就不管了,顶多蝴蝶颜色不喜欢,杀了让它自己刷新 ...

23333 你试试玩点花样
回复 支持 反对

使用道具 举报

发表于 2018-5-13 21:19:33 | 显示全部楼层 来自:广东
前排占坑!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-14 02:36:50 | 显示全部楼层 来自:浙江
晚舟。 发表于 2018-5-13 21:19
前排占坑!

回复 支持 反对

使用道具 举报

发表于 2018-5-14 10:37:41 | 显示全部楼层 来自:山东
6666晚上回去试试 给大佬递茶
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-15 00:18:14 | 显示全部楼层 来自:浙江
天灰泪` 发表于 2018-5-14 10:37
6666晚上回去试试 给大佬递茶

回复 支持 反对

使用道具 举报

发表于 2018-5-15 03:38:05 | 显示全部楼层 来自:山东
终于找到个正儿八经的讲解分享文了 kfz的介绍太不友好了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 创建论坛帐号

本版积分规则

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