CN113781612B - 一种动作资源风格转换方法及*** - Google Patents

一种动作资源风格转换方法及*** Download PDF

Info

Publication number
CN113781612B
CN113781612B CN202110982372.9A CN202110982372A CN113781612B CN 113781612 B CN113781612 B CN 113781612B CN 202110982372 A CN202110982372 A CN 202110982372A CN 113781612 B CN113781612 B CN 113781612B
Authority
CN
China
Prior art keywords
role
queue
skeleton node
character
data
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.)
Active
Application number
CN202110982372.9A
Other languages
English (en)
Other versions
CN113781612A (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.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital Co Ltd
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 Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN202110982372.9A priority Critical patent/CN113781612B/zh
Publication of CN113781612A publication Critical patent/CN113781612A/zh
Application granted granted Critical
Publication of CN113781612B publication Critical patent/CN113781612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明提供了一种动作资源风格转换方法及***,所述方法基于角色数据来生成新风格动作资源,所述方法为:输入角色数据,碰撞体管理模块将基于角色数据生成贴合角色模型的角色部件碰撞体集合;动作资源处理模块读取动作资源帧数据加入动作资源帧数据队列中;通过碰撞检测模块检测碰撞体管理模块中角色部件的碰撞情况,计算角色部件骨骼节点的目标位置;通过反向运动模块计算碰撞检测模块中角色部件骨骼节点目标位置并计算关联骨骼节点的目标位置;通过肌肉空间模块根据角色数据生成角色肌肉空间;判断动作资源帧数据队列中是否还有其他动作资源帧数据;本发明能够通过对角色数据的识别生成更贴合当前角色的新风格动作资源风格类型。

Description

一种动作资源风格转换方法及***
技术领域
本发明涉及角色动作风格转换技术领域,特别是一种动作资源风格转换方法及***。
背景技术
现有技术在动作资源生产过程中对生产成本优化有限,仅减少少量基础动作资源的生产成本,动作资源的细调部分还需要大量的美术成本,无法实现动作资源自动转换为新风格动作资源。
发明内容
为克服上述问题,本发明的目的是提供一种能够通过对角色数据的识别生成更贴合当前角色的新风格动作资源风格类型的方法。
本发明采用以下方案实现:一种动作资源风格转换方法,所述方法基于角色数据来生成新风格动作资源,所述方法为:
输入角色数据,碰撞体管理模块将基于角色数据生成贴合角色模型的角色部件碰撞体集合,将角色数据进行识别,选择每个角色部件适配的碰撞体类型;
输入动作资源,动作资源处理模块读取动作资源帧数据加入动作资源帧数据队列中,从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上;
通过碰撞检测模块检测碰撞体管理模块中角色部件的碰撞情况,计算角色部件骨骼节点的目标位置;
通过反向运动模块计算碰撞检测模块中角色部件骨骼节点目标位置并计算关联骨骼节点的目标位置;
通过肌肉空间模块根据角色数据生成角色肌肉空间,包括根据反向运动模块中的骨骼节点目标位置更新肌肉空间数据,驱动角色骨骼节点运动呈现适配当前新风格角色的动作资源帧数据并记录;
判断动作资源帧数据队列中是否还有其他动作资源帧数据,是,则通过动作资源处理模块生成新风格动作资源,否,则从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上,实现通过角色数据来生成新风格动作资源。
进一步的,所述碰撞体管理模块能够基于角色数据生成贴合角色模型的角色部件碰撞体集合,具体为:步骤S11、输入角色数据,读取角色骨骼节点,判断角色骨骼节点队列是否为空,是,则完成角色部件碰撞体集合生成;否,则从角色骨骼节点队列中读取一个骨骼节点;步骤S12、判断读取的骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的关联部件骨骼节点信息,将所有角色关联部件骨骼节点加入角色关联部件骨骼节点队列;否,判断角色骨骼节点队列中是否还有其他角色骨骼节点;步骤S13、判断角色骨骼节点队列中是否还有其他角色骨骼节点,是,则从角色骨骼节点队列中读取一个骨骼节点,否,完成角色部件碰撞体集合生成;步骤S14、判断角色关联部件骨骼节点队列是否为空,是,则判断角色骨骼节点队列中是否还有其他骨骼节点,否,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点;步骤S15、获取角色骨骼节点与角色关联部件骨骼节点在角色蒙皮数据中关联的顶点与顶点权重数据加入顶点数据队列,从顶点数据队列删除小于对应角色骨骼节点类型保留权重的顶点数据;步骤S16、从顶点数据队列删除零散的无效顶点数据,创建角色骨骼节点对应碰撞体类型的碰撞体,基于角色骨骼节点及角色关联部件骨骼节点数据计算并设置碰撞体中心位置;步骤S17、基于顶点数据队列计算并设置碰撞体大小与其他碰撞体参数,将创建的碰撞体加入角色部件碰撞体集合,判断角色关联部件骨骼节点队列中是否还有其他角色关联部件骨骼节点,是,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点,否,则判断角色骨骼节点队列中是否还有其他角色骨骼节点。
进一步的,所述动作资源处理模块能够将角色动作资源解析为动作资源帧数据队列,具体为:步骤S21、输入动作资源,创建一个动作资源帧数据队列;步骤S22、获取角色动作资源总帧数,记录当前帧数为0;步骤S23、判断当前帧数是否小于角色动作资源总帧数,是,则应用动作资源的当前帧状态,否,则返回动作资源帧数据队列;步骤S24、获得当前帧的动作资源数据并加入动作资源帧数据队列,当前帧数加1,继续判断当前帧数是否小于动作资源总帧数。
进一步的,所述动作资源处理模块通过适配当前风格模型的动作资源帧数据队列生成新风格动作资源,具体为:步骤S31、输入适配当前角色风格模型的动作资源帧数据队列,记录为新动作资源帧数据队列;步骤S32、创建一个新动作资源,判断新动作资源帧数据队列是否为空,是,则完成新风格动作资源生成,否,则从新动作资源帧数据队列中读取一个动作资源帧数据;步骤S33、将当前动作资源帧数据中的数据写入角色动作资源,判断新动作资源帧数据队列中是否还有其他动作资源帧数据,是,则从新动作资源帧数据队列中读取一个动作资源帧数据,否,则读取新动作资源的帧数据动作曲线队列;步骤S34、判断帧数据动作曲线队列是否为空,是,则完成新风格动作资源生成,否,则从帧数据动作曲线队列中读取一条帧数据动作曲线;步骤S35、将这条帧数据动作曲线上的帧数据按直线与二次贝塞尔曲线拟合后获得关键帧数据动作曲线,将关键帧数据动作曲线重新写入新动作资源;步骤S36、判断帧数据动作曲线队列中是否还有其他帧数据动作曲线,是,则从帧数据动作曲线队列中读取一条帧数据动作曲线,否,则完成新风格动作资源生成。
进一步的,所述碰撞检测模块通过对角色部件碰撞体集合中的碰撞体碰撞情况检测,实现计算角色部件骨骼节点目标位置,具体为:步骤S41、输入播放动作姿势的角色数据,读取角色部件信息,将所有角色部件加入角色部件队列;步骤S42、判断角色部件是否为空,是,则完成角色部件骨骼节点的目标位置计算,否,则判断上一帧角色部件碰撞体集合数据是否为空;步骤S43、判断上一帧角色部件碰撞体集合数据是否为空,是,则记录当前角色部件碰撞体集合数据为上一帧角色部件碰撞体集合数据,完成角色部件骨骼节点的目标位置计算,否,则从角色部件队列中读取一个角色部件;步骤S44、获取此角色部件的碰撞体集合数据,从根碰撞体向末端碰撞体依次加入碰撞体队列;步骤S45、判断碰撞体队列是否为空,是,则判断角色部件队列中是否还有其他角色部件,否,则从碰撞体队列中读取一个碰撞体;步骤S46、判断角色部件队列中是否还有其他角色部件,是,则从角色部件队列中读取一个角色部件,否,则记录当前角色部件碰撞体集合数据为上一帧角色部件碰撞体集合数据;步骤S47、将此碰撞体与上一帧角色部件的碰撞体集合数据中非当前角色部件的碰撞体逐个进行碰撞检测;步骤S48、判断是否产生碰撞体集合,是,则将当前碰撞体关联的末端节点向上一帧位置移动至不产生碰撞,记录当前碰撞体关联的末端节点的目标位置为当前末端节点所在位置,否,则记录当前碰撞体关联的末端节点的目标位置为当前末端节点所在位置;步骤S49、判断碰撞体队列中是否还有其他碰撞体,是,则从碰撞体队列中读取一个碰撞体,否,则判断角色部件队列中是否还有其他角色部件。
进一步的,所述反向运动模块计算关联骨骼节点目标位置,具体为:步骤S51、输入播放动作姿势的角色数据与角色部件骨骼节点的目标位置,读取角色部件信息,将所有角色部件加入角色部件队列;步骤S52、判断角色部件队列是否为空,是,则完成关联骨骼节点目标位置计算,否,则判断上一帧角色部件骨骼节点的目标位置集合数据是否为空;步骤S53、判断上一帧角色部件骨骼节点的目标位置集合数据是否为空,是,则记录角色部件骨骼节点的目标位置集合数据为上一帧角色部件骨骼节点的目标位置集合数据,完成关联骨骼节点目标位置计算,否,从角色部件队列中读取一个角色部件,记录当前角色部件的动作执行比重为100%,获取此角色部件的骨骼节点数据,从末端骨骼节点向根骨骼节点依次加入骨骼节点队列;步骤S54、判断骨骼节点队列是否为空,是,则判断角色部件队列中是否还有其他角色部件,否,则从骨骼节点队列中读取一个骨骼节点,获取骨骼节点当前位置、目标位置、上一帧位置,计算目标位置在上一帧位置到当前位置的比重;步骤S55、判断角色部件队列中是否还有其他角色部件,是,则从角色部件队列中读取一个角色部件,否,记录角色部件骨骼节点的目标位置集合数据为上一帧角色部件骨骼节点的目标位置集合数据;步骤S56、判断当前比重是否小于当前角色部件的动作执行比重,是,则更新当前角色部件的动作执行比重为当前比重,否,则向上一帧位置移动目标位置到当前角色部件的动作执行比重;步骤S57、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个骨骼节点,否,则判断角色部件队列中是否还有其他角色部件。
进一步的,所述肌肉空间模块根据角色数据生成角色肌肉空间,具体为:步骤S61、输入角色数据,创建一个默认角色肌肉空间实例,读取角色骨骼节点信息,将所有角色骨骼节点加入骨骼节点队列;步骤S62、判断骨骼节点队列是否为空,是,则完成角色肌肉空间生成,否,则从骨骼节点队列中读取一个角色骨骼节点;步骤S63、判断角色骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的可旋转范围,将角色部件骨骼节点信息与其可旋转范围加入角色肌肉空间的部件骨骼节点队列中,否,则判断骨骼节点队列中是否还有其他骨骼节点;步骤S64、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个角色骨骼节点,否,则完成角色肌肉空间生成。
进一步的,所述肌肉空间模块根据骨骼节点目标位置更新肌肉空间数据,具体为:步骤S71、输入角色骨骼节点目标位置数据,读取角色骨骼节点数据,将所有角色骨骼节点加入骨骼节点队列;步骤S72、判断骨骼节点队列是否为空,是,则完成角色肌肉空间数据更新,否,则从骨骼节点队列中读取一个角色骨骼节点;步骤S73、判断角色骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点关联的父骨骼节点,否,则将当前角色骨骼节点标记为已处理,从骨骼节点队列中移除当前骨骼节点;步骤S74、判断父骨骼节点是否在骨骼节点队列中,是,则将当前角色骨骼节点移至骨骼节点队列最后一个位置,否,则判断父骨骼节点是否有大于一个的直接关联子部件骨骼节点;步骤S75、判断骨骼节点队列中是否还有角色骨骼节点,是,则将当前角色骨骼节点移至骨骼节点队列最后一个位置,否,则完成角色肌肉空间数据更新;步骤S76、判断父骨骼节点是否有大于一个的直接关联子部件骨骼节点,是,则将当前角色骨骼节点标记为已处理,否,则计算通过父骨骼节点旋转让角色骨骼节点朝向目标位置需要的旋转角度,读取父骨骼节点在部件骨骼节点队列中记录的可旋转范围;步骤S77、判断旋转角度是否在可旋转范围内,是,则父骨骼节点旋转对应的旋转角度,记录父骨骼节点的旋转角度到骨骼节点当前旋转角度队列中,将当前骨骼节点标记为已处理,否,则在可旋转范围内得到最接近的旋转角度,父骨骼节点旋转对应的旋转角度。
进一步的,所述肌肉空间模块驱动角色骨骼节点运动获得适配当前风格模型的动作资源帧数据并记录,具体为:步骤S81、输入肌肉空间数据,读取角色骨骼节点当前旋转角度队列中的骨骼节点数据加入骨骼节点队列;步骤S82、判断骨骼节点队列是否为空,是,则获得适配当前风格模型的动作资源帧数据,记录获得的动作资源帧数据,否,则从骨骼节点队列中读取一个角色骨骼节点,将当前骨骼节点旋转至记录的当前旋转角度,当前角色骨骼节点的所有子部件骨骼节点位置绕当前骨骼节点位置旋转当前旋转角度,当前角色骨骼节点的所有子部件骨骼节点位置获得新位置;步骤S83、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个骨骼节点,否,则获得适配当前风格模型的动作资源帧数据,记录获得的动作资源帧数据,并结束流程。
进一步的,所述角色数据包括但不限于角色模型网格数据、角色蒙皮数据、角色骨骼节点数据。
本发明还提供了一种动作资源风格转换***,所述***包括有一服务器,所述服务器安装有如权利要求1所述的碰撞体管理模块、动作资源处理模块、碰撞检测模块、反向运动模块和肌肉空间模块;
输入角色数据,碰撞体管理模块将基于角色数据生成贴合角色模型的角色部件碰撞体集合,将角色数据进行识别,选择每个角色部件适配的碰撞体类型;
输入动作资源,动作资源处理模块读取动作资源帧数据加入动作资源帧数据队列中,从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上;
通过碰撞检测模块检测碰撞体管理模块中角色部件的碰撞情况,计算角色部件骨骼节点的目标位置;
通过反向运动模块计算碰撞检测模块中角色部件骨骼节点目标位置并计算关联骨骼节点的目标位置;
通过肌肉空间模块根据角色数据生成角色肌肉空间,包括根据反向运动模块中的骨骼节点目标位置更新肌肉空间数据,驱动角色骨骼节点运动呈现适配当前新风格角色的动作资源帧数据并记录;
判断动作资源帧数据队列中是否还有其他动作资源帧数据,是,则通过动作资源处理模块生成新风格动作资源,否,则从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上,实现通过角色数据来生成新风格动作资源。
进一步的,所述碰撞体管理模块能够基于角色数据生成贴合角色模型的角色部件碰撞体集合,具体为:步骤S11、输入角色数据,读取角色骨骼节点,判断角色骨骼节点队列是否为空,是,则完成角色部件碰撞体集合生成;否,则从角色骨骼节点队列中读取一个骨骼节点;步骤S12、判断读取的骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的关联部件骨骼节点信息,将所有角色关联部件骨骼节点加入角色关联部件骨骼节点队列;否,判断角色骨骼节点队列中是否还有其他角色骨骼节点;步骤S13、判断角色骨骼节点队列中是否还有其他角色骨骼节点,是,则从角色骨骼节点队列中读取一个骨骼节点,否,完成角色部件碰撞体集合生成;步骤S14、判断角色关联部件骨骼节点队列是否为空,是,则判断角色骨骼节点队列中是否还有其他骨骼节点,否,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点;步骤S15、获取角色骨骼节点与角色关联部件骨骼节点在角色蒙皮数据中关联的顶点与顶点权重数据加入顶点数据队列,从顶点数据队列删除小于对应角色骨骼节点类型保留权重的顶点数据;步骤S16、从顶点数据队列删除零散的无效顶点数据,创建角色骨骼节点对应碰撞体类型的碰撞体,基于角色骨骼节点及角色关联部件骨骼节点数据计算并设置碰撞体中心位置;步骤S17、基于顶点数据队列计算并设置碰撞体大小与其他碰撞体参数,将创建的碰撞体加入角色部件碰撞体集合,判断角色关联部件骨骼节点队列中是否还有其他角色关联部件骨骼节点,是,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点,否,则判断角色骨骼节点队列中是否还有其他角色骨骼节点。
进一步的,所述动作资源处理模块通过适配当前风格模型的动作资源帧数据队列生成新风格动作资源,具体为:步骤S31、输入适配当前角色风格模型的动作资源帧数据队列,记录为新动作资源帧数据队列;步骤S32、创建一个新动作资源,判断新动作资源帧数据队列是否为空,是,则完成新风格动作资源生成,否,则从新动作资源帧数据队列中读取一个动作资源帧数据;步骤S33、将当前动作资源帧数据中的数据写入角色动作资源,判断新动作资源帧数据队列中是否还有其他动作资源帧数据,是,则从新动作资源帧数据队列中读取一个动作资源帧数据,否,则读取新动作资源的帧数据动作曲线队列;步骤S34、判断帧数据动作曲线队列是否为空,是,则完成新风格动作资源生成,否,则从帧数据动作曲线队列中读取一条帧数据动作曲线;步骤S35、将这条帧数据动作曲线上的帧数据按直线与二次贝塞尔曲线拟合后获得关键帧数据动作曲线,将关键帧数据动作曲线重新写入新动作资源;步骤S36、判断帧数据动作曲线队列中是否还有其他帧数据动作曲线,是,则从帧数据动作曲线队列中读取一条帧数据动作曲线,否,则完成新风格动作资源生成。
本发明的有益效果在于:本发明通过生成角色碰撞体与肌肉空间,使用碰撞检测、反向运动计算、肌肉空间按帧更新动作资源,让3D角色动作资源在每一帧都保留原有美术效果的同时能更贴合当前角色的风格类型;本发明通过将动作资源进行风格转换生成新风格动作资源,减少了3D角色动作生产消耗,缩短了3D角色动作相关项目的开发周期,加快了开发进度。
附图说明
图1是本发明的方法流程示意图;
图2是本发明一实施例的碰撞体管理模块能够基于角色数据生成贴合角色模型的角色部件碰撞体集合的示意图;
图3是本发明一实施例的动作资源处理模块读取动作资源帧数据加入动作资源帧数据队列的示意图;
图4是本发明一实施例的动作资源处理模块生成新风格动作资源的示意图;
图5是本发明一实施例的碰撞检测模块检测角色部件的碰撞情况计算角色部件骨骼节点的目标位置的示意图;
图6是本发明一实施例的反向运动模块计算关联骨骼节点目标位置的示意图;
图7是本发明一实施例的肌肉空间模块根据角色数据生成角色肌肉空间的示意图;
图8是本发明一实施例的肌肉空间模块根据骨骼节点目标位置更新肌肉空间数据的示意图;
图9是本发明一实施例的肌肉空间模块驱动角色骨骼节点运动获得适配当前风格模型的动作资源帧数据并记录的示意图。
具体实施方式
下面结合附图对本发明做进一步说明。
一种动作资源风格转换方法,所述方法基于角色数据来生成新风格动作资源,所述方法为:
输入角色数据,碰撞体管理模块将基于角色数据生成贴合角色模型的角色部件碰撞体集合,将角色数据进行识别,选择每个角色部件适配的碰撞体类型;
输入动作资源,动作资源处理模块读取动作资源帧数据加入动作资源帧数据队列中,从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上;
通过碰撞检测模块检测碰撞体管理模块中角色部件的碰撞情况,计算角色部件骨骼节点的目标位置;
通过反向运动模块计算碰撞检测模块中角色部件骨骼节点目标位置并计算关联骨骼节点的目标位置;
通过肌肉空间模块根据角色数据生成角色肌肉空间,包括根据反向运动模块中的骨骼节点目标位置更新肌肉空间数据,驱动角色骨骼节点运动呈现适配当前新风格角色的动作资源帧数据并记录;
判断动作资源帧数据队列中是否还有其他动作资源帧数据,是,则通过动作资源处理模块生成新风格动作资源,否,则从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上,实现通过角色数据来生成新风格动作资源。
下面结合一实施例对本发明作进一步说明:
请参阅图1所示,本发明的一种动作资源风格转换方法,本发明基于角色数据来生成新风格动作资源,然后通过对新风格角色数据的识别生成生成贴合角色模型的角色部件碰撞体集合与角色肌肉空间,将动作资源解析为动作资源帧数据队列,逐帧处理动作资源帧数据,碰撞检测模块检测角色部件的碰撞情况计算部件骨骼节点的目标位置,反向运动模块计算关联骨骼节点目标位置,然后肌肉空间模块根据骨骼节点目标位置更新肌肉空间数据并驱动角色骨骼节点运动获得适配当前风格模型的动作资源帧数据,最后通过动作资源处理模块生成新风格动作资源,生成的新风格动作资源保留原有美术效果的同时能更贴合当前角色的风格类型。
本发明中角色数据的定义包括但不限于角色模型网格数据、角色蒙皮数据、角色骨骼节点数据等。
本发明中角色部件的定义包括但不限于头、身体、左手、右手、左脚、右脚等。
本发明中碰撞体的定义包括但不限于球形碰撞体、圆柱型碰撞体、长方体碰撞体等。
本发明中角色骨骼节点的定义是角色身上可以驱动模型顶点发生改变的节点,一个角色部件包含多个角色骨骼节点。
本发明中肌肉空间的定义是3D角色的所有骨骼节点可以旋转运动区域范围的集合,每个骨骼在对应旋转运动区域范围内的旋转运动是符合角色肌肉的运动规律的。
本发明中动作资源帧数据的定义是动作资源在这一帧中所有关联骨骼节点的位置、旋转、放缩等数据值的集合。
本发明中动作曲线的定义为动作资源在一个角色骨骼节点上一个数值变化的帧数据的连线,例如:一个角色骨骼节点位置的X轴数值的变化的帧数据的连线。
本发明中帧数据动作曲线的定义为以每帧一个数据的形式保存的动作曲线。
本发明中关键帧数据动作曲线的定义为以关键帧曲线(直线或二次贝塞尔曲线)连接而成的动作曲线。
其中:
1)动作资源处理模块
该模块包含将动作资源解析为动作资源帧数据队列与通过适配当前风格模型的动作资源帧数据队列生成新风格动作资源两个功能。实现动作资源解析与生成的流程。
2)碰撞体管理模块
该模块实现基于角色数据自动生成贴合角色模型的角色部件碰撞体集合的功能,将角色数据进行识别,选择每个角色部件适配的碰撞体类型集合。
适配的碰撞体类型的定义为能让碰撞体更加贴合角色模型且不影响角色碰撞检测效果的基础碰撞体类型,基础碰撞体类型包括但不限于球形碰撞体、圆柱型碰撞体、长方体碰撞体等。
3)肌肉空间模块
该模块包含生成角色肌肉空间、根据骨骼节点目标位置更新肌肉空间数据、驱动骨骼节点运动呈现适配当前体型的动作姿势三个功能,实现了从肌肉空间生成、数据更新、数据应用的整个生命周期,在符合角色肌肉的运动规律的基础上,驱动骨骼节点运动获得适配当前风格模型的动作资源帧数据。
4)碰撞检测模块
该模块通过对角色部件碰撞体集合(在碰撞体管理模块中生成)中的碰撞体碰撞情况的检测,实现计算部件骨骼节点目标位置的功能。
5)反向运动模块
该模块实现通过碰撞检测模块中计算的部件骨骼节点目标位置计算关联骨骼节点的目标位置的功能。
本发明适用于所有风格类型3D角色的动作资源生产过程,包括但不限于写实风格动作资源生产过程、Q版卡通风格动作资源生产过程、其它3D角色风格的动作资源生产过程。
请参阅图2所示,所述碰撞体管理模块能够基于角色数据生成贴合角色模型的角色部件碰撞体集合,具体为:步骤S11、输入角色数据,读取角色骨骼节点,判断角色骨骼节点队列是否为空,是,则完成角色部件碰撞体集合生成;否,则从角色骨骼节点队列中读取一个骨骼节点;
步骤S12、判断读取的骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的关联部件骨骼节点信息,将所有角色关联部件骨骼节点加入角色关联部件骨骼节点队列;否,判断角色骨骼节点队列中是否还有其他角色骨骼节点;
步骤S13、判断角色骨骼节点队列中是否还有其他角色骨骼节点,是,则从角色骨骼节点队列中读取一个骨骼节点,否,完成角色部件碰撞体集合生成;
步骤S14、判断角色关联部件骨骼节点队列是否为空,是,则判断角色骨骼节点队列中是否还有其他骨骼节点,否,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点;
步骤S15、获取角色骨骼节点与角色关联部件骨骼节点在角色蒙皮数据中关联的顶点与顶点权重数据加入顶点数据队列,从顶点数据队列删除小于对应角色骨骼节点类型保留权重的顶点数据;
步骤S16、从顶点数据队列删除零散的无效顶点数据,创建角色骨骼节点对应碰撞体类型的碰撞体,基于角色骨骼节点及角色关联部件骨骼节点数据计算并设置碰撞体中心位置;
步骤S17、基于顶点数据队列计算并设置碰撞体大小与其他碰撞体参数,将创建的碰撞体加入角色部件碰撞体集合,判断角色关联部件骨骼节点队列中是否还有其他角色关联部件骨骼节点,是,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点,否,则判断角色骨骼节点队列中是否还有其他角色骨骼节点。
请参阅图3所示,所述动作资源处理模块能够将角色动作资源解析为动作资源帧数据队列,具体为:
步骤S21、输入动作资源,创建一个动作资源帧数据队列;
步骤S22、获取角色动作资源总帧数,记录当前帧数为0;
步骤S23、判断当前帧数是否小于角色动作资源总帧数,是,则应用动作资源的当前帧状态,否,则返回动作资源帧数据队列;
步骤S24、获得当前帧的动作资源数据并加入动作资源帧数据队列,当前帧数加1,继续判断当前帧数是否小于动作资源总帧数。
请参阅图4所示,所述动作资源处理模块通过适配当前风格模型的动作资源帧数据队列生成新风格动作资源,具体为:步骤S31、输入适配当前角色风格模型的动作资源帧数据队列,记录为新动作资源帧数据队列;
步骤S32、创建一个新动作资源,判断新动作资源帧数据队列是否为空,是,则完成新风格动作资源生成,否,则从新动作资源帧数据队列中读取一个动作资源帧数据;步骤S33、将当前动作资源帧数据中的数据写入角色动作资源,判断新动作资源帧数据队列中是否还有其他动作资源帧数据,是,则从新动作资源帧数据队列中读取一个动作资源帧数据,否,则读取新动作资源的帧数据动作曲线队列;
步骤S34、判断帧数据动作曲线队列是否为空,是,则完成新风格动作资源生成,否,则从帧数据动作曲线队列中读取一条帧数据动作曲线;
步骤S35、将这条帧数据动作曲线上的帧数据按直线与二次贝塞尔曲线拟合后获得关键帧数据动作曲线,将关键帧数据动作曲线重新写入新动作资源;
步骤S36、判断帧数据动作曲线队列中是否还有其他帧数据动作曲线,是,则从帧数据动作曲线队列中读取一条帧数据动作曲线,否,则完成新风格动作资源生成。
请参阅图5所示,所述碰撞检测模块通过对角色部件碰撞体集合中的碰撞体碰撞情况检测,实现计算角色部件骨骼节点目标位置,具体为:步骤S41、输入播放动作姿势的角色数据,读取角色部件信息,将所有角色部件加入角色部件队列;
步骤S42、判断角色部件是否为空,是,则完成角色部件骨骼节点的目标位置计算,否,则判断上一帧角色部件碰撞体集合数据是否为空;
步骤S43、判断上一帧角色部件碰撞体集合数据是否为空,是,则记录当前角色部件碰撞体集合数据为上一帧角色部件碰撞体集合数据,完成角色部件骨骼节点的目标位置计算,否,则从角色部件队列中读取一个角色部件;
步骤S44、获取此角色部件的碰撞体集合数据,从根碰撞体向末端碰撞体依次加入碰撞体队列;
步骤S45、判断碰撞体队列是否为空,是,则判断角色部件队列中是否还有其他角色部件,否,则从碰撞体队列中读取一个碰撞体;
步骤S46、判断角色部件队列中是否还有其他角色部件,是,则从角色部件队列中读取一个角色部件,否,则记录当前角色部件碰撞体集合数据为上一帧角色部件碰撞体集合数据;
步骤S47、将此碰撞体与上一帧角色部件的碰撞体集合数据中非当前角色部件的碰撞体逐个进行碰撞检测;
步骤S48、判断是否产生碰撞体集合,是,则将当前碰撞体关联的末端节点向上一帧位置移动至不产生碰撞,记录当前碰撞体关联的末端节点的目标位置为当前末端节点所在位置,否,则记录当前碰撞体关联的末端节点的目标位置为当前末端节点所在位置;
步骤S49、判断碰撞体队列中是否还有其他碰撞体,是,则从碰撞体队列中读取一个碰撞体,否,则判断角色部件队列中是否还有其他角色部件。
请参阅图6所示,所述反向运动模块计算关联骨骼节点目标位置,具体为:步骤S51、输入播放动作姿势的角色数据与角色部件骨骼节点的目标位置,读取角色部件信息,将所有角色部件加入角色部件队列;
步骤S52、判断角色部件队列是否为空,是,则完成关联骨骼节点目标位置计算,否,则判断上一帧角色部件骨骼节点的目标位置集合数据是否为空;
步骤S53、判断上一帧角色部件骨骼节点的目标位置集合数据是否为空,是,则记录角色部件骨骼节点的目标位置集合数据为上一帧角色部件骨骼节点的目标位置集合数据,完成关联骨骼节点目标位置计算,否,从角色部件队列中读取一个角色部件,记录当前角色部件的动作执行比重为100%,获取此角色部件的骨骼节点数据,从末端骨骼节点向根骨骼节点依次加入骨骼节点队列;
步骤S54、判断骨骼节点队列是否为空,是,则判断角色部件队列中是否还有其他角色部件,否,则从骨骼节点队列中读取一个骨骼节点,获取骨骼节点当前位置、目标位置、上一帧位置,计算目标位置在上一帧位置到当前位置的比重;
步骤S55、判断角色部件队列中是否还有其他角色部件,是,则从角色部件队列中读取一个角色部件,否,记录角色部件骨骼节点的目标位置集合数据为上一帧角色部件骨骼节点的目标位置集合数据;
步骤S56、判断当前比重是否小于当前角色部件的动作执行比重,是,则更新当前角色部件的动作执行比重为当前比重,否,则向上一帧位置移动目标位置到当前角色部件的动作执行比重;
步骤S57、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个骨骼节点,否,则判断角色部件队列中是否还有其他角色部件。
请参阅图7所示,所述肌肉空间模块根据角色数据生成角色肌肉空间,具体为:步骤S61、输入角色数据,创建一个默认角色肌肉空间实例,读取角色骨骼节点信息,将所有角色骨骼节点加入骨骼节点队列;
步骤S62、判断骨骼节点队列是否为空,是,则完成角色肌肉空间生成,否,则从骨骼节点队列中读取一个角色骨骼节点;
步骤S63、判断角色骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的可旋转范围,将角色部件骨骼节点信息与其可旋转范围加入角色肌肉空间的部件骨骼节点队列中,否,则判断骨骼节点队列中是否还有其他骨骼节点;
步骤S64、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个角色骨骼节点,否,则完成角色肌肉空间生成。
请参阅图8所示,所述肌肉空间模块根据骨骼节点目标位置更新肌肉空间数据,具体为:步骤S71、输入角色骨骼节点目标位置数据,读取角色骨骼节点数据,将所有角色骨骼节点加入骨骼节点队列;
步骤S72、判断骨骼节点队列是否为空,是,则完成角色肌肉空间数据更新,否,则从骨骼节点队列中读取一个角色骨骼节点;
步骤S73、判断角色骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点关联的父骨骼节点,否,则将当前角色骨骼节点标记为已处理,从骨骼节点队列中移除当前骨骼节点;
步骤S74、判断父骨骼节点是否在骨骼节点队列中,是,则将当前角色骨骼节点移至骨骼节点队列最后一个位置,否,则判断父骨骼节点是否有大于一个的直接关联子部件骨骼节点;
步骤S75、判断骨骼节点队列中是否还有角色骨骼节点,是,则将当前角色骨骼节点移至骨骼节点队列最后一个位置,否,则完成角色肌肉空间数据更新;
步骤S76、判断父骨骼节点是否有大于一个的直接关联子部件骨骼节点,是,则将当前角色骨骼节点标记为已处理,否,则计算通过父骨骼节点旋转让角色骨骼节点朝向目标位置需要的旋转角度,读取父骨骼节点在部件骨骼节点队列中记录的可旋转范围;
步骤S77、判断旋转角度是否在可旋转范围内,是,则父骨骼节点旋转对应的旋转角度,记录父骨骼节点的旋转角度到骨骼节点当前旋转角度队列中,将当前骨骼节点标记为已处理,否,则在可旋转范围内得到最接近的旋转角度,父骨骼节点旋转对应的旋转角度。
请参阅图9所示,所述肌肉空间模块驱动角色骨骼节点运动获得适配当前风格模型的动作资源帧数据并记录,具体为:步骤S81、输入肌肉空间数据,读取角色骨骼节点当前旋转角度队列中的骨骼节点数据加入骨骼节点队列;
步骤S82、判断骨骼节点队列是否为空,是,则获得适配当前风格模型的动作资源帧数据,记录获得的动作资源帧数据,否,则从骨骼节点队列中读取一个角色骨骼节点,将当前骨骼节点旋转至记录的当前旋转角度,当前角色骨骼节点的所有子部件骨骼节点位置绕当前骨骼节点位置旋转当前旋转角度,当前角色骨骼节点的所有子部件骨骼节点位置获得新位置;
步骤S83、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个骨骼节点,否,则获得适配当前风格模型的动作资源帧数据,记录获得的动作资源帧数据,并结束流程。
总之,本发明可应用于所有风格类型3D角色的动作资源生产过程。和常规的3D角色动作生产方式不同,本发明通过生成角色碰撞体与肌肉空间,使用碰撞检测、反向运动计算、肌肉空间按帧更新动作资源,让3D角色动作资源在每一帧都保留原有美术效果的同时能更贴合当前角色的风格类型。本发明解决了3D角色动作资源在不同风格角色上需要重新生产的问题。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (10)

