萌新的一堆关於俯视觉近战攻击的问题




  •     刚刚接触引擎的小白,完全不懂程序语言,好不容易找到这个引擎,感激得泪流满面,准备实践想法的时候却遇到以下的几个问题,希望有高手大神解答,不胜感激!
     
        我希望设计一个玩家操控角色,有八方向移动能力,向每个方向移动都有各自的奔跑动画。当按下「回车键」攻击的时候,角色会做出相应的挥剑动作,并会向着当前前进的那个方向生成一道剑气(如果当时角色为静止状态,侧会在最後面向的那个方向生成剑气),这道剑气持续0.5秒後就会消失,碰到这道剑气的敌人消失(迟点技术足够才做扣血,现在想先完成一刀死效果)。

    现在遇到的问题是:

    问题一:WDSA四方向移动的设置和相应的动画都做好了,按下按钮的时候播放相应的走路动画,松开按钮的时候播放待机动画。但不知道应该怎样设置斜向的走路动画(如WD,WA等),设置了[键盘操作]当按住W键时与[键盘操作]当按住D键时播放斜向走路动画也没有用,角色没有播放动画地一动不动的向那个方向前进(因为身体没有动作,看起来更像是滑过去的感觉)。

    问题二:当不停按下「回车键」触发角色挥剑动画的时候,会令还未完成的挥剑动作中断。

        我的想法是先画了两幅角色挥剑的素材,第一帧是准备挥剑动作,第二帧是剑已经挥过的动作,当按下「回车键」的时候,角色播放第一帧准备挥剑动作,然後等待0.3秒,播放第二帧剑已经挥过的动作,然後等待0.3秒,再播放角色站立待机动作,这样就叫做完成了一次挥剑攻击动作。但正如一开始的时候所说,这一连串事件会被不停按下「回车键」而打断,现在角色有时会挥到剑,有时只会出现第一帧准备挥剑动作,有时只会出现第二帧剑已经挥过的动作。

        小弟想知道有什麽办法可以在这0.6秒内禁用「回车键」的方法,或有什麽更好的方案优化这套动作的事件逻辑。

    问题三:有关剑气,我打算制作八道不同方向的隐形剑气绑定在角色身边。当按下 「回车键」的时候,角色播放第一帧准备挥剑动作,等待0.3秒,剑气不透明度由0改变为100,持续0.5秒,之後剑气不透明度由100改变为0,而在这0.5秒内,碰撞到这道剑气的敌人消失,其馀时间不受影响。

        我不懂得怎样更改剑气不透明度,以及怎样令剑气只在那0.5秒内对敌人造成伤害 。又或者这套方案太过复杂,有其他更好的方案去实践? 请高手大神解惑。

    问题四:我希望角色有一个方向性,意思是当我(例如按W和D键)控制角色跑向(例如东北方)某个敌人并发动攻击时,剑气就会从那个方向出现(例如角色的东北方)。而当我松开W和D键时,角色会依然面向着东北方,当我再按下「回车键」攻击时,角色仍然会向着东北方挥剑发出剑气,直到我按其他方向键角色才会更改面向的方向。这个行为逻辑具体应该怎样做?有什麽教程或例子可以参考吗? 

    ========================
        从我的問话就能看得出我是一个绝对的新手小白,实在不知道应该从何入手,提问也不知道有没有让各位高手大神看得明白或带来困扰,在这里先向大家叩个头,顺便祝各位大哥大嫂过年好,小哥哥们新一年越来越帅越发财,小姐姐新一年越吃越窈窕越动人,人人发新象,先谢过各位了 

    undefinedundefined



  • @鴨子得得3617 问题确实好多啊,一点点来吧,我就挑个问题一来回答,其他问题看其他大佬或者有时间再来答吧。
    问题一的话,其实键盘斜向不太好触发,除了事件的编写方式外,还有要求斜向两个方向键一起松开的问题,也就是同时按下两个键切换成斜向移动动画还比较好做,同时松开如果有一根手指稍微慢了一点,就很容易变成两个正交方向的其中一个方向的待机动画,而不是斜向待机动画,这点虽然也有办法可以解决,但是做起来更麻烦些,我这里先不考虑这种情况,分享一下我的做法吧:
    首先是弄好人物各个方向的动画(我这里为了演示就素材简单了些)
    undefined
    undefined
    然后创建另一个对象,不透明度设置为0,挂上八方向运动能力,而人物图像对象则是挂上绑定能力,仅绑定位置的方式绑定在这个透明对象上。
    undefined
    然后写移动事件,由于是八方向,所以把360度分割成8份,作为每个方向的判定区间,也就是每份45度,由于那个透明对象的设置角度是360度平滑移动,所以直接判断它本身的角度去换算成对应的面朝方向,然后把这个面朝方向作为依据去设置对应的朝向动画即可(唤境里正右是0度,顺时针递增):
    undefined
    具体的项目文件我也发上来吧,你可以体验看看:八方向动画切换.evk



  • 问题一:从提供的截图来看,你的动画控制没有做好,条件有交集部分。 当按下A和W时,既满足【按下A和W】,也满足【按下A】。要把【按下A】改成类似于【按下A且没有按下W】这种,让两个条件不会同时满足才行。这个要你自己去设计:你有几种可能出现的行动状态,分别对应哪几种动画,且在哪些状态下才能够播放某动画。可以去了解一下动画状态机的概念,官方的【平台跳跃模板】有写对于多种动画的控制,可以去参考下。

    问题二:如果你想让动画从头开始播放,选择【从头开始播放】而不是【从当前帧开始播放】。两者的区别在于:【从头开始播放】切换动画后,动画永远从第0帧开始播放。选择【当前帧开始播放】,上一个动画播放到多少帧,切换后的动画就从多少帧开始播放,例如动画A播放到第5帧,切换到动画B后也从第5帧开始播放。
    关于【怎么0.6秒内禁用回车】以及【怎么让某个功能在某些时候不起作用】这种问题,答案都是一样的,在条件处做限制。例如你的条件是【按下回车时】,那按下后可以把某个变量设置为1,等待0.6秒后设置成0。 然后条件改成【按下回车时,并且变量为0时】。

    问题三:不要所有的东西都用等待来做,给剑气添加【定时器】能力,定时器运行时使用事件表每帧设置透明度,新设置的透明度为【原本的透明度-每帧减少量】。或者直接使用【渐隐渐现】能力,更加简单。

    问题四:通过表达式可以获得一个实例的【坐标】、【角度】、【大小】等基本数据。当你想要释放剑气时,获取角色当前角度,把剑气设置和角色一样的角度即可。

    最后:在尝试实现某种特定的游戏功能前,建议先弄清楚引擎给你提供了哪些条件动作、哪些组件和能力、表达式可以获得哪些数据,弄清楚后在去自由组合这些内容,最好每个条件动作都试一遍,这样后续做游戏可以轻松很多。


登录后回复