2D动作游戏是如何做到技能或攻击位移完美贴近帧动画的?

0 条评论


  • 5

    三千不会的就去学啊!这还不简单?

    雨忆万有引力之虹Hyhz 等 5人赞同

    我做过3D的回合的半ACT游戏(原谅我这么绕- -,那个游戏实现的感觉和ACT类似,但是却是点击触发的),美术人员只负责动作,特效播放,所有的位移信息和攻击打击点,播放时机,伤害量,是否会隐藏打开物体,是否要有位移信息都是通关代码来实现的,最后我这边给他们做了一个编辑工具来做配置。说远了,还是说这个实现。

    首先美术表现和游戏表现是分开的,美术的资源只会注意动作是否流畅,给的特效资源是否和动作匹配,而与场景发生交互,每个动作的位移肯定交给程序实现。比如一个往前跳这一个动作,美术做的应该是一个由下到上在到下原地起跳落地的动作,而程序修改他的坐标位置,这样才不会出现之后策划修改了关卡配置需要让这个角色跳的更远,而每次调整都需要去让美术动资源这种浪费效率的行为。

    所以题主给的这个图片上效果可以这样,设定一个攻击类型(普通攻击),攻击类型绑定该角色特定的帧动画,然后在帧动画播放的时间内根据移动开始时间、移动持续时间、移动速度等信息来设置位移效果(可以通关曲线设置移动速度和距离,这样会有阻尼的感觉),就可以了。如果有碰撞的话是直接修改刚体的受力情况,这样前方有敌人了就不会穿插过去。

    发布于 2017-08-05 11:35:48 0 条评论


  • 4

    Owl_Myron夜猫子..常混迹于失眠界

    琪露诺君集杠杆原理 等 4人赞同

    以前做2D横版的时候刚好没有做普攻位移,都是原地的=。=完美的避开了这个问题...开个玩笑,其实是非动作横版。

    之前做过3D横版的,也许和你说的骨骼动画有关系吧。因为我不是美术,具体的并不是特别清楚。不过找美术沟通的时候,都有一个叫做中心点的东西。

    这个东西跟着主角一起移动,位移就会跟上。

    这个东西不跟随主角移动,技能完成后,位置就会回归。

    分别运用在不同的技能表现。

    不知道2D游戏是否可以参考这个模式,在程序里面画一个2D的BOX,来标识主角的位置,这是实现方法之一。据我所知2D的格斗性质的游戏本身都是有这些BOX的。


    另外就是,3D横版的主角虽然位置是很好处理。但被打击的怪物要能够持续受击,就需要跟随主角的攻击往后退。这个击退是我们手工配置的。基于这个原理,哪怕我给技能本身配一个位移距离也没什么问题吧。反正你也是需要受击位移的,1个参数和2个参数的问题。

    动作表现都不用管它,每个攻击动作附带对应的位移。击中目标后目标收到等同距离的击退。

    注意:是否有空中动作,高度信息是否有需要知道,以及相关的内容处理也要考虑好。单纯的位移如果加入空战的话,可能会导致表现不真实,需要你根据实际情况合理考虑。(因为空战内容太多,实在不想打字了=。=)


    【题外话,如果有受击硬直效果的话,我记得momodora的攻击可以按的越快攻击越快的吧?总之就是可能会无限连击,这个一般来说是不太合理的,建议通过某种击倒、击飞来解决这个问题。】




    ---------------------------------------------------------------------------------

    不懂程序开发呀,希望回答能起到些帮助吧。momodora的动作莫名的让人喜爱啊~圈粉中...

    更新于 2017-08-03 13:20:27 1 条评论


  • 1

    助理游戏策划

    杠杆原理 赞同

    位移幅度和动作幅度相匹配

    移动脚本的位置和动作节奏相匹配

    跳帧插入位移比给出移动速度和加速的效果更好

    脚步不要滑步,关注重心和脚步的关系

    发布于 2017-08-04 11:51:27 2 条评论


  • 1

    Yene杂食看戏

    杠杆原理 赞同

    1,Unity没有单纯的帧动画,还是关键帧换贴图的AnimationClip,所以你可以在动画上直接加位移关键帧。

    2.但这是绝对位移,需要一个上层节点保证相对位置和在合适的时间点做归位和位移的处置。

    3.只要意识到能用上层节点控制位移,那显示层级的位置就可以保持固定,所有位移操作都在位置节点上处理。

    4.截图里跳的操作也是同理。

    5.当然,也可以让上层节点的动画器直接控制显示层和位置层的动画。

    6.要不要分开多个动画器取决于实际需求,分开多些控制,维护也相对麻烦。

    7.自己写框架的才会在乎怎么实现,自己写游戏的在乎实现效果就好。

    8.除了你想的用动画事件做位移,还可以图片自带像素位移,或者在图片角落用两个像素记录当前帧的相对位置,或者用角落像素记录位移量(基础位移量)。

    9.方法蠢不蠢,还在于工作流是否合理,unity动画事件配置非常不直观,你自然觉得难以调整出好的效果。

    10.好为人师是病,吹牛皮也不好治。

    发布于 2017-08-03 13:05:32 2 条评论


  • 1

    琪露诺游戏喜好偏软。

    杠杆原理 赞同

    我觉得也许需要每一帧单独记录位移量……帧动画可以结合位移信息吧,只要找个地方额外存储一下就好,在每一帧刷新的时候按照对应的数值微调显示的坐标,甚至可以微调判定范围什么的(

    为了让角色看着自然,一般会考虑脚的位置吧,之前看过一篇文章讨论传统2DRPG的角色移动,因为是匀速移动的,所以经常会出现脚在地上拖的现象,被叫做滑步。

    观察上面那一副图我觉得也是通过落脚点来调节的,三段攻击当中第一段后脚脚尖不动,前脚向前跨步的时候带动全身往前;第二段的侧身幅度比较小,保证后脚大**置不变,有个细微的向后用力的动作;第三段幅度很大,全身都大幅度向前旋转了,所以后脚也有向前的移动了。(不是很了解动画设计,以上只是个人的观察he感觉吧。)

    所以对于帧动画来说,我觉得不是很适合“自动化”的解决方案,因为帧动画里身体部件不是很严格区分的……可能需要在点像素动画的时候就考虑到人物的移动方式吧,然后单独记录下位移量以后每一帧单独偏移。

    另外在有些游戏素材里见过直接在图片里存位移的,比如存人物动作帧的时候用比较长的一张图片,人物的细小位移都在图片调节好了,游戏里就不需要改变图片位置,只需要跳到下一帧也能显示正确的动画。可以试试吧。

    发布于 2017-08-03 09:44:08 10 条评论


  • 0

    XenoAmessXenoAmess

    ???这有什么技术难度么???

    整个动画是动画,动画的时候先把绘制和物理引擎解绑

    你把物理的bindingbox绘制出来,然后一点点调到动画相应的位置就是了

    动画结束后再把绘制和物理引擎绑起来

    更新于 2019-01-25 01:33:17 0 条评论

  • 登录奶牛关账号即可参与讨论

{{question['follower_count']}} 个玩家关注

...

相关元素

相关游戏

相关问题

2D 相比 3D 的制作成本上有何差异?

10人关注 3个回答

如何 0 基础开始快速学习和制作游戏音乐、音效?

138人关注 12个回答

U3D怎么实现复杂的移动?

2人关注 2个回答

问题被以下收藏夹收录