CN101515373A - 竞技性交互式动画生成方法 - Google Patents

竞技性交互式动画生成方法 Download PDF

Info

Publication number
CN101515373A
CN101515373A CNA2009100969758A CN200910096975A CN101515373A CN 101515373 A CN101515373 A CN 101515373A CN A2009100969758 A CNA2009100969758 A CN A2009100969758A CN 200910096975 A CN200910096975 A CN 200910096975A CN 101515373 A CN101515373 A CN 101515373A
Authority
CN
China
Prior art keywords
action
role
attack
state
sigma
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2009100969758A
Other languages
English (en)
Other versions
CN101515373B (zh
Inventor
庄越挺
梁璋
肖俊
陈成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN2009100969758A priority Critical patent/CN101515373B/zh
Publication of CN101515373A publication Critical patent/CN101515373A/zh
Application granted granted Critical
Publication of CN101515373B publication Critical patent/CN101515373B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明公开了一种竞技性交互式动画生成方法。本方法利用了一种分层的框架来对交互式运动流程进行建模,即:状态层面和动作层面。在状态层面,通过构造有限状态机(Finite State Machine)来模拟交互式运动中状态之间的转换。在动作层面,通过混合式的方法来生成在对应状态下,最符合当前角色之间对峙形势的动作选择。为了解决单个角色运动捕获数据无法体现角色间交互行为的问题,本方法使用一种基于机器学习和经验性规则的混合方法来捕获和模拟角色间的交互行为,获得了很好的效果,生成的动画具有视觉上的自然性和真实性。

Description

竞技性交互式动画生成方法
技术领域
本发明涉及一种竞技性交互式动画生成方法,具体涉及基于单个角色运动捕获数据条件下,运用混合经验性规则和机器学习模型模拟竞技性交互式运动中的交互行为来生成动画的方法,属于机器学习和智能动画创作的领域。
背景技术
交互式角色动画在目前流行的游戏和电影中非常的普遍,对于这部分角色动画的研究和应用也成为学界与工业界关注的重点。我们所提到的交互式行为分为两类:同步的交互式行为和不同步的交互式行为。其中带有竞赛性质的不同步交互式行为在各种形式的竞技体育中都会出现,比如拳击运动、跆拳道运动和空手道运动中,因此也被称为竞技性的交互行为。这类交互式的运动所具有的共同特点就是它强调的是针锋相对,交互行为发生的时间和方式不存在彼此的顺序相关性。
和传统的同步式的交互行为如跳舞相比,竞技性的交互行为最大的差别体现在一方行为能否成为对方行为的控制信号。例如,跳舞时角色双方以一种两者一人引导另一人跟从的方式来进行交互,主导者的行为就成为被引导者行为的一个控制信号。而在竞技性的交互式行为中,角色双方都在试图通过假动作或者其他方式欺骗对方并寻找攻击对方的机会,一方的动作并不能作为引导另一方行为的信号,彼此的行为都具有针对性和时空上的不同步性,这也正是需要通过技术手段和算法来进行模拟所要突出特点的地方。
在对竞技性的交互动画模拟生成的方法中,同传统基于手工编辑和绘制的动画相比,基于运动捕获数据的动画生成方式可以大大提高工作的效率和减少手工负担,并且当对当前动作进行编辑的时候,不需要考虑到角色彼此之间的藕合关系。但是在实际的捕获过程中,由于存在遮挡和标记点错位导致标记点信息丢失的情况,所以很难进行多角色运动捕获数据的重建和恢复工作。而基于单角色的运动数据捕获因为它在技术上的成熟性,辅之以运动数据的编辑和合成技术,正逐渐成为目前研究和工程上生成交互式动画的一个主流实现思路。
合成和模拟多角色的交互式动画是一件困难的事情,原因在于如何使得角色间的交互行为显得真实和自然。2006年在期刊Computer Animation and VirtualWorlds上发表的《Interactive generation of falling motions:Research Articles》,公开了一种通过预测运动轨迹在运动捕获数据中融入物理生成动作的方法来模拟角色受到击打跌倒的过程。2005年在ACM Transaction on Graphics发表的《Dynamic response for motion capture animation》,该方法公开了一种基于特别的搜索规则来融合运动捕获数据和物理模拟,用于模拟对于非预料性影响的反应。2006年在SCA上发表的《Composition of complex optimal multi-charactermotions》公开了一种利用最优化过程约束外界影响和角色间交互的方法。以上方法的共同特点是,他们都是针对于角色间单一非持续性的交互式行为。实际上,在很多情况下,需要生成的是持续性的、非限定性的角色间交互式行为。一些研究人员也提出了专门针对某种场景的竞技性的交互式动画生成方法。例如,2008年发表在IEEE Transaction on Visualization and Computer Graphics上的《Two-Character Motion Analysis and Synthesis》,该方法构建包含相似动作的组之间的基于概率的迁移模型,在实际的模拟过程中,由迁移模型来指导合成的过程。但是这种方法过度依赖于样本的学习过程。2008年在Symposium onInteractive 3D Graphics and Games上发表的《Simulating interactions of avatars inhigh dimensional state space》,利用一个交互图来记录样本中所有具有意义的交互行为,在生成的过程中,利用动态规划算法来在交互图中搜索目标动作。但是这种方法只能保证交互行为的自然过渡,而不能保证所搜索到的目标行为最符合当前的形势参数。
发明内容
本发明的目的是克服现有技术的不足,提供一种竞技性交互式动画生成方法。
竞技性交互式动画生成方法包括如下步骤:
1)建立基于马尔科夫链的有限状态机模型,来模拟控制交互式运动角色的状态迁移,获得下一个时间戳角色所对应的状态;
2)在步骤1)所得到的下一个时间戳角色对应的状态的基础上,运用混合式的方法,结合基于经验性规则所定义的规则模型和基于机器学习所定义的交互式模型,来获得最符合当前角色间对峙形势的动作;
3)按照步骤2)所规划的动作索引序列对已经进行分段的运动数据单元进行参数调整和线性缝合,生成交互式动画。
所述的建立基于马尔科夫链的有限状态机模型,来模拟控制交互式运动角色的状态迁移,获得下一个时间戳角色所对应的状态步骤:
a)获取训练样本的特征集合{Фn}。这里的特征Φi={Di, Oi,Vi}是用来作为评估当前对峙形势的一组向量,包括了角色之间的距离Di,角色的朝向Oi,以及角色相对于世界坐标系的速度Vi,这些值可以通过视频中手工标定获得,也可以通过视觉算法自动跟踪获得;
从训练样本中,获取观察值Mi所对应的样本特征集合{ФMi},首先定义观察值为一组向量,包含了状态集合即平衡、防守和攻击中的不同状态所对应的视觉特征,对每个状态所对应的样本特征计算一个平均特征公式如下:
Φ ~ Mi = Σ n = 1 k Mi Φ n k Mi - - - 1
其中kMi是样本集合中属于观察值Mi的数量;然后在样本集合中,获得相邻样本间的迁移概率P(Φii-1);
b)利用训练好的状态机模型,在生成新的状态时,计算当前的特征Φi,根据马尔科夫链算法,计算使得最优值E最小的观察值Mi所对应的状态作为下一个状态,公式如下:
E = Σ i = 0 n ψ ( Φ i , M i ) + ω Σ i = 1 n P ( Φ i | Φ i - 1 ) - - - 2
其中阈值ω用来调节概率部分所占最优值中的比重,ψ()是用来计算特征向量Φi和观察值Mi之间的匹配差值,公式如下:
Figure A20091009697500084
其中向量<Δdisi,Δvcom,Δθi>对应当前状态i的特征,<ΔdisM,Δvcom-M,ΔθM>对应于观察值Mi的特征,
Figure A20091009697500085
是欧拉距离。
所述的在步骤1)所得到的下一个时间戳角色对应的状态的基础上,运用混合式的方法,结合基于经验性规则所定义的规则模型和基于机器学习所定义的交互式模型,来获得最符合当前角色间对峙形势的动作步骤:
c)在混合式的方法的规则模型中,为状态集合即平衡、防守和攻击中的三种状态:平衡、攻击和防守构造模型,决定平衡和防守状态所对应的动作;其中平衡的规则模型为:
dis~N(μ,σ2)    4
其中dis是角色两者之间的距离,这个距离在模拟的过程中遵守高斯分布,其中高斯参数来自于样本的分析;防守的构造模型为:
δ=et-φ          5
其中δ为决定角色防守动作的值,t为从对手发起攻击到完成攻击的持续时间,φ为模拟人的神经系统的反应盲区阈值;其中t通过如下公式计算:
t = 2 S a ‾ - - - 6
其中S是攻击角色的拳头在时间t内运动轨迹的模,a为对应的平均加速度;攻击的模型通过角色间的距离dis阈值θdis-far-middel和θdis-middle-near来将攻击的行为划分成近、中和远三种攻击候选集合{Gnear,Gmiddle,Gfar};
d)在混合式的方法的机器学习模型中,构造了针对组合攻击、出击选择和被击打反应这三种交互式行为的子模型,来模拟竞技性交互式运动中的这些交互行为;
在组合攻击模型的构造过程中,构造一个组合拳迁移图,图中的每个节点表示攻击动作ai,节点之间的有向边表示两个动作之间的迁移;每一个样本在图中用e=(A,G,E)来表示,A表示攻击行为的链表,G是所属的动作候选集合,E表示这些行为之间的边;图中节点之间的迁移概率P(Ti,j)的计算公式如下:
P ( T i , j ) = w ( a i , a j ) Σ j = 1 λ w ( a i , a j ) - - - 7
其中w(ai,aj)是在样本集合中从攻击动作ai到aj的迁移次数,λ是样本中从攻击动作ai为源动作迁移出来的不同动作数量;构造好组合拳的迁移图后,在实际模拟过程中,在完成一个攻击动作ai后,计算图中所有从ai为源动作的迁移指数Si,j
Si,j=Suc(ai)·P(Ti,j)·eτ+Si-1,i    8
其中Suc()是一个二值函数,当且仅当当前的攻击动作ai达到攻击的效果时才为1,否则为0;Si-1,i是当前攻击前一个迁移指数;在所有的从ai为源动作的迁移动作中,选取可以使当前的值Si,j最大的aj为下一个攻击所采取的动作;
在出击选择模型的构造过程中,用向量x∈Rd来表示当前对峙的形势,向量t∈Rm来表示输出的攻击选择,t可以用x以基函数的形式进行表示:
t = Σ i = 1 r w i φ i ( x ) + ϵ ≡ WΦ ( x ) + ϵ - - - 9
其中{φi(x)|i=1,...,r}是基函数,wi是-Rm的权值,ε是模拟误差;将φi和wi分别用向量和矩阵的形式进行表示,得到-Rm基函数向量和m×n的权值矩阵W,如式9所示;基于已获得的样本数据{(tk,xk)|k=1,...,n},其中n为样本数据的大小;对W进行约束求值:
W : = arg W min { Σ k = 1 n | | WΦ ( x k ) - t k | | 2 + R ( W ) } - - - 10
其中R()是基于矩阵W的规范式;利用相关向量机算法对式10进行求解;
在被击打反应模型的构造过程中,利用物理生成的动作片段作为反应前动作和反应后动作中间的一个过渡;首先利用动态规划算法获得假设中角色关节点轨迹,然后以所获得的轨迹为比较基准,比较数据库中所存储的运动捕获数据片段,寻找最接近的运动数据作为反应后的动作,比较的算法如下:
D ( S 1 , S 2 ) = Σ i = 1 e w fi ( Σ u = 1 λ w Ru ( Σ v = 1 γ w Pv | | P v ( f 1 i ) - P v ( f 2 i ) | | + w θv | | θ v ( f 1 i ) - θ v ( f 2 i ) | | ) ) - - - 11
其中S1和S2为长度为e的运动捕获数据片段帧序列,每帧fi中角色信息以向量(P0,θ0,...,Pn-1,θn-1)T进行表示,其中Pi和θi为角色关节点i的位置和朝向信息;wfi,wpv,wθv为帧、位置和朝向的权值,λ和r为角色关节中对于速度较为敏感的区域数量已经区域中所包含的关节数量。
所述的按照步骤2)所规划的动作索引序列对已经进行分段的运动数据单元进行参数调整和线性缝合,生成交互式动画步骤:
e)对于通过步骤2)所获得的动作序列索引,从已获得的分段数据中挑选所对应的动作片段,并根据当前的参数对动作进行调整;
对每个运动数据动作片段S,用帧序列(f0,f1,...,fn)进行表示,每帧fi中的角色的运动用向量M=(P0,O0,Q1,Q2,...,Qn)T表示,其中P0和O0为根节点的三维坐标和朝向,Qi为对应节点相对于根节点的位置偏移量;按照场景中所需要,对动作片段中的每帧的运动向量进行朝向和位移的调整,公式如下:
S ′ = Σ i = 0 n TOM - - - 12
S’为调整后的动作片段,其中T和O分别是位移和朝向的调整矩阵;
f)将调整好的动作片段序列,彼此之间进行线性的差值,在临近的两个动作片段S1,S2之间,选取前一个片段S1的最末一个窗口的帧序列 W 1 = Σ i = 1 m f 1 i 和S2的段首一个窗口的帧序列 W 2 = Σ i = 1 m f 2 i , 窗口的大小为m;过渡的帧序列W’通过线性的插值方法获得:
W ′ = Σ i = 1 m ( w 1 i f 1 i + w 2 i f 2 i ) - - - 13
其中w1i和w2i分别为窗口W1和W2中对应帧的权值,且满足w1i和w2i的加和始终等于1;用W’替换片段S1和S2中的W1和W2
本发明利用机器学习和运动数据编辑的知识,通过构造层次化结构和应用混合方法来模拟生成角色的状态及其所对应的最适合动作选择,实现了竞技性交互式动画的智能生成,提高了交互式行为模拟的真实度和自然度,减少了人工干预的过程,提高了角色动画生成效率,整体系统的流程图如图1所示。
附图说明
下面结合附图和具体实施例对本发明作进一步的说明。
图1为本发明所述的总体流程图;
图2为本发明所述的状态迁移图;
图3为本发明所述的组合拳迁移图。
具体实施方式
竞技性交互式动画生成方法包括如下步骤:
1)建立基于马尔科夫链的有限状态机模型,来模拟控制交互式运动角色的状态迁移,获得下一个时间戳角色所对应的状态;
2)在步骤1)所得到的下一个时间戳角色对应的状态的基础上,运用混合式的方法,结合基于经验性规则所定义的规则模型和基于机器学习所定义的交互式模型,来获得最符合当前角色间对峙形势的动作;
3)按照步骤2)所规划的动作索引序列对已经进行分段的运动数据单元进行参数调整和线性缝合,生成交互式动画。
所述的建立基于马尔科夫链的有限状态机模型,来模拟控制交互式运动角色的状态迁移,获得下一个时间戳角色所对应的状态步骤:
a)获取训练样本的特征集合{Фn}。这里的特征Φi={Di,Oi,Vi}是用来作为评估当前对峙形势的一组向量,包括了角色之间的距离Di,角色的朝向Oi,以及角色相对于世界坐标系的速度Vi,这些值可以通过视频中手工标定获得,也可以通过视觉算法自动跟踪获得;
从训练样本中,获取观察值Mi所对应的样本特征集合{ΦMi},首先定义观察值为一组向量,包含了状态集合即平衡、防守和攻击中的不同状态所对应的视觉特征,对每个状态所对应的样本特征计算一个平均特征
Figure A20091009697500111
公式如下:
Φ ~ Mi = Σ n = 1 k Mi Φ n k Mi - - - 1
其中kMi是样本集合中属于观察值Mi的数量;然后在样本集合中,获得相邻样本间的迁移概率P(Φii-1);
b)利用训练好的状态机模型,在生成新的状态时,计算当前的特征Φi,根据马尔科夫链算法,计算使得最优值E最小的观察值Mi所对应的状态作为下一个状态,公式如下:
E = Σ i = 0 n ψ ( Φ i , M i ) + ω Σ i = 1 n P ( Φ i | Φ i - 1 ) - - - 2
其中阈值ω用来调节概率部分所占最优值中的比重,ψ()是用来计算特征向量Φi和观察值Mi之间的匹配差值,公式如下:
其中向量<Δdisi,Δvcom,Δθi>对应当前状态i的特征,<ΔdisM,Δvcom-M,ΔθM>对应于观察值Mi的特征,
Figure A20091009697500123
是欧拉距离。
所述的在步骤1)所得到的下一个时间戳角色对应的状态的基础上,运用混合式的方法,结合基于经验性规则所定义的规则模型和基于机器学习所定义的交互式模型,来获得最符合当前角色间对峙形势的动作步骤:
c)在混合式的方法的规则模型中,为状态集合平衡、防守和攻击中的三种状态:平衡、攻击和防守构造模型,决定平衡和防守状态所对应的动作;其中平衡的规则模型为:
dis~N(μ,σ2)        4
其中dis是角色两者之间的距离,这个距离在模拟的过程中遵守高斯分布,其中高斯参数来自于样本的分析;防守的构造模型为:
δ=et-φ    5
其中δ为决定角色防守动作的值,t为从对手发起攻击到完成攻击的持续时间,φ为模拟人的神经系统的反应盲区阈值;其中t通过如下公式计算:
t = 2 S a ‾ - - - 6
其中S是攻击角色的拳头在时间t内运动轨迹的模,a为对应的平均加速度;攻击的模型通过角色间的距离dis阈值θdis-far-middel和θdis-middle-near来将攻击的行为划分成近、中和远三种攻击候选集合{Gnear,Gmiddle,Gfar};
d)在混合式的方法的机器学习模型中,构造了针对组合攻击、出击选择和被击打反应这三种交互式行为的子模型,来模拟竞技性交互式运动中的这些交互行为;
在组合攻击模型的构造过程中,构造一个组合拳迁移图,图中的每个节点表示攻击动作ai,节点之间的有向边表示两个动作之间的迁移;每一个样本在图中用e=(A,G,E)来表示,A表示攻击行为的链表,G是所属的动作候选集合,E表示这些行为之间的边;图中节点之间的迁移概率P(Ti,j)的计算公式如下:
P ( T i , j ) = w ( a i , a j ) Σ j = 1 λ w ( a i , a j ) - - - 7
其中w(ai,aj)是在样本集合中从攻击动作ai到aj的迁移次数,λ是样本中从攻击动作ai为源动作迁移出来的不同动作数量;构造好组合拳的迁移图后,在实际模拟过程中,在完成一个攻击动作ai后,计算图中所有从ai为源动作的迁移指数Si,j
Si,j=Suc(ai)·P(Ti,j)·eτ+Si-1,i    8
其中Suc()是一个二值函数,当且仅当当前的攻击动作ai达到攻击的效果时才为1,否则为0;Si-1,i是当前攻击前一个迁移指数;在所有的从ai为源动作的迁移动作中,选取可以使当前的值Si,j最大的aj为下一个攻击所采取的动作;
在出击选择模型的构造过程中,用向量x∈Rd来表示当前对峙的形势,向量t∈Rm来表示输出的攻击选择,t可以用x以基函数的形式进行表示:
t = Σ i = 1 r w i φ i ( x ) + ϵ ≡ WΦ ( x ) + ϵ - - - 9
其中{φi(x)|i=1,...,}是基函数,wi是-Rm的权值,ε是模拟误差;将φi和wi分别用向量和矩阵的形式进行表示,得到-Rm基函数向量和m×n的权值矩阵W,如式9所示;基于已获得的样本数据{(tk,xk|k=1,...,n},其中n为样本数据的大小;对W进行约束求值:
W : = arg min W { Σ k = 1 n | | WΦ ( x k ) - t k | | 2 + R ( W ) } - - - 10
其中R()是基于矩阵W的规范式;利用相关向量机算法对式10进行求解;
在被击打反应模型的构造过程中,利用物理生成的动作片段作为反应前动作和反应后动作中间的一个过渡;首先利用动态规划算法获得假设中角色关节点轨迹,然后以所获得的轨迹为比较基准,比较数据库中所存储的运动捕获数据片段,寻找最接近的运动数据作为反应后的动作,比较的算法如下:
D ( S 1 , S 2 ) = Σ i = 1 e w fi ( Σ u = 1 λ w Ru ( Σ v = 1 γ w Pv | | P v ( f 1 i ) - P v ( f 2 i ) | | + w θv | | θ v ( f 1 i ) - θ v ( f 2 i ) | | ) ) - - - 11
其中S1和S2为长度为e的运动捕获数据片段帧序列,每帧fi中角色信息以向量(P0,θ0,...,Pn-1,θn-1)T进行表示,其中Pi和θi为角色关节点i的位置和朝向信息;wfi,wpv,wθv为帧、位置和朝向的权值,λ和r为角色关节中对于速度较为敏感的区域数量已经区域中所包含的关节数量。
所述的按照步骤2)所规划的动作索引序列对已经进行分段的运动数据单元进行参数调整和线性缝合,生成交互式动画步骤:
e)对于通过步骤2)所获得的动作序列索引,从已获得的分段数据中挑选所对应的动作片段,并根据当前的参数对动作进行调整;
对每个运动数据动作片段S,用帧序列(f0,f1,...,fn)进行表示,每帧fi中的角色的运动用向量M=(P0,O0,Q1,Q2,...,Qn)T表示,其中P0和O0为根节点的三维坐标和朝向,Qi为对应节点相对于根节点的位置偏移量;按照场景中所需要,对动作片段中的每帧的运动向量进行朝向和位移的调整,公式如下:
S ′ = Σ i = 0 n TOM - - - 12
S’为调整后的动作片段,其中T和O分别是位移和朝向的调整矩阵;
f)将调整好的动作片段序列,彼此之间进行线性的差值,在临近的两个动作片段S1,S2之间,选取前一个片段S1的最末一个窗口的帧序列 W 1 = Σ i = 1 m f 1 i 和S2的段首一个窗口的帧序列 W 2 = Σ i = 1 m f 2 i , 窗口的大小为m;过渡的帧序列W’通过线性的插值方法获得:
W ′ = Σ i = 1 m ( w 1 i f 1 i + w 2 i f 2 i ) - - - 13
其中w1i和w2i分别为窗口W1和W2中对应帧的权值,且满足w1i和w2i的加和始终等于1;用W’替换片段S1和S2中的W1和W2
实施例
(1)在本实施例中,获取拳击视频中训练样本的特征集合{Φn}。这里的特征Φi={Di,Oi,Vi}是用来作为评估当前拳击对峙形势的一组向量,包括了角色之间的距离Di,角色的朝向Oi,以及角色相对于世界坐标系的速度Vi,在本实施例中这些向量值通过视频中在首帧手工标定并进行自动跟踪获得。
在本实施例中,收集了50组的拳击样本数据,从训练样本中,获取观察值Mi所对应的样本特征集合{ΦMi},首先定义观察值为一组向量,包含了状态集合平衡、防守和攻击中的不同状态所对应的视觉特征,状态以及状态之间的迁移图如图2所示;在本实施例中ΦMi包含了距离、朝向和速度三个特征向量,对每个状态所对应的样本特征计算一个平均特征
Figure A20091009697500151
公式如下:
Φ ~ Mi = Σ n = 1 k Mi Φ n k Mi
其中kMi是样本集合中属于观察值Mi的数量,然后在样本集合中,获得相邻样本间的迁移概率P(Φii-1),至此获得了训练好的状态机模型。
利用上述的训练好的状态机模型,在生成新的状态时,计算当前的特征Φi,计算使得最优值E最小的观察值Mi所对应的状态作为下一个状态,公式如下:
E = Σ i = 0 n ψ ( Φ i , M i ) + ω Σ i = 1 n P ( Φ i | Φ i - 1 )
其中阈值ω用来调节概率部分所占最优值中的比重,ψ()是用来计算特征向量φi和观察值Mi之间的匹配差值,公式如下:
Figure A20091009697500154
其中向量<Δdisj,Δvcom,Δθi>对应当前状态i的距离、平均质心速度和平均朝向向量值,<ΔdisM,Δvcom-M,ΔθM>对应于观察值Mi的对应的向量值,是欧拉距离公式。
(2)在本实施例中的混合式方法的规则模型中,为状态集合平衡、防守和攻击中的平衡、攻击和防守三种状态构造模型:其中平衡的规则模型为:
dis~N(μ,σ2)
其中dis是拳击角色两者之间的距离,这个距离在模拟的过程中遵守高斯分布,在本实施例中,高斯参数来自于在(1)所述50组样本数据的分析;防守的构造模型为:
δ=et-φ
其中δ为决定角色防守动作的值,在本实施例中,δ越高意味着反应的时间越充裕,对于反应动作的选取余地越大,反之意味着反应的时间越急迫,对于反应动作的选取余地越小;t为从对手发起攻击到完成攻击的持续时间,φ为模拟人的神经系统的反应盲区阈值,在本实施例中为0.3秒;其中t通过如下公式计算:
t = 2 S a ‾
其中S是攻击角色的拳头在时间t内运动轨迹的模,a为对应的平均加速度,在本实施例中,直拳的拳头轨迹近似用直线表示,摆拳和勾拳的攻击方式用圆弧表示,S的计算方法参考所依赖表示的数学计算方式。
攻击的模型通过角色间的距离dis阈值θdis来将攻击的行为划分成近、中和远三种攻击候选集合{Gnear,Gmiddle,Gfar},在本实施例中,通过阈值θdis-far-middel和θdis-middle-near将拳击攻击行为分别分为勾拳、刺拳和速击拳所组成的近候选集合,直拳、勾拳组成的中候选集合,直拳、摆拳组成的远候选集合。
在本实施例中的混合式方法的机器学习模型中,构造了针对组合攻击、出击选择和被击打反应这三种交互式行为的子模型,来模拟竞技性交互式运动中的这些交互行为:
在组合攻击模型的构造过程中,构造一个组合拳迁移图,图中的每个节点表示攻击动作ai,节点之间的有向边表示两个动作之间的迁移;每一个样本在图中用e=(A,G,E)来表示,A表示攻击行为的链表,G是所属的动作候选集合,E表示这些行为之间的边;图中节点之间的迁移概率P(Ti,j)的计算公式如下:
P ( T i , j ) = w ( a i , a j ) Σ j = 1 λ w ( a i , a j )
其中w(ai,aj)是在样本集合中从攻击动作ai到aj的迁移次数,λ是样本中从攻击动作ai为源动作迁移出来的不同动作数量,在本实例中,选取了60组经典的组合拳打击方式来构造好组合拳的迁移图模型,构造完后的组合拳的迁移图如图3所示。完成构造后,在拳击角色已完成一个攻击动作ai后,计算图中所有从ai为源动作的迁移指数Si,j
Si,j=Suc(ai)·P(Ti,j)·eτ+Si-1,i
其中Suc()是一个二值函数,当且仅当当前的攻击动作ai达到攻击的效果时才为1,否则为0;Si-1,i是当前攻击前一个迁移指数;在所有的从ai为源动作的迁移动作中,选取可以使当前的值Si,j最大的ai为下一个攻击所采取的动作,进行组合攻击,以此形成递归。在本实施例中,为了避免形成循环造成持续不停止攻击,设置了阈值θcombin来控制Si,j的数值,当Si,j超过阈值θcombin时,停止组合攻击。
在出击选择模型的构造过程中,用向量x∈Rd来表示当前对峙的形势,向量t∈Rm来表示输出的攻击选择,在本实施例中,x包含了两者之间的距离D、朝向O、速度V和位移M四组向量x={D,O,V,M},t包含了左右手的选择H,力度P和方式A三组向量t={H,P,A},t可以用x以基函数的形式进行表示:
t = Σ i = 1 r w i φ i ( x ) + ϵ ≡ WΦ ( x ) + ϵ
其中{φi(x)|i=1,...,}是基函数,wi是-Rm的权值,ε是模拟误差;将φi和wi分别用向量和矩阵的形式进行表示,得到-Rm基函数向量和m×n的权值矩阵W,如式9所示;基于已获得的样本数据{(tk,xk)|k=1,...,n},其中n为样本数据的大小;对W进行约束求值:
W : = arg min W { Σ k = 1 n | | WΦ ( x k ) - t k | | 2 + R ( W ) }
其中R()是基于矩阵W的规范式,W的求解方式用相关向量机(RelevanceVector Machine)来进行求解。
在被击打反应模型的构造过程中,利用物理生成的动作片段作为反应前动作和反应后动作中间的一个过渡;首先利用动态规划算法获得假设中角色关节点轨迹,然后以所获得的轨迹为比较基准,比较数据库中所存储的运动捕获数据片段,寻找最接近的运动数据作为反应后的动作,比较的算法如下:
D ( S 1 , S 2 ) = Σ i = 1 e w fi ( Σ u = 1 λ w Ru ( Σ v = 1 γ w Pv | | P v ( f 1 i ) - P v ( f 2 i ) | | + w θv | | θ v ( f 1 i ) - θ v ( f 2 i ) | | ) )
其中S1和S2为长度为e的运动捕获数据片段帧序列,每帧fi中角色信息以向量(P0,θ0,...,Pn-1,θn-1)T进行表示,其中Pi和θi为角色关节点i的位置和朝向信息;wfi,wpv,wθv为帧、位置和朝向的权值,λ和r为角色关节中对于速度较为敏感的区域数量已经区域中所包含的关节数量。
(3)对于通过步骤(2)获得的动作序列索引,在本实例中,从已获得的拳击基本动作分段数据中挑选所对应的动作片段,并根据当前的参数对动作进行调整。
对每个运动数据动作片段S,用帧序列(f0,f1,...,fn)进行表示,每帧fi中的角色的运动用向量M=(P0,O0,Q1,Q2,...,Qn)T表示,其中P0和O0为根节点的三维坐标和朝向,Qi为对应节点相对于根节点的位置偏移量;按照场景中所需要,对动作片段中的每帧的运动向量进行朝向和位移的调整,公式如下:
S ′ = Σ i = 0 n TOM
S’为调整后的动作片段,其中T和O分别是位移和朝向的调整矩阵,本实施例中的T和O可以通过上一个动作片段在左后结束时候的对峙态势获得。
将调整好的动作片段序列,彼此之间进行线性的差值,在临近的两个动作片段S1,S2之间,选取前一个片段S1的最末一个窗口的帧序列 W 1 = Σ i = 1 m f 1 i 和S2的段首一个窗口的帧序列 W 2 = Σ i = 1 m f 2 i , 窗口的大小为m,在本实施例中的m默认取20帧并可以在生成过程中进行手工调整以获得最佳的效果,过渡的帧序列W’通过线性的插值方法获得:
W ′ = Σ i = 1 m ( w 1 i f 1 i + w 2 i f 2 i )
其中w1i和w2i分别为窗口W1和W2中对应帧的权值,且满足w1i和w2i的加和始终等于1;用W’替换片段S1和S2中的W1和W2
本实施例中,通过以上步骤,获得了基于单个角色运动捕获数据条件下生成三维竞技性交互式动画。

Claims (4)

1.一种竞技性交互式动画生成方法,其特征在于包括如下步骤:
1)建立基于马尔科夫链的有限状态机模型,来模拟控制交互式运动角色的状态迁移,获得下一个时间戳角色所对应的状态;
2)在步骤1)所得到的下一个时间戳角色对应的状态的基础上,运用混合式的方法,结合基于经验性规则所定义的规则模型和基于机器学习所定义的交互式模型,来获得最符合当前角色间对峙形势的动作;
3)按照步骤2)所规划的动作索引序列对已经进行分段的运动数据单元进行参数调整和线性缝合,生成交互式动画。
2.根据权利要求1所述的一种竞技性交互式动画生成方法,其特征在于:所述的建立基于马尔科夫链的有限状态机模型,来模拟控制交互式运动角色的状态迁移,获得下一个时间戳角色所对应的状态步骤:
a)获取训练样本的特征集合{Φn}。这里的特征Φi={Di,Oi,Vi}是用来作为评估当前对峙形势的一组向量,包括了角色之间的距离Di,角色的朝向Oi,以及角色相对于世界坐标系的速度Vi,这些值可以通过视频中手工标定获得,也可以通过视觉算法自动跟踪获得;
从训练样本中,获取观察值Mi所对应的样本特征集合{ΦMi},首先定义观察值为一组向量,包含了状态集合即平衡、防守和攻击中的不同状态所对应的视觉特征,对每个状态所对应的样本特征计算一个平均特征公式如下:
Φ ~ Mi = Σ n = 1 k Mi Φ n k Mi - - - 1
其中kMi是样本集合中属于观察值Mi的数量;然后在样本集合中,获得相邻样本间的迁移概率P(Φii-1);
b)利用训练好的状态机模型,在生成新的状态时,计算当前的特征Φi,根据马尔科夫链算法,计算使得最优值E最小的观察值Mi所对应的状态作为下一个状态,公式如下:
E = Σ i = 0 n ψ ( Φ i , M i ) + ω Σ i = 1 n P ( Φ i | Φ i - 1 ) - - - 2
其中阈值ω用来调节概率部分所占最优值中的比重,ψ()是用来计算特征向量Φi和观察值Mi之间的匹配差值,公式如下:
Figure A2009100969750003C1
其中向量<Δdisi,Δvcom,Δθi>对应当前状态i的特征,<ΔdisM,Δvcom-M,ΔθM>对应于观察值Mi的特征,是欧拉距离。
3.根据权利要求1所述的一种竞技性交互式动画生成方法,其特征在于:所述的在步骤1)所得到的下一个时间戳角色对应的状态的基础上,运用混合式的方法,结合基于经验性规则所定义的规则模型和基于机器学习所定义的交互式模型,来获得最符合当前角色间对峙形势的动作步骤:
c)在混合式的方法的规则模型中,为状态集合即平衡、防守和攻击中的三种状态:平衡、攻击和防守构造模型,决定平衡和防守状态所对应的动作;其中平衡的规则模型为:
dis~N(μ,σ2)                           4
其中dis是角色两者之间的距离,这个距离在模拟的过程中遵守高斯分布,其中高斯参数来自于样本的分析;防守的构造模型为:
δ=et-φ                                 5
其中δ为决定角色防守动作的值,t为从对手发起攻击到完成攻击的持续时间,φ为模拟人的神经系统的反应盲区阈值;其中t通过如下公式计算:
t = 2 S a ‾ - - - 6
其中S是攻击角色的拳头在时间t内运动轨迹的模,a为对应的平均加速度;攻击的模型通过角色间的距离dis阈值θdis-far-middel和θdis-middle-near来将攻击的行为划分成近、中和远三种攻击候选集合{Gnear,Gmiddle,Gfar};
d)在混合式的方法的机器学习模型中,构造了针对组合攻击、出击选择和被击打反应这三种交互式行为的子模型,来模拟竞技性交互式运动中的这些交互行为;
在组合攻击模型的构造过程中,构造一个组合拳迁移图,图中的每个节点表示攻击动作ai,节点之间的有向边表示两个动作之间的迁移;每一个样本在图中用e=(A,G,E)来表示,A表示攻击行为的链表,G是所属的动作候选集合,E表示这些行为之间的边;图中节点之间的迁移概率P(Ti,j)的计算公式如下:
P ( T i , j ) = w ( a i , a j ) Σ j = 1 λ w ( a i , a j ) - - - 7
其中w(ai,aj)是在样本集合中从攻击动作ai到aj的迁移次数,λ是样本中从攻击动作ai为源动作迁移出来的不同动作数量;构造好组合拳的迁移图后,在实际模拟过程中,在完成一个攻击动作ai后,计算图中所有从ai为源动作的迁移指数Si,j
Si,j=Suc(ai)·P(Ti,j)·eτ+Si-1,i                     8
其中Suc()是一个二值函数,当且仅当当前的攻击动作ai达到攻击的效果时才为1,否则为0;Si-1,i是当前攻击前一个迁移指数;在所有的从ai为源动作的迁移动作中,选取可以使当前的值Si,j最大的aj为下一个攻击所采取的动作;
在出击选择模型的构造过程中,用向量x∈Rd来表示当前对峙的形势,向量t∈Rm来表示输出的攻击选择,t可以用x以基函数的形式进行表示:
t = Σ i = 1 r w i φ i ( x ) + ϵ ≡ WΦ ( x ) + ϵ - - - 9
其中{φi(x)|i=1,...,r}是基函数,wi是-Rm的权值,ε是模拟误差;将φi和wi分别用向量和矩阵的形式进行表示,得到-Rm基函数向量和m×n的权值矩阵W,如式9所示;基于已获得的样本数据{(tk,xk)|k=1,...,n},其中n为样本数据的大小;对W进行约束求值:
W : = arg W min { Σ k = 1 n | | WΦ ( x k ) - t k | | 2 + R ( W ) } - - - 10
其中R()是基于矩阵W的规范式;利用相关向量机算法对式10进行求解;
在被击打反应模型的构造过程中,利用物理生成的动作片段作为反应前动作和反应后动作中间的一个过渡;首先利用动态规划算法获得假设中角色关节点轨迹,然后以所获得的轨迹为比较基准,比较数据库中所存储的运动捕获数据片段,寻找最接近的运动数据作为反应后的动作,比较的算法如下:
D ( S 1 , S 2 ) = Σ i = 1 e w fi ( Σ u = 1 λ w Ru ( Σ v = 1 γ w Pv | | P v ( f 1 i ) - P v ( f 2 i ) | | + w θv | | θ v ( f 1 i ) - θ v ( f 2 i ) | | ) ) - - - 11
其中S1和S2为长度为e的运动捕获数据片段帧序列,每帧fi中角色信息以向量(P0,θ0,...,Pn-1,θn-1)T进行表示,其中Pi和θi为角色关节点i的位置和朝向信息;wfi,wpv,wθv为帧、位置和朝向的权值,λ和r为角色关节中对于速度较为敏感的区域数量已经区域中所包含的关节数量。
4.根据权利要求1所述的一种竞技性交互式动画生成方法,其特征在于:按照步骤2)所规划的动作索引序列对已经进行分段的运动数据单元进行参数调整和线性缝合,生成交互式动画步骤:
e)对于通过步骤2)所获得的动作序列索引,从已获得的分段数据中挑选所对应的动作片段,并根据当前的参数对动作进行调整;
对每个运动数据动作片段S,用帧序列(f0,f1,...,fn)进行表示,每帧fi中的角色的运动用向量M=(P0,O0,Q1,Q2,...,Qn)T表示,其中P0和O0为根节点的三维坐标和朝向,Qi为对应节点相对于根节点的位置偏移量;按照场景中所需要,对动作片段中的每帧的运动向量进行朝向和位移的调整,公式如下:
S ′ = Σ i = 0 n TOM - - - 12
S’为调整后的动作片段,其中T和O分别是位移和朝向的调整矩阵;
f)将调整好的动作片段序列,彼此之间进行线性的差值,在临近的两个动作片段S1,S2之间,选取前一个片段S1的最末一个窗口的帧序列 W 1 = Σ i = 1 m f 1 i 和S2的段首一个窗口的帧序列 W 2 = Σ i = 1 m f 2 i , 窗口的大小为m;过渡的帧序列W’通过线性的插值方法获得:
W ′ = Σ i = 1 m ( w 1 i f 1 i + w 2 i f 2 i ) - - - 13
其中w1i和w2i分别为窗口W1和W2中对应帧的权值,且满足w1i和w2i的加和始终等于1;用W’替换片段S1和S2中的W1和W2
CN2009100969758A 2009-03-26 2009-03-26 竞技性交互式动画生成方法 Expired - Fee Related CN101515373B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100969758A CN101515373B (zh) 2009-03-26 2009-03-26 竞技性交互式动画生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100969758A CN101515373B (zh) 2009-03-26 2009-03-26 竞技性交互式动画生成方法

Publications (2)

Publication Number Publication Date
CN101515373A true CN101515373A (zh) 2009-08-26
CN101515373B CN101515373B (zh) 2011-01-19

Family

ID=41039818

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100969758A Expired - Fee Related CN101515373B (zh) 2009-03-26 2009-03-26 竞技性交互式动画生成方法

Country Status (1)

Country Link
CN (1) CN101515373B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573334A (zh) * 2014-12-24 2015-04-29 珠海金山网络游戏科技有限公司 一种利用标签事件触发特效和音效的播放系统和方法
CN104915117A (zh) * 2015-06-16 2015-09-16 深圳市腾讯计算机系统有限公司 控制与虚拟目标进行交互的方法和装置
CN105007525A (zh) * 2015-06-09 2015-10-28 济南大学 一种面向智能电视应用的交互情景事件关联智能感知方法
CN110102056A (zh) * 2019-04-18 2019-08-09 腾讯科技(深圳)有限公司 一种交互功能的实现方法和装置
CN110665223A (zh) * 2019-11-01 2020-01-10 网易(杭州)网络有限公司 游戏资源的缓存方法、决策网络的训练方法及装置
CN111127607A (zh) * 2019-12-23 2020-05-08 上海米哈游天命科技有限公司 一种动画生成方法、装置、设备及介质
CN112870721A (zh) * 2021-03-16 2021-06-01 腾讯科技(深圳)有限公司 一种游戏互动方法、装置、设备及存储介质
CN114415909A (zh) * 2021-12-27 2022-04-29 宝宝巴士股份有限公司 一种基于cocos2dx的节点交互方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100476878C (zh) * 2005-12-28 2009-04-08 腾讯科技(深圳)有限公司 一种交互式水墨风格实时3d渲染及实现动画的方法
CN101005609B (zh) * 2006-01-21 2010-11-03 腾讯科技(深圳)有限公司 生成互动视频图像的方法及系统
CN100428281C (zh) * 2006-09-14 2008-10-22 浙江大学 基于运动脚本的三维人体动画自动生成方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104573334A (zh) * 2014-12-24 2015-04-29 珠海金山网络游戏科技有限公司 一种利用标签事件触发特效和音效的播放系统和方法
CN105007525A (zh) * 2015-06-09 2015-10-28 济南大学 一种面向智能电视应用的交互情景事件关联智能感知方法
US10653960B2 (en) 2015-06-16 2020-05-19 Tencent Technology (Shenzhen) Company Limited Method for controlling interaction with virtual target, terminal, and storage medium
CN104915117A (zh) * 2015-06-16 2015-09-16 深圳市腾讯计算机系统有限公司 控制与虚拟目标进行交互的方法和装置
CN104915117B (zh) * 2015-06-16 2017-03-22 深圳市腾讯计算机系统有限公司 控制与虚拟目标进行交互的方法和装置
CN110102056B (zh) * 2019-04-18 2021-09-07 腾讯科技(深圳)有限公司 一种交互功能的实现方法和装置
CN110102056A (zh) * 2019-04-18 2019-08-09 腾讯科技(深圳)有限公司 一种交互功能的实现方法和装置
CN110665223A (zh) * 2019-11-01 2020-01-10 网易(杭州)网络有限公司 游戏资源的缓存方法、决策网络的训练方法及装置
CN110665223B (zh) * 2019-11-01 2023-04-21 网易(杭州)网络有限公司 游戏资源的缓存方法、决策网络的训练方法及装置
CN111127607A (zh) * 2019-12-23 2020-05-08 上海米哈游天命科技有限公司 一种动画生成方法、装置、设备及介质
CN111127607B (zh) * 2019-12-23 2023-11-03 上海米哈游天命科技有限公司 一种动画生成方法、装置、设备及介质
CN112870721A (zh) * 2021-03-16 2021-06-01 腾讯科技(深圳)有限公司 一种游戏互动方法、装置、设备及存储介质
CN114415909A (zh) * 2021-12-27 2022-04-29 宝宝巴士股份有限公司 一种基于cocos2dx的节点交互方法及装置
CN114415909B (zh) * 2021-12-27 2023-12-26 宝宝巴士股份有限公司 一种基于cocos2dx的节点交互方法及装置