1.一种动作资源风格转换方法,其特征在于:所述方法基于角色数据来生成新风格动作资源,所述方法为:
输入角色数据,碰撞体管理模块将基于角色数据生成贴合角色模型的角色部件碰撞体集合,将角色数据进行识别,选择每个角色部件适配的碰撞体类型;
输入动作资源,动作资源处理模块读取动作资源帧数据加入动作资源帧数据队列中,从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上;
通过碰撞检测模块检测碰撞体管理模块中角色部件的碰撞情况,计算角色部件骨骼节点的目标位置;
通过反向运动模块计算碰撞检测模块中角色部件骨骼节点目标位置并计算关联骨骼节点的目标位置;
通过肌肉空间模块根据角色数据生成角色肌肉空间,包括根据反向运动模块中的骨骼节点目标位置更新肌肉空间数据,驱动角色骨骼节点运动呈现适配当前新风格角色的动作资源帧数据并记录;
判断动作资源帧数据队列中是否还有其他动作资源帧数据,是,则通过动作资源处理模块生成新风格动作资源,否,则从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上,实现通过角色数据来生成新风格动作资源;
所述碰撞体管理模块能够基于角色数据生成贴合角色模型的角色部件碰撞体集合,具体为:步骤S11、输入角色数据,读取角色骨骼节点,判断角色骨骼节点队列是否为空,是,则完成角色部件碰撞体集合生成;否,则从角色骨骼节点队列中读取一个骨骼节点;步骤S12、判断读取的骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的关联部件骨骼节点信息,将所有角色关联部件骨骼节点加入角色关联部件骨骼节点队列;否,判断角色骨骼节点队列中是否还有其他角色骨骼节点;步骤S13、判断角色骨骼节点队列中是否还有其他角色骨骼节点,是,则从角色骨骼节点队列中读取一个骨骼节点,否,完成角色部件碰撞体集合生成;步骤S14、判断角色关联部件骨骼节点队列是否为空,是,则判断角色骨骼节点队列中是否还有其他骨骼节点,否,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点;步骤S15、获取角色骨骼节点与角色关联部件骨骼节点在角色蒙皮数据中关联的顶点与顶点权重数据加入顶点数据队列,从顶点数据队列删除小于对应角色骨骼节点类型保留权重的顶点数据;步骤S16、从顶点数据队列删除零散的无效顶点数据,创建角色骨骼节点对应碰撞体类型的碰撞体,基于角色骨骼节点及角色关联部件骨骼节点数据计算并设置碰撞体中心位置;步骤S17、基于顶点数据队列计算并设置碰撞体大小与其他碰撞体参数,将创建的碰撞体加入角色部件碰撞体集合,判断角色关联部件骨骼节点队列中是否还有其他角色关联部件骨骼节点,是,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点,否,则判断角色骨骼节点队列中是否还有其他角色骨骼节点;
所述动作资源处理模块能够将角色动作资源解析为动作资源帧数据队列,具体为:步骤S21、输入动作资源,创建一个动作资源帧数据队列;步骤S22、获取角色动作资源总帧数,记录当前帧数为0;步骤S23、判断当前帧数是否小于角色动作资源总帧数,是,则应用动作资源的当前帧状态,否,则返回动作资源帧数据队列;步骤S24、获得当前帧的动作资源数据并加入动作资源帧数据队列,当前帧数加1,继续判断当前帧数是否小于动作资源总帧数;
所述肌肉空间模块根据角色数据生成角色肌肉空间,具体为:步骤S61、输入角色数据,创建一个默认角色肌肉空间实例,读取角色骨骼节点信息,将所有角色骨骼节点加入骨骼节点队列;步骤S62、判断骨骼节点队列是否为空,是,则完成角色肌肉空间生成,否,则从骨骼节点队列中读取一个角色骨骼节点;步骤S63、判断角色骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的可旋转范围,将角色部件骨骼节点信息与其可旋转范围加入角色肌肉空间的部件骨骼节点队列中,否,则判断骨骼节点队列中是否还有其他骨骼节点;步骤S64、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个角色骨骼节点,否,则完成角色肌肉空间生成。
2.根据权利要求1所述的一种动作资源风格转换方法,其特征在于:所述动作资源处理模块通过适配当前风格模型的动作资源帧数据队列生成新风格动作资源,具体为:步骤S31、输入适配当前角色风格模型的动作资源帧数据队列,记录为新动作资源帧数据队列;步骤S32、创建一个新动作资源,判断新动作资源帧数据队列是否为空,是,则完成新风格动作资源生成,否,则从新动作资源帧数据队列中读取一个动作资源帧数据;步骤S33、将当前动作资源帧数据中的数据写入角色动作资源,判断新动作资源帧数据队列中是否还有其他动作资源帧数据,是,则从新动作资源帧数据队列中读取一个动作资源帧数据,否,则读取新动作资源的帧数据动作曲线队列;步骤S34、判断帧数据动作曲线队列是否为空,是,则完成新风格动作资源生成,否,则从帧数据动作曲线队列中读取一条帧数据动作曲线;步骤S35、将这条帧数据动作曲线上的帧数据按直线与二次贝塞尔曲线拟合后获得关键帧数据动作曲线,将关键帧数据动作曲线重新写入新动作资源;步骤S36、判断帧数据动作曲线队列中是否还有其他帧数据动作曲线,是,则从帧数据动作曲线队列中读取一条帧数据动作曲线,否,则完成新风格动作资源生成。
3.根据权利要求1所述的一种动作资源风格转换方法,其特征在于:所述碰撞检测模块通过对角色部件碰撞体集合中的碰撞体碰撞情况检测,实现计算角色部件骨骼节点目标位置,具体为:步骤S41、输入播放动作姿势的角色数据,读取角色部件信息,将所有角色部件加入角色部件队列;步骤S42、判断角色部件队列是否为空,是,则完成角色部件骨骼节点的目标位置计算,否,则判断上一帧角色部件碰撞体集合数据是否为空;步骤S43、判断上一帧角色部件碰撞体集合数据是否为空,是,则记录当前角色部件碰撞体集合数据为上一帧角色部件碰撞体集合数据,完成角色部件骨骼节点的目标位置计算,否,则从角色部件队列中读取一个角色部件;步骤S44、获取此角色部件的碰撞体集合数据,从根碰撞体向末端碰撞体依次加入碰撞体队列;步骤S45、判断碰撞体队列是否为空,是,则判断角色部件队列中是否还有其他角色部件,否,则从碰撞体队列中读取一个碰撞体;步骤S46、判断角色部件队列中是否还有其他角色部件,是,则从角色部件队列中读取一个角色部件,否,则记录当前角色部件碰撞体集合数据为上一帧角色部件碰撞体集合数据;步骤S47、将此碰撞体与上一帧角色部件的碰撞体集合数据中非当前角色部件的碰撞体逐个进行碰撞检测;步骤S48、判断是否产生碰撞体集合,是,则将当前碰撞体关联的末端节点向上一帧位置移动至不产生碰撞,记录当前碰撞体关联的末端节点的目标位置为当前末端节点所在位置,否,则记录当前碰撞体关联的末端节点的目标位置为当前末端节点所在位置;步骤S49、判断碰撞体队列中是否还有其他碰撞体,是,则从碰撞体队列中读取一个碰撞体,否,则判断角色部件队列中是否还有其他角色部件。
4.根据权利要求1所述的一种动作资源风格转换方法,其特征在于:所述反向运动模块计算关联骨骼节点目标位置,具体为:步骤S51、输入播放动作姿势的角色数据与角色部件骨骼节点的目标位置,读取角色部件信息,将所有角色部件加入角色部件队列;步骤S52、判断角色部件队列是否为空,是,则完成关联骨骼节点目标位置计算,否,则判断上一帧角色部件骨骼节点的目标位置集合数据是否为空;步骤S53、判断上一帧角色部件骨骼节点的目标位置集合数据是否为空,是,则记录角色部件骨骼节点的目标位置集合数据为上一帧角色部件骨骼节点的目标位置集合数据,完成关联骨骼节点目标位置计算,否,从角色部件队列中读取一个角色部件,记录当前角色部件的动作执行比重为100%,获取此角色部件的骨骼节点数据,从末端骨骼节点向根骨骼节点依次加入骨骼节点队列;步骤S54、判断骨骼节点队列是否为空,是,则判断角色部件队列中是否还有其他角色部件,否,则从骨骼节点队列中读取一个骨骼节点,获取骨骼节点当前位置、目标位置、上一帧位置,计算目标位置在上一帧位置到当前位置的比重;步骤S55、判断角色部件队列中是否还有其他角色部件,是,则从角色部件队列中读取一个角色部件,否,记录角色部件骨骼节点的目标位置集合数据为上一帧角色部件骨骼节点的目标位置集合数据;步骤S56、判断当前比重是否小于当前角色部件的动作执行比重,是,则更新当前角色部件的动作执行比重为当前比重,否,则向上一帧位置移动目标位置到当前角色部件的动作执行比重;步骤S57、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个骨骼节点,否,则判断角色部件队列中是否还有其他角色部件。
5.根据权利要求1所述的一种动作资源风格转换方法,其特征在于:所述肌肉空间模块根据骨骼节点目标位置更新肌肉空间数据,具体为:步骤S71、输入角色骨骼节点目标位置数据,读取角色骨骼节点数据,将所有角色骨骼节点加入骨骼节点队列;步骤S72、判断骨骼节点队列是否为空,是,则完成角色肌肉空间数据更新,否,则从骨骼节点队列中读取一个角色骨骼节点;步骤S73、判断角色骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点关联的父骨骼节点,否,则将当前角色骨骼节点标记为已处理,从骨骼节点队列中移除当前骨骼节点;步骤S74、判断父骨骼节点是否在骨骼节点队列中,是,则将当前角色骨骼节点移至骨骼节点队列最后一个位置,否,则判断父骨骼节点是否有大于一个的直接关联子部件骨骼节点;步骤S75、判断骨骼节点队列中是否还有角色骨骼节点,是,则将当前角色骨骼节点移至骨骼节点队列最后一个位置,否,则完成角色肌肉空间数据更新;步骤S76、判断父骨骼节点是否有大于一个的直接关联子部件骨骼节点,是,则将当前角色骨骼节点标记为已处理,否,则计算通过父骨骼节点旋转让角色骨骼节点朝向目标位置需要的旋转角度,读取父骨骼节点在部件骨骼节点队列中记录的可旋转范围;步骤S77、判断旋转角度是否在可旋转范围内,是,则父骨骼节点旋转对应的旋转角度,记录父骨骼节点的旋转角度到骨骼节点当前旋转角度队列中,将当前骨骼节点标记为已处理,否,则在可旋转范围内得到最接近的旋转角度,父骨骼节点旋转对应的旋转角度。
6.根据权利要求1所述的一种动作资源风格转换方法,其特征在于:所述肌肉空间模块驱动角色骨骼节点运动获得适配当前风格模型的动作资源帧数据并记录,具体为:步骤S81、输入肌肉空间数据,读取角色骨骼节点当前旋转角度队列中的骨骼节点数据加入骨骼节点队列;步骤S82、判断骨骼节点队列是否为空,是,则获得适配当前风格模型的动作资源帧数据,记录获得的动作资源帧数据,否,则从骨骼节点队列中读取一个角色骨骼节点,将当前骨骼节点旋转至记录的当前旋转角度,当前角色骨骼节点的所有子部件骨骼节点位置绕当前骨骼节点位置旋转当前旋转角度,当前角色骨骼节点的所有子部件骨骼节点位置获得新位置;步骤S83、判断骨骼节点队列中是否还有其他骨骼节点,是,则从骨骼节点队列中读取一个骨骼节点,否,则获得适配当前风格模型的动作资源帧数据,记录获得的动作资源帧数据,并结束流程。
7.根据权利要求1所述的一种动作资源风格转换方法,其特征在于:所述角色数据包括但不限于角色模型网格数据、角色蒙皮数据、角色骨骼节点数据。
8.一种动作资源风格转换***,其特征在于:所述***包括有一服务器,所述服务器安装有如权利要求1所述的碰撞体管理模块、动作资源处理模块、碰撞检测模块、反向运动模块和肌肉空间模块;
输入角色数据,碰撞体管理模块将基于角色数据生成贴合角色模型的角色部件碰撞体集合,将角色数据进行识别,选择每个角色部件适配的碰撞体类型;
输入动作资源,动作资源处理模块读取动作资源帧数据加入动作资源帧数据队列中,从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上;
通过碰撞检测模块检测碰撞体管理模块中角色部件的碰撞情况,计算角色部件骨骼节点的目标位置;
通过反向运动模块计算碰撞检测模块中角色部件骨骼节点目标位置并计算关联骨骼节点的目标位置;
通过肌肉空间模块根据角色数据生成角色肌肉空间,包括根据反向运动模块中的骨骼节点目标位置更新肌肉空间数据,驱动角色骨骼节点运动呈现适配当前新风格角色的动作资源帧数据并记录;
判断动作资源帧数据队列中是否还有其他动作资源帧数据,是,则通过动作资源处理模块生成新风格动作资源,否,则从动作资源帧数据队列中读取一个动作资源帧数据并应用至新风格角色上,实现通过角色数据来生成新风格动作资源。
9.根据权利要求8所述的一种动作资源风格转换***,其特征在于:所述碰撞体管理模块能够基于角色数据生成贴合角色模型的角色部件碰撞体集合,具体为:步骤S11、输入角色数据,读取角色骨骼节点,判断角色骨骼节点队列是否为空,是,则完成角色部件碰撞体集合生成;否,则从角色骨骼节点队列中读取一个骨骼节点;步骤S12、判断读取的骨骼节点是否为角色部件骨骼节点,是,则获取此角色部件骨骼节点的关联部件骨骼节点信息,将所有角色关联部件骨骼节点加入角色关联部件骨骼节点队列;否,判断角色骨骼节点队列中是否还有其他角色骨骼节点;步骤S13、判断角色骨骼节点队列中是否还有其他角色骨骼节点,是,则从角色骨骼节点队列中读取一个骨骼节点,否,完成角色部件碰撞体集合生成;步骤S14、判断角色关联部件骨骼节点队列是否为空,是,则判断角色骨骼节点队列中是否还有其他骨骼节点,否,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点;步骤S15、获取角色骨骼节点与角色关联部件骨骼节点在角色蒙皮数据中关联的顶点与顶点权重数据加入顶点数据队列,从顶点数据队列删除小于对应角色骨骼节点类型保留权重的顶点数据;步骤S16、从顶点数据队列删除零散的无效顶点数据,创建角色骨骼节点对应碰撞体类型的碰撞体,基于角色骨骼节点及角色关联部件骨骼节点数据计算并设置碰撞体中心位置;步骤S17、基于顶点数据队列计算并设置碰撞体大小与其他碰撞体参数,将创建的碰撞体加入角色部件碰撞体集合,判断角色关联部件骨骼节点队列中是否还有其他角色关联部件骨骼节点,是,则从角色关联部件骨骼节点队列中读取一个角色关联部件骨骼节点,否,则判断角色骨骼节点队列中是否还有其他角色骨骼节点。
10.根据权利要求8所述的一种动作资源风格转换***,其特征在于:所述动作资源处理模块通过适配当前风格模型的动作资源帧数据队列生成新风格动作资源,具体为:步骤S31、输入适配当前角色风格模型的动作资源帧数据队列,记录为新动作资源帧数据队列;步骤S32、创建一个新动作资源,判断新动作资源帧数据队列是否为空,是,则完成新风格动作资源生成,否,则从新动作资源帧数据队列中读取一个动作资源帧数据;步骤S33、将当前动作资源帧数据中的数据写入角色动作资源,判断新动作资源帧数据队列中是否还有其他动作资源帧数据,是,则从新动作资源帧数据队列中读取一个动作资源帧数据,否,则读取新动作资源的帧数据动作曲线队列;步骤S34、判断帧数据动作曲线队列是否为空,是,则完成新风格动作资源生成,否,则从帧数据动作曲线队列中读取一条帧数据动作曲线;步骤S35、将这条帧数据动作曲线上的帧数据按直线与二次贝塞尔曲线拟合后获得关键帧数据动作曲线,将关键帧数据动作曲线重新写入新动作资源;步骤S36、判断帧数据动作曲线队列中是否还有其他帧数据动作曲线,是,则从帧数据动作曲线队列中读取一条帧数据动作曲线,否,则完成新风格动作资源生成。
CN202110982372.9A 2021-08-25 2021-08-25 一种动作资源风格转换方法及*** Active CN113781612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110982372.9A CN113781612B (zh) 2021-08-25 2021-08-25 一种动作资源风格转换方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110982372.9A CN113781612B (zh) 2021-08-25 2021-08-25 一种动作资源风格转换方法及***

