站内搜索

搜索
热搜: 活动 交友 discuz

iFAction 世界需要你的想象力!

[已解决] 大量ACT模式下问题求助!

2

主题

5

帖子

72

积分

iF基础方块

Rank: 3Rank: 3

积分
72
发表于 2020-7-10 22:23:07 | 显示全部楼层 |阅读模式
本帖最后由 JT飞 于 2020-7-13 17:38 编辑

问题① ACT模式攻击动作帧对攻击范围判定

我发现如果将攻击帧勾选后,角色的碰撞模块会变成有伤害的。但是我并不想这样,我希望只在攻击范围内设置攻击区域,但是如果调整攻击帧的碰撞模块,会导致角色本身出现碰撞问题。

举例说明:比如站在敌人头上属于模块碰撞,可以实现。显然如果不是玛丽奥这种游戏你站在敌人头上并不会造成伤害。然后一但你攻击就会出现你向前攻击但是脚下的敌人受伤这种搞笑的情况……如果把攻击帧的角色碰撞体积调整,来防止这种情况的话显然会造成攻击帧的时候角色下沉之类的问题【毕竟角色碰撞体积位置都发生变化了】。请问有简单的方法处理这个情况么?

个人猜想:我能想到的解决方法是直接通过技能作为攻击方式,攻击本身没有攻击帧判定,技能则设置成近距离的子弹模式来保证攻击范围……但是我还是希望问一下有办法在设置角色的时候就直接解决这个问题么?
目前解决方案:通过将子弹射程调成1,个数一个,然后配置将子弹配置成技能动画,给被击中者配置被击中动画,然后将技能调整成投掷物,调整资源中的技能动画坐标实现了仅判定攻击范围内伤害,不判定自身模型产生伤害。基本满足我的需求了,但是不知道有没有更好地解决方案。

问题② 角色【无论控制角色还是敌对角色】似乎没有僵直的设定

虽然资源中可以配置被击中动画,也可以设置被击中动画所占帧数。但是实际测试中我发现并没有真正的僵直。如果一个敌对角色试图发动攻击,比如这个攻击动作有48帧,那么在攻击帧判定前,这个敌对角色如果被击中,他应当进入被击动画,也就是理论上的僵直帧,但是实际上对方似乎会处于霸体状态,直到攻击结束。而如果控制角色在敌对角色攻击时,使用普通攻击,那么很大概率会出现角色直接卡入地面的情况【敌人素材使用盗贼,可控角色使用剑士,均是默认素材】。

问题③ 下落速度

虽然地图中有重力设置,但是改变重力其实主要是改变跳跃高度。我似乎并没有发现下落速度,这个功能需要修改脚本进行实现么?这个问题的主要目的其实很简单,作为ACT类型的游戏,浮空攻击可以说是很常见的了,而且和上一个僵直其实也有关联,就是如果敌人被击飞时继续被攻击,通常应该会出现短时间的浮空僵直,也就是不会下落,而且浮空后飞起和下落的速度也希望能略慢于跳跃时的跳起和下落速度,玩过动作类的应该都明白,这样子手感极佳。

个人猜想:给所有攻击全都添加小幅度浮空……不过感觉这么搞会出现大量bug…………另外浮空攻击的高度调高点……emmmm结果看起来会怪怪的…………

问题④  互动

简单来说就是比如抓取类技能的实现。因为范例中并没有看到这类技能的范例,所以没有可以参考的目标。触发器相关的攻略我目前还未看完【有点多233】,是否可以通过触发器实现这类功能呢?比如抓取敌人抛出去或者持续抓取敌人后可以在一小段时间内移动跳跃这些功能。

问题⑤ 无敌帧

因为角色的碰撞模块本身就是用来当做伤害判定模块的,所以这就出现个问题,如果我打算设置一个闪避,我只能提高角色幸运增加闪避概率……而不能做到真正的无效化攻击。

31

主题

304

帖子

1557

积分

管理员

iFAction缔造者

Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22Rank: 22

积分
1557

iFAction学院校长

发表于 2020-7-13 16:49:18 | 显示全部楼层
我还是来对号入座回答问题吧

问题1
其实你的思路已经非常正确了,如果想扔掉判定区域,就需要用到子弹机制
同样,我们可以利用子弹机制制作上砍,或者跳起来,向下砍等操作

当然我们还可以修改脚本
在LActor中this.getAtkRect函数中修改,大概462行

问题2
有僵直,只是时间很短,都可以调整

主角的僵直时间在
SMain中160行 actor.stiff(10);
意思就是收到攻击造成10帧的硬直
Tips
161行的actor.invincible(60);
就是角色收到攻击的无敌时间,是60帧,也就是一秒

敌人的硬直修改
LEnemy的98行  char.stiff(10);

问题3:
其实当前的物理环境中,没有“力”的概念,有的只是加速度概念
比如重力系数52,其实在游戏算法中的解释就是 向下速度增加 0.52像素/帧
而比如跳跃为10 相当于 直接给予了一个向上的 10的速度,这时候,由于受向下加速度的影响,就会看起来升高速度越来越慢,随后下落,形成一个抛物线运动规则。

所以如果想要达成你的需求,就需要重力与跳跃初速度一起修改,比如我们将重力系数改为 26,跳跃高度改为6,这样我们在让跳跃高度保持不变的情况下,下落速度又变慢了


问题4:
抓取其实很简单啊,如果击退设置为负数,不就相当于靠近角色了么?

问题5:
想要特别细致的制作某一个动作帧无敌,这个确实是很有难度的,主要的难点在于目前的资源编辑器,资源数据结构是锁死的,无法扩展。如果要用逐帧检测效率又很低,如此想想,不如还是做一个叫做翻滚的技能,然后附加一个短暂的无敌buff好了= =

2

主题

5

帖子

72

积分

iF基础方块

Rank: 3Rank: 3

积分
72
 楼主| 发表于 2020-7-13 17:37:46 | 显示全部楼层
七夕小雨 发表于 2020-7-13 16:49
我还是来对号入座回答问题吧

问题1

感谢小雨的解答~原来僵直是写在脚本里的233怪不得更改被击动画帧数是没用的。顺带,原来击退还可以设置负数么!?子弹可以设置小数,击退可以设置负数,奇怪的只是又增加了!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系我们
QQ群:977585123
iFAction下载
Windows客户端
反馈
意见建议
iFAction

iFAction

京ICP备15053274号-1

Powered by Discuz! X3.4 © 2001-2013 Comsenz Inc.