抢先预约

《新倩女幽魂》官方论坛

热帖
同人
    视频
    活动
    查看: 6688|回复: 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的介绍太不友好了
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

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