Publications (2)

Publication Number Publication Date
CN113781612A CN113781612A (zh) 2021-12-10
CN113781612B true CN113781612B (zh) 2023-12-22

Family

ID=78839170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110982372.9A Active CN113781612B (zh) 2021-08-25 2021-08-25 一种动作资源风格转换方法及***

Country Status (1)

Country Link
CN (1) CN113781612B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021584A (zh) * 2014-06-25 2014-09-03 无锡梵天信息技术股份有限公司 一种骨骼蒙皮动画的实现方法
CN105551072A (zh) * 2015-12-11 2016-05-04 网易(杭州)网络有限公司 实现角色模型局部实时运动的方法及***
US10535174B1 (en) * 2017-09-14 2020-01-14 Electronic Arts Inc. Particle-based inverse kinematic rendering system
CN111402372A (zh) * 2020-03-24 2020-07-10 网易(杭州)网络有限公司 游戏中虚拟角色的动作模拟方法、装置和电子设备
US10796489B1 (en) * 2017-09-13 2020-10-06 Lucasfilm Entertainment Company Ltd. Game engine responsive to motion-capture data for mixed-reality environments

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10065074B1 (en) * 2014-12-12 2018-09-04 Enflux, Inc. Training systems with wearable sensors for providing users with feedback

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104021584A (zh) * 2014-06-25 2014-09-03 无锡梵天信息技术股份有限公司 一种骨骼蒙皮动画的实现方法
CN105551072A (zh) * 2015-12-11 2016-05-04 网易(杭州)网络有限公司 实现角色模型局部实时运动的方法及***
US10796489B1 (en) * 2017-09-13 2020-10-06 Lucasfilm Entertainment Company Ltd. Game engine responsive to motion-capture data for mixed-reality environments
US10535174B1 (en) * 2017-09-14 2020-01-14 Electronic Arts Inc. Particle-based inverse kinematic rendering system
CN111402372A (zh) * 2020-03-24 2020-07-10 网易(杭州)网络有限公司 游戏中虚拟角色的动作模拟方法、装置和电子设备

