一种基于动作状态机的动作无缝过渡方法及系统与流程

文档序号:38030646发布日期:2024-05-17 13:10阅读:12来源:国知局
一种基于动作状态机的动作无缝过渡方法及系统与流程

本发明涉及动作状态机动作管理,特别是一种基于动作状态机的动作无缝过渡方法及系统。


背景技术:

1、当前对游戏的品质要求越来越高,市面上的游戏很多开始使用无缝动作系统增强动作表现,比如motionmatching技术的出现很大层度提高了动作表现效果,但是motionmatching技术也存在性能消耗比较大,对移动端支持不理想等限制;于是很多游戏使用原有引擎的状态机动作系统来做无缝动作系统,比如使用unity的animator切换不同的动作并且做过渡融合、左右脚衔接、融合树等达到无缝动作衔接效果;在从一个动作过渡到另一个动作时,经常性会出现因为两个动作差别比较大融合时效果不佳,或者有些是程序控制角色转向、击飞等等,如何优化动作过渡时的效果对动作整体表现提升至关重要。


技术实现思路

1、本发明的目的在于提供一种基于动作状态机的动作无缝过渡方法,能够使用动作状态机提高在动作切换时的过渡表现效果。

2、为实现上述目的,本发明提供如下技术方案:一种基于动作状态机的动作无缝过渡方法,所述方法包括以下步骤:

3、步骤s1、角色起步时,通过动作状态机将八相位起步动作融合出所有角度的角色起步转身动作;

4、步骤s2、角色起步后角色移动时,通过动作状态机融合不同速度的角色移动动作;

5、步骤s3、角色在移动过程中需要转身,则通过动作状态机将多个不同的边转身边移动动作融合出所有角度的角色移动转身动作;

6、步骤s4、在角色移动过程中需要肢体贴地和抓取时,使用ik动画工具做表现效果;

7、步骤s5、在遇到事件中断移动过程时,判断当前动作帧是迈开左脚还是右脚以及脚离地高度,根据遇到事件时左脚或者右脚离地高度,融合出收脚的动作,收步动作播放完成,然后切换到响应事件的动作;

8、步骤s6、被击时,根据顿帧和播放指定某一帧动作做角色振动表现效果;步骤s7、被击死亡时,使用布娃娃系统做击飞,根据外界力度表现不同动作效果。

9、进一步的,所述步骤s1进一步具体为:通过动作状态机在角色待机状态下将往八个方向移动的动作做融合,并且根据动作对角色旋转的角度设置这八个动作的权重;所述八个方向分别为角色移动初始朝向角度、角色移动初始朝向的左45°、角色移动初始朝向的左90°、角色移动初始朝向的左135°、角色移动初始朝向的左180°、角色移动初始朝向的右45°、角色移动初始朝向的右90°、角色移动初始朝向的右135°、角色移动初始朝向的右180°。

10、进一步的,所述步骤s2进一步具体为:角色移动时,通过动作状态机融合走路到最大速度跑步动作,根据角色或在场景的实际位移速度融合出对应的前进动作。

11、进一步的,所述步骤s3进一步具体为:通过动作状态机在走路或者跑步过程中转身将多个不同的边转身边移动动作做融合,并且根据动作对角色旋转的角度设置这多个动作的权重;所述步骤s3中多个不同的边转身边移动动作的角度分别为角色移动不转身初始朝向角度、角色移动转身向左180°、角色移动转身向右180°。

12、进一步的,所述步骤s5中的事件包括在移动过程中如果遇到障碍物且剩余距离小于步幅的事件与响应外部动作改变的事件。

13、进一步的,所述步骤s5中的判断当前动作帧是迈开左脚还是右脚以及脚离地高度是通过把移动的脚动作运动情况预先写入移动动作的curves曲线中,根据左右脚的脚底骨骼的y的差值写入到curves曲线中,然后角色在播放走路或者跑步时读取该curves曲线进行判断,其中y的差值代表左脚掌骨骼的世界坐标y值减去右脚掌骨骼世界坐标y值的差值,角色移动时差值大于0,就代表当前是左脚在前,差值就是左脚掌高度,角色移动时差值小于0,就代表右脚在前,差值就是右脚掌高度。

14、本发明还提供了一种基于动作状态机的动作无缝过渡系统,所述系统包括:起步转身模块、角色移动模块、移动转身模块、肢体接触模块、事件中断模块、被击模块、被击死亡模块;所述起步转身模块负责角色起步时,通过动作状态机将八相位起步动作融合出所有角度的角色起步转身动作;所述角色移动模块负责角色起步后角色移动时,通过动作状态机融合不同速度的角色移动动作;所述移动转身模块负责角色在移动过程中需要转身,则通过动作状态机将多个不同的边转身边移动动作融合出所有角度的角色移动转身动作;所述事件中断模块负责在遇到事件中断移动过程时,判断当前动作帧是迈开左脚还是右脚以及脚离地高度,根据遇到事件时左脚或者右脚离地高度,融合出收脚的动作,收步动作播放完成,然后切换到响应事件的动作;所述被击模块负责被击时,根据顿帧和播放指定某一帧动作做角色振动表现效果;所述肢体接触模块负责在角色移动过程中需要肢体贴地和抓取时,使用ik动画工具做表现效果;所述被击死亡模块负责被击死亡时,使用布娃娃系统做击飞,根据外界力度表现不同动作效果。

15、进一步的,所述起步转身模块进一步具体为:通过动作状态机在角色待机状态下将往八个方向移动的动作做融合,并且根据动作对角色旋转的角度设置这八个动作的权重;所述八个方向分别为角色移动初始朝向角度、角色移动初始朝向的左45°、角色移动初始朝向的左90°、角色移动初始朝向的左135°、角色移动初始朝向的左180°、角色移动初始朝向的右45°、角色移动初始朝向的右90°、角色移动初始朝向的右135°、角色移动初始朝向的右180°。

16、进一步的,所述角色移动模块进一步具体为:角色移动时,通过动作状态机融合走路到最大速度跑步动作,根据角色在场景的实际位移速度融合出对应的前进动作。

17、进一步的,所述移动转身模块进一步具体为:通过动作状态机在走路或者跑步过程中转身将多个不同的边转身边移动动作做融合,并且根据动作对角色旋转的角度设置这多个动作的权重;所述步骤s3中多个不同的边转身边移动动作的角度分别为角色移动不转身初始朝向角度、角色移动转身向左180°、角色移动转身向右180°。

18、进一步的,所述事件中断模块中的事件包括在移动过程中如果遇到障碍物且剩余距离小于步幅的事件与响应外部动作改变的事件。

19、进一步的,所述事件中断模块中的判断当前动作帧是迈开左脚还是右脚以及脚离地高度是通过把移动的脚动作运动情况预先写入移动动作的curves曲线中,根据左右脚的脚底骨骼的y的差值写入到curves曲线中,然后角色在播放走路或者跑步时读取该curves曲线进行判断,其中y的差值代表左脚掌骨骼的世界坐标y值减去右脚掌骨骼世界坐标y值的差值,角色移动时差值大于0,就代表当前是左脚在前,差值就是左脚掌高度,角色移动时差值小于0,就代表右脚在前,差值就是右脚掌高度。

20、本发明的有益效果:本发明通过八相位起步转身动作融合出所有角度的起步转身动作,起步转身之后通过融合走路到最大速度跑步动作,根据角色或者怪物在场景的实际位移速度融合出对应的前进动作,之后通过在走路或者跑步过程中如果需要转身也是使用向左和向右各转180°,融合出所有的跑步或者走路转身,之后通过在跑步或者走路时如果遇到楼梯等需要肢体贴地和抓取的情况时使用ik动画工具做脚掌贴地(或者手掌贴墙壁),在跑步或者走路过程中遇到要穿越障碍物最后一步步幅小于正常步幅时,通过步骤s4也是融合出不同步幅的收步动作,在播放完收步动作之后再播放穿越障碍物动作,在外部输入攻击等指令时,根据左脚或者右脚离地高度,融合出收脚动作,播放完收脚动作此时两脚贴地,然后再播放攻击等动作,通过步骤s5在被击时通过顿帧实现之前抖动效果,并且在死亡时通过步骤s7使用布娃娃系统实现全流程的动作自然过渡,提高了动作表现效果,各步骤串起了角色在游戏中从待机到跑步到穿越障碍物到攻击以及被击最后死亡完整流程的动作无缝过渡,很好模拟了motionmatching技术里面动作无缝效果,并且性能相对motionmatching有很大提升,支持移动端应用。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1