Also Published As

Publication number Publication date
CN101515373B (zh) 2011-01-19

Similar Documents

Publication Publication Date Title
CN101515373B (zh) 竞技性交互式动画生成方法
Won et al. Control strategies for physically simulated characters performing two-player competitive sports
CN104008564B (zh) 一种人脸表情克隆方法
CN100440257C (zh) 一种虚拟人群运动的三维可视化方法
Sun et al. Crowd navigation in an unknown and dynamic environment based on deep reinforcement learning
CN109543285B (zh) 一种融合数据驱动与强化学习的人群疏散仿真方法和系统
CN104123747B (zh) 多方式触控三维建模方法和系统
CN109464803A (zh) 虚拟对象控制、模型训练方法、装置、存储介质和设备
CN105740510A (zh) 基于网格-密度-关系的疏散人群行为仿真系统及其方法
CN111461437B (zh) 基于生成对抗网络的数据驱动人群运动仿真方法
CN102915552A (zh) 一种可控的火焰动画生成方法及其系统
CN108376198A (zh) 一种基于虚拟现实的人群仿真方法及系统
CN109801350B (zh) 一种基于示例动画的人物运动模拟方法
CN100594520C (zh) 基于关键帧时刻优化的空中运动仿真方法
CN107704667A (zh) 模拟集群性的人群运动仿真方法、装置和系统
CN103793933A (zh) 虚拟人体动画的运动路径生成方法
Hyun et al. Tiling motion patches
CN1916969A (zh) 一种基于混合控制的反应跟随运动生成方法
CN116740240A (zh) 款式多样的实时服装动画生成方法
CN105069829A (zh) 一种基于多目视频的人体动画生成方法
Apeldoorn et al. Measuring strategic depth in games using hierarchical knowledge bases
CN104517299A (zh) 视频流体物理驱动模型恢复及重新仿真的方法
CN103116901B (zh) 基于运动特征的人体运动插值计算方法
CN112017265B (zh) 一种基于图神经网络的虚拟人运动仿真方法
CN104616337B (zh) 一种基于纵向切分的风吹无叶树的摇曳模拟方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110119

Termination date: 20180326

CF01 Termination of patent right due to non-payment of annual fee