Also Published As

Publication number Publication date
CN113781612A (zh) 2021-12-10

Similar Documents

Publication Publication Date Title
Gupta et al. Embodied intelligence via learning and evolution
Wang et al. Gaussian process dynamical models for human motion
US11972353B2 (en) Character controllers using motion variational autoencoders (MVAEs)
Singh et al. PI-LSTM: Physics-infused long short-term memory network
Chin et al. Incremental kernel principal component analysis
CN1294541C (zh) 在单目脸部跟踪中使用数据驱动模型的方法和***
CN103577793A (zh) 手势识别方法及装置
CN103020085B (zh) 一种个人风格化书法动态字库的实现方法及其应用
CN110503063A (zh) 基于沙漏卷积自动编码神经网络的跌倒检测方法
CN112633059B (zh) 一种基于LabVIEW和MATLAB的跌倒远程监控***
CN115617217B (zh) 一种车辆状态的显示方法、装置、设备及可读存储介质
CN112258557B (zh) 一种基于空间注意力特征聚合的视觉跟踪方法
CN113808047A (zh) 一种人体运动捕捉数据去噪方法
CN110738239A (zh) 一种基于鼠标交互序列区域行为联合建模的搜索引擎用户满意度评估方法
CN111080671B (zh) 一种基于深度神经网络的运动预测方法和智能终端
CN115346262A (zh) 一种表情驱动参数的确定方法、装置、设备及存储介质
CN113781612B (zh) 一种动作资源风格转换方法及***
Ren et al. Insactor: Instruction-driven physics-based characters
CN116051699B (zh) 动捕数据的处理方法、装置、设备及存储介质
CN115393532B (zh) 脸部绑定方法、装置、设备及存储介质
Golubovic et al. Ga-based gait generation of sony quadruped robots
US11810235B2 (en) Method for establishing complex motion controller
CN113658308B (zh) 一种不同体型角色动作复用的方法及***
US20230274548A1 (en) Class agnostic repetition counting in video(s) utilizing a temporal self-similarity matrix
CN113879333A (zh) 轨迹预测方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant