[开发者心得] 坤坤出品|冷兵器预制体使用分享|干货满满

[复制链接]
1926 |2
森林鹿 发表于 2023-4-13 18:48:31 | 显示全部楼层 |阅读模式
一、基础教程
下载并导入[冷兵器][冷兵器功能],并设置好参数
最新版本下载请前往》》 坤坤出品 | 预制体大合集 | 适配027版本

下载完后导入到编辑器工程内容里
image.png
点开[功能_冷兵器]——即“某个冷兵器的预制体”,将其拖入到场景
20221227154503_rec_-convert.gif
点开[冷兵器]——即“所有冷兵器的核心前置预制体”,找到冷兵器预制体,右键,复制工程内容ID
找到刚才拖出去的[功能_冷兵器],在右侧对象管理器里,展开触发器里的配置,找到冷兵器预制件Guid,并将刚才复制的ID粘贴进去
20221227154729_rec_-convert.gif
此时运行游戏,拾取地上的冷兵器,就会出现相应的UI,点击攻击按钮,角色就有攻击动作
20221227155242_rec_.gif

二、扩展教程
1.更换动效
以论坛链接 https://forum.ark.online/forum.php?mod=viewthread&tid=962 里的金刚狼代码为例
image.png
下载后打开,这是一串json化的配置,看不懂对吧,看不懂就对了,之后会教你怎么读懂它
image.png
全选,复制下来,找到对象管理器/功能_冷兵器/触发器/配置/表现设置/动作数据,将上面的内容完整地粘贴进去
20221227160728_rec_.gif
此时运行游戏,拾取地上的冷兵器,就会出现相应的UI,点击攻击按钮,角色的动作就会变成酷炫的动作了
20221227161222_rec_-convert.gif
但是第一遍动作会僵硬,这是因为客户端还没有下载完成这个动作,实际上 在处理动效Json的时候, reWriteAnimationJson()接口会对所有guid进行预加载,所以第一下之后就正常了
image.png
如果你是个完美主义者,希望第一遍就能正常使用,那就需要把json化配置里的guid填入对象管理器/功能_冷兵器/触发器/配置/表现设置/预加载资源里。
如果你懒得一个一个找guid,那么就可以在上面的代码的这个位置输出需要额外预加载的guid
image.png
运行之后拿起地上的棍子,你就可以看到log里的guid了,再把这些guid粘贴进预加载,就可以顺畅使用了
image.png
2.调整预制体里的其他配置
image.png
2.1其他表现设置
右手装备、左手装备,玩家拾取地上的装备后,默认出现在左右手的静态模型,地上显示的默认是右手装备
你也可以在以下脚本位置修改、自定义化地面上的模型
image.png
也可以在这里自定义化玩家手上的装备
image.png
受击动画:被攻击到的玩家、AI播放的动画
命中特效:被攻击到的玩家、AI击中位置的特效
你可以在这个接口修改击中时的反馈效果
甚至可以在这里添加一些Attacker方、Victim方的击中反馈
image.png
2.2参数设置 伤害&武器时间
image.png
持续时间:该冷兵器在玩家手里持续的时间,单位秒
你也可以在这里设置是否要有到时清除玩家武器、清除时的动作等等
image.png
伤害:击中其他玩家的伤害 —— 前置:https://forum.ark.online/forum.php?mod=viewthread&tid=1194 中的[玩家系统]
下载,导入,并且拖到场景里
image.png
运行前调成2人模式,切记不要打开单机模式
image.png
运行后就可以用冷兵器造成伤害了
20221227191837_rec_.gif

3.根据不同index顺序来设置不同段伤害&表现形式
首先,如果想知道不同段的动作对应什么index 需要找到这一行代码
image.png
这个接口传入了三个参数
curActionIndex —— 当前index
maxIndex —— 最大index
hitObjs —— 击中GameObject的数组
而在PrefabEvent.PrefabEvtFight.hurt(Gameplay.getCurrentPlayer().character.guid, e.guid, this._hitDamage);中,this._hitDamage 决定了击中后要造成多少伤害
把这一行注释掉,然后在上面加上console.log("当前index:"+curActionIndex);
image.png
这时运行,人数选两人,攻击另一个玩家时,log窗口会输出当前角色的攻击是第几段(前提是打中了
可以看到共有0~5,6段攻击
20221228142053_rec_-convert.gif
image.png
运行前再把伤害改为10,免得一套连招打下来还没打完人就挂了
image.png
改好后运行,这样就完成了不同段攻击击中时的伤害不同(注意看,左下角受击的伤害随不同index而不同
20221228151205_rec_-convert.gif
注意到,第四段(index==3)攻击有一个上挑动作,如果要受击者受到第三段攻击时被击飞需要怎么办呢?
或许有人会说“老师老师,这题我会!”
然后啪一下,很快啊,上来就在判断里加了一个index==3的时候,给被击中目标向上的冲量
image.png
但是,需要注意到,这个接口执行的时候的环境是在C端(Client 2),而角色的冲量运动必须在服务端才行
image.png
所以我们需要在这里传一个事件给服务端,带上被击中的角色
image.png
然后搜索“trigger.onEnter.add(this.server_playerEnter.bind(this));”,在它后面加上***和冲量脚本
image.png
运行起来,当角色攻击到上挑的index时,受击者就会被击飞一定高度,这样看起来就会更帅一些!~
20221228160205_rec_-convert.gif
20221228160557_rec_-convert.gif

以上只是对已有的json化配置如何使用的教程
如果想创建自己的动效,可以看看这篇动效编辑器帖子
https://forum.ark.online/forum.php?mod=viewthread&tid=1297

20221227154503_rec_-convert.gif
回复

使用道具 举报

叽里咕噜小胡桃 发表于 2023-4-13 18:50:57 | 显示全部楼层
如果要轻松制作自己的动效的话,欢迎来体验这个新的动效编辑器呀~ 轻量化冷兵器平替,你值得拥有~!
https://forum.ark.online/forum.p ... &extra=#pid4079
回复

使用道具 举报

kk 发表于 2023-4-13 19:23:30 | 显示全部楼层
回复

使用道具 举报

热门版块
快速回复 返回顶部 返回列表