CN113470146B - 游戏动画素材的生成方法及装置、存储介质、终端 - Google Patents
游戏动画素材的生成方法及装置、存储介质、终端 Download PDFInfo
- Publication number
- CN113470146B CN113470146B CN202110727445.XA CN202110727445A CN113470146B CN 113470146 B CN113470146 B CN 113470146B CN 202110727445 A CN202110727445 A CN 202110727445A CN 113470146 B CN113470146 B CN 113470146B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- climbing
- node data
- stress
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/60—Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种游戏动画素材的生成方法及装置、存储介质、终端,涉及数据处理技术领域,主要目的在于解决现有游戏动画素材的定制化生成效率低的问题。包括:获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材。主要用于游戏动画素材的生成。
Description
技术领域
本发明涉及一种数据处理技术领域,特别是涉及一种游戏动画素材的生成方法及装置、存储介质、终端。
背景技术
随着大世界类型游戏开发需求的逐步仿真化,各种虚拟动画的程序化开发越来越受到关注。尤其是针对大世界类型游戏中随着世界时间的变化,针对动画素材生成具有逼真效果的场景动画需求越来越多,例如,生成出攀附于房屋、桥体、树等表面效果真实的藤蔓动画素材,以基于游戏引擎渲染逼真的藤蔓动画。
目前,现有的对具有攀爬效果的动画素材生成方法通常直接采用人工添加动画面片,或者利用专业的3D生成软件Spline等生成,然而,人工添加动画面片方式浪费人力资源,且添加的动画面片无法体现动画的真实生成效果,而基于专业软件等方式无法适用于各个游戏引擎中,增大了移动端的渲染压力,无法满足大世界类型游戏的程序化生成需求,无法满足不同定制化动画素材的生成需求。
发明内容
有鉴于此,本发明提供一种游戏动画素材的生成方法及装置、存储介质、终端,主要目的在于解决现有游戏动画素材的定制化生成效率低的问题。
依据本发明一个方面,提供了一种游戏动画素材的生成方法,包括:
获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;
基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;
根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材。
进一步地,所述生长力数据包括主方向力数据、随机力数据、吸附力数据、重力数据,所述基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据包括:
获取主力方向数据、随机力数据、重力数据以及吸附力数据;
解析所述节点数据中的受力数据,所述受力数据用于表征所述攀爬对象的生长特征;
在所述吸附力数据的范围内,按照不同坐标方向将所述主力方向数据、所述随机力数据、所述重力数据叠加至所述受力数据中,确定子节点数据的受力数据,以得到所述子节点数据。
进一步地,所述节点数据包括节点状态、攀爬状态、受力数据,所述基于生长力数据对所述节点数据进行受力驱动之后,所述方法还包括:
确定所述节点数据中的节点状态和/或攀爬状态,所述节点状态用于表征所述节点数据生成子节点数据的状态,所述攀爬状态用于表征攀爬对象的节点是否处于攀爬过程;
若所述节点状态为生长状态,和/或所述攀爬状态为攀爬状态,则判断基于受力驱动得到的受力数据是否匹配预设攀爬特征阈值;
若匹配预设攀爬特征阈值,则将受力驱动得到的受力数据确定为所述子节点数据的受力数据。
进一步地,所述判断基于受力驱动得到的受力数据是否匹配预设攀爬特征阈值之后,所述方法还包括:
若基于受力驱动得到的受力数据不匹配所述预设攀爬特征阈值,则清除所述受力数据,并更新所述节点状态和/或所述攀爬状态。
进一步地,所述根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材之前,所述方法还包括:
基于所述节点数据、所述子节点数据之间的连线,判断所述连线与所述场景物的模型数据是否相交;
若相交,则获取所述子节点数据相对于所述模型数据的对称点数据,将所述对称点数据确定为所述节点数据的子节点数据,所述对称点数据与所述节点数据之间的连线与所述模型数据不相交。
进一步地,所述获取所述子节点数据相对于所述模型数据的对称点数据包括:
基于所述节点数据、所述子节点数据之间的连线确定所述模型数据的三角面片,并通过所述三角面片镜面映射所述子节点数据,得到所述子节点数据镜面对称的对称点数据。
进一步地,所述根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材之后,所述方法还包括:
连接所述节点数据与所述子节点数据生成所述攀爬对象的主体模型;
确定所述主体模型的支点数据,并根据所述支点数据生成所述主体模型的附属模型;
基于所述攀爬对象的主体模型、所述附属模型生成所述攀爬对象的动画。
依据本发明另一个方面,提供了一种游戏动画素材的生成装置,包括:
获取模块,用于获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;
驱动模块,用于基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;
生成模块,用于根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材。
进一步地,所述生长力数据包括主方向力数据、随机力数据、吸附力数据、重力数据,所述驱动模块包括:
获取单元,用于获取主力方向数据、随机力数据、重力数据以及吸附力数据;
解析单元,用于解析所述节点数据中的受力数据,所述受力数据用于表征所述攀爬对象的生长特征;
叠加单元,用于在所述吸附力数据的范围内,按照不同坐标方向将所述主力方向数据、所述随机力数据、所述重力数据叠加至所述受力数据中,确定子节点数据的受力数据,以得到所述子节点数据。
进一步地,所述节点数据包括节点状态、攀爬状态、受力数据,所述装置还包括:
第一确定模块,用于确定所述节点数据中的节点状态和/或攀爬状态,所述节点状态用于表征所述节点数据生成子节点数据的状态,所述攀爬状态用于表征攀爬对象的节点是否处于攀爬过程;
判断模块,用于若所述节点状态为生长状态,和/或所述攀爬状态为攀爬状态,则判断基于受力驱动得到的受力数据是否匹配预设攀爬特征阈值;
第二确定模块,用于若匹配预设攀爬特征阈值,则将受力驱动得到的受力数据确定为所述子节点数据的受力数据。
进一步地,所述装置还包括:
更新模块,用于若基于受力驱动得到的受力数据不匹配所述预设攀爬特征阈值,则清除所述受力数据,并更新所述节点状态和/或所述攀爬状态。
进一步地,
所述判断模块,还用于基于所述节点数据、所述子节点数据之间的连线,判断所述连线与所述场景物的模型数据是否相交;
所述获取模块,还用于若相交,则获取所述子节点数据相对于所述模型数据的对称点数据,将所述对称点数据确定为所述节点数据的子节点数据,所述对称点数据与所述节点数据之间的连线与所述模型数据不相交。
进一步地,所述获取模块,具体用于基于所述节点数据、所述子节点数据之间的连线确定所述模型数据的三角面片,并通过所述三角面片镜面映射所述子节点数据,得到所述子节点数据镜面对称的对称点数据。
进一步地,所述装置还包括:连接模块,
所述连接模块,用于连接所述节点数据与所述子节点数据生成所述攀爬对象的主体模型;
所述生成模块,还用于确定所述主体模型的支点数据,并根据所述支点数据生成所述主体模型的附属模型;
生成模块,用于基于所述攀爬对象的主体模型、所述附属模型生成所述攀爬对象的动画。
根据本发明的又一方面,提供了一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述游戏动画素材的生成方法对应的操作。
根据本发明的再一方面,提供了一种终端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述游戏动画素材的生成方法对应的操作。
借由上述技术方案,本发明实施例提供的技术方案至少具有下列优点:
本发明提供了一种游戏动画素材的生成方法及装置、存储介质、终端,与现有技术相比,本发明实施例通过获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材,大大减少了生成攀爬类动画素材的数据处理压力,满足不同游戏终端的使用需求,实现对动画素材的程序化生成,极大地满足了基于不同定制化动画素材的生成需求,从而提高游戏动画素材的生成效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的第一种游戏动画素材的生成方法流程图;
图2示出了本发明实施例提供的一种藤蔓攀爬墙体的各个动画点素材示意图;
图3示出了本发明实施例提供的另一种藤蔓攀爬墙体的各个动画点素材示意图;
图4示出了本发明实施例提供的一种藤蔓动画素材生成流程图;
图5示出了本发明实施例提供的第二种游戏动画素材的生成方法流程图;
图6示出了本发明实施例提供的第三种游戏动画素材的生成方法流程图;
图7示出了本发明实施例提供的第四种游戏动画素材的生成方法流程图;
图8示出了本发明实施例提供的一种碰撞交点映射方法流程图;
图9示出了本发明实施例提供的第五种游戏动画素材的生成方法流程图;
图10示出了本发明实施例提供的一种游戏动画素材的生成装置组成框图;
图11示出了本发明实施例提供的一种终端的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种游戏动画素材的生成方法,如图1所示,该方法包括:
101、获取攀爬对象的节点数据。
本发明实施例中,攀爬对象为在游戏世界中依附场景物生长、覆盖、蔓延的动态或静态物,包括但不限于游戏世界中的物或由游戏角色、游戏器件等产生的特效,例如,在墙上攀爬的藤蔓,在墙上冰冻的雪花,对角色进行攀爬的特效等,本发明实施例不做具体限定。其中,攀爬对象包括全部攀爬位置的节点处基于Node节点存储节点数据,节点数据用于表征攀爬对象在游戏场景中依附场景物攀爬的状态,即根据节点数据可以准确确定出待攀爬对象的位置、攀爬状态、受力情况等内容,因此,节点数据包括节点状态、攀爬状态、受力数据。节点状态用于表征所述节点数据生成子节点数据的状态,即表示基于节点是否可以产生子节点,可以包括生长状态与死亡状态,通过预先设定的攀爬层级的最大层级或攀爬悬停长度的最大长度进行确定。攀爬状态用于表征节点是否处于攀爬过程,其中,预先定义节点攀爬过程与墙体等场景物发生碰撞为攀爬状态,不在攀爬状态的节点,即为通过MaxFloatingLength设定攀爬长度值超过阈值长度,则配置为无攀爬状态。受力数据用于表征攀爬的生长特征,为用于影响生成子节点的坐标数据内容。
需要说明的是,在初始化阶段,对作为根节点的节点数据进行初始化的数值定义,从而选取适合的攀爬起始点,此时,根节点位置的确定可以基于用户选取,也可以基于已产生的操作行为进行确定,本发明实施例不做具体限定。
102、基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据。
本发明实施例中,为了基于节点生成具有定制化效果、逼真仿真效果的攀爬子节点,则基于一个虚拟的生长力对节点进行受力影响,从而得到攀爬过程中节点对应的子节点,生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据。其中,生长力数据包括主方向力数据、随机力数据、吸附力数据、重力数据,针对节点数据中的受力数据,为了使攀爬的凌乱程度更为逼真,定义受力数据与主方向力数据、随机力数据、吸附力数据、重力数据处于相同的坐标系下,从而基于生长力数据对节点数据进行受力驱动。主方向力数据表征向上的正向力,针对坐标系中,设定为一个坐标单元大小的力,如(x,y,z)=(0,1,0),通过主方向力数据对节点数据中的受力数据进行作用,得到的子节点数据中的受力数据在y轴方向上进行了向上的受力结果。随机力数据表征为攀爬凌乱程度的各方向力,通过定义标准大小的坐标单元大小的力,可以为1、0.5等,在各个方向上随机定义,结合预先确定的生长强度参数相乘,如将所有力的方向矢量相加之后相乘得到随机力数据,其中,各个方向力优先确定x轴与z轴上随机产生,从而使的子节点在向上的主方向力作用下,结合x轴、y轴产生左右攀爬凌乱的效果,也可以包含有y轴方向上随机确定,产生上下攀爬的凌乱效果,本发明实施例不做具体限定。吸附力数据用于表征所述攀爬对象依附所述场景物进行攀爬产生吸附作用的数据,通过设定吸附力数据作为节点数据中受力数据与场景物的模型之间的最大距离,从而使得攀爬对象吸附场景物进行攀爬,其中,吸附力数据作为最大吸附距离基于场景物模型Mesh的所有面,将距离三角面投影点与当前节点距离最近的位置的MaxAdhesionDistance值作为吸附力数据。重力数据表征为垂直向下的力,在坐标系中,通过定义y轴方向的(0,-1,0)作为向下的重力数据,从而结合其他力数据进行作用与受力数据,产生随机的向下效果。
需要说明的是,根据节点数据中所包含的节点状态、攀爬状态、受力数据,基于生长力数据对节点数据进行受力驱动,受力驱动即可以为按照不同方向力、不同大小力对节点数据的位置进行受力移动,从而得到因受力而改变位置的子节点数据,因此,子节点数据中同样包括节点状态、攀爬状态、受力数据,以便使得子节点可以作为节点生成对应的子节点,依次完成攀爬过程。
103、根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材。
本发明实施例中,由于节点数据存储于在节点的位置处配置的Node节点中,在攀爬的起始阶段,预先确定一个根节点,此根节点对应生成一条攀爬对象的分支,例如,一个根节点对应一条藤蔓枝干,攀爬对象的攀爬过程即为基于根节点得到根节点可以为一个,也可以为多个,每个根节点可以攀爬得到多条分支。同时,节点受力驱动得到的子节点时是作为父节点,对应的,得到的子节点在受力确定时同样可以作为父节点,得到子节点的子节点,即依次迭代完成攀爬过程中全部节点的生成,如图2、图3所示的藤蔓攀爬墙体的各个动画点素材示意图。另外,由于各个节点可以依次进行迭代,为了确保攀爬对象仍然依附在场景物中进行攀爬,每次迭代过程需要对节点数据中的攀爬状态、节点状态进行更新,从而确定是否继续受力驱动,得到子节点。
需要说明的是,基于节点数据、子节点数据生成的动画素材即为基于多次迭代对一个或多个根节点进行受力驱动得到包含全部节点数据、子节点数据的各个攀爬对象节点,确定了攀爬对象的逼真攀爬效果。其中,针对游戏世界中,节点可以作为游戏场景中的位置点,从而将各个节点确定为动画素材,作为自然生长攀爬对象的基础,如图4所示的藤蔓动画素材生成流程图。
在本发明实施例中,为了进一步限定及说明,如图5所示,步骤102基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据包括:1021、获取主力方向数据、随机力数据、重力数据以及吸附力数据;1022、解析所述节点数据中的受力数据;1023、在所述吸附力数据的范围内,按照不同坐标方向将所述主力方向数据、所述随机力数据、所述重力数据叠加至所述受力数据中,确定子节点数据的受力数据。
具体的,由于生长力数据包括主方向力数据、随机力数据、吸附力数据、重力数据,为了实现对节点数据进行受力驱动,从而基于一个节点得到攀爬的子节点,获取主力方向数据、随机力数据、重力数据以及吸附力数据,以便对节点数据中的受力数据进行受力驱动。其中,每个节点数据中的主方向力数据均可以预先配置为一个坐标单元大小的力,通过坐标方式表示为(0,1,0),在与主方向力数据相同的坐标系中,随机配置不同方向,相同坐标单位大小的多个力,作为随机力数据,由于随机力数据的方向是随机的,为了体现攀爬的凌乱程度,结合单位大小相同力的数值与预先配置的生长强度参数相乘,最后得到具体的随机力数据的坐标表达内容。重力数据为已配置的垂直向下的力,通过坐标方式标识为(0,-1,0)。吸附力数据作为限制攀爬对象在场景物表面进行攀爬的参数,基于遍历当前节点的位置与场景物的模型三角面投影点之间的距离差,得到最大距离MaxAdhesionDistance进行确定,然后通过坐标方式进行表达,本发明实施例不做具体限定。另外,由于节点数据中的受力数据表征攀爬的生长特征,即受力数据可以表示为在与主方向力数据相同的坐标系中,节点所处于的坐标位置,从而在此坐标位置上受到主力方向数据、随机力数据、重力数据、吸附力数据的驱动作用。本发明实施例中,通过主力方向数据、随机力数据、重力数据、吸附力数据对受力数据进行受力驱动可以直接将各个力按照不同力的方向进行叠加,从而自动完成攀爬的子节点的生成。具体的,由于受力数据可以表示为在与主方向力数据相同的坐标系中,节点所处于的坐标位置,因此,在进行叠加的过程中,需要解析受力数据的坐标内容,然后基于吸附力数据的限定范围内,将不同坐标方向的主力方向数据、随机力数据、重力数据叠加在坐标内容中,得到子节点数据的受力数据。
需要说明的是,生长强度参数用于表示攀爬过程中攀爬对象的密集程度、生长密度等状态,其中,生成强度参数可以与攀爬层级或攀爬悬停长度之间存在第一范围内的正比关系以及第二范围内的反比关系,或者可以在特定范围内随机选取,还可以通过设定与攀爬对象之间的位置具有正比或反比关系进行配置,从而体现攀爬对象的攀爬特征、凌乱程度等,本发明实施例不做具体限定。
例如,受力数据的坐标内容为(a,b,c),与主力方向数据为(0,1,0)、随机力数据(0.2,3,0.8)、重力数据(0,-1,0)进行叠加,得到子节点的受力数据为(a+0.2,b+3,c+0.8),同时判断(a+0.2,b+3,c+0.8)是否在吸附力数据(A+0.8,B+0.8,C+0.8)范围内,(A,B,C)节点投影至场景物的模型三角面上投影点的坐标,若在吸附力数据范围内,则子节点的受力数据为(a+0.2,b+3,c+0.8),若超出吸附力数据范围内,则不生成子节点数据,并更新节点数据中的节点状态为死亡状态,说明此节点无法继续攀爬。
在本发明实施例中,为了进一步限定及说明,如图6所示,所述节点数据包括节点状态、攀爬状态、受力数据,步骤102基于生长力数据对所述节点数据进行受力驱动之后,所述方法还包括:201、确定所述节点数据中的节点状态和/或攀爬状态;202、若所述节点状态为生长状态,和/或所述攀爬状态为攀爬状态,则判断基于受力驱动得到的受力数据是否匹配预设攀爬特征阈值;203、若匹配预设攀爬特征阈值,则将受力驱动得到的受力数据确定为所述子节点数据的受力数据。
为了实现攀爬对象在攀爬过程中的凌乱效果,并以程序化形式进行体现,在对受力数据进行驱动后,进一步判断是否可以继续生成攀爬对象的子节点数据。其中,所述节点状态用于表征所述节点数据生成子节点数据的状态,所述攀爬状态用于表征攀爬对象的节点是否处于攀爬过程,由于节点状态、攀爬状态均表征当前节点进行攀爬过程中的状态,因此,在每次对节点数据中的受力数据进行受力驱动后或者同时,需要确定所述节点数据中的节点状态和/或攀爬状态,若节点状态为生长状态,和/或攀爬状态为攀爬状态,则说明当前节点可以进行受力驱动得到子节点,从而判断得到的受力数据是否匹配预设攀爬特征阈值。具体的,由于攀爬状态基于攀爬长度值限定,节点状态基于攀爬层级或攀爬悬停长度限定,因此,预设攀爬特征阈值包括但不限于攀爬长度值的阈值长度、攀爬层级的最大层级或攀爬悬停长度的最大长度等,本发明实施例不做具体限定。若匹配预设攀爬特征阈值,说明受力驱动得到的子节点存在,则将受力驱动得到的受力数据确定为子节点数据的受力数据。
本发明实施例中,为了进一步说明及限定,如图6所示,与步骤203并列的步骤204、若基于受力驱动得到的受力数据不匹配所述预设攀爬特征阈值,则清除所述受力数据,并更新所述节点状态和/或所述攀爬状态。
为了实现攀爬对象程序化的逼真攀爬效果,若受力数据不匹配预设攀爬特征阈值,则说明无法基于节点进行受力驱动的得到子节点,即无法在当前节点处继续攀爬,因此,清除受力数据,并同时将节点数据中的节点状态更新为死亡状态,和/或将攀爬状态更新为无攀爬状态。
在本发明实施例中,为了进一步限定及说明,如图7所示,步骤103根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材之前,所述方法还包括:301、基于所述节点数据、所述子节点数据之间的连线,判断所述连线与所述场景物的模型数据是否相交;302、若相交,则获取所述子节点数据相对于所述模型数据的对称点数据,将所述对称点数据确定为所述节点数据的子节点数据。
为了实现攀爬对象依附场景物模型的外表面攀爬的逼真效果,从而避免程序化攀爬过程中因随机力影响使得子节点进入场景物模型中,提高程序化制造动画素材的准确性,通过判断生成的子节点是否与模型发生碰撞。具体的,通过节点数据与子节点数据进行连线,即为通过各自的节点位置进行连线,也可以为基于受力数据的坐标内容进行连线,进而判断连线与模型数据是否相交碰撞。其中,模型数据为多个三角面片组成,若相交说明连线与三角面片相交,子节点数据处于场景物模型中,此时无法实现逼真的攀爬效果,因此,获取子节点数据相对于模型数据的对称点数据,将此对称点数据确定为子节点数据。
需要说明的是,针对基于对称点数据确定的子节点数据可能任然处于模型中,因此,对所有的子节点数据均需要与节点数据进行连线验证,直到连线不再与模型数据相交,说明得到的子节点数据处于模型外部,因此,作为子节点数据的对称点数据与节点数据之间的连线与模型数据不相交。
在本发明实施例中,为了进一步限定及说明,步骤302获取所述子节点数据相对于所述模型数据的对称点数据包括:基于所述节点数据、所述子节点数据之间的连线确定所述模型数据的三角面片,并通过所述三角面片镜面映射所述子节点数据,得到所述子节点数据镜面对称的对称点数据。
为了提高子节点与节点之间连线与模型碰撞相交判断的准确性,从而实现程序化攀爬的实现,基于节点数据、子节点数据之间的连线确定模型数据的三角面片,从而基于三角面片进行镜面映射,得到对称点数据。具体的,子节点数据与节点数据之间连线与模型数据相交的交点处于的三角面片作为对称轴,如图8所示,P0为节点数据,P1为子节点数据,P3为交点,进行镜面映射即为由P1映射到P2,对子节点数据进行镜面对称映射,即按照垂直于三角面片确定三角面片的另一个侧的对称点,并对此对称点进行再次相交判断,直至对称点处于模型外侧。
需要说明的是,本发明实施例中,基于基于节点数据、子节点数据之间的连线确定模型数据的三角面片,以确定与模型是否相交,具体的判断公式可以为交点判定公式intersectionpoint=oldpos+(newpos-oldpos)*t0,其中,oldpos为P0节点位置,newpos为P1子节点位置,P0、P1于三角面片相交点为P3,t0=(P0与P3长度)/(P0与P1长度),P2为映射的对称点。
在本发明实施例中,为了进一步限定及说明,如图9所示,103根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材之后,所述方法还包括:401、连接所述节点数据与所述子节点数据生成所述攀爬对象的主体模型;402、确定所述主体模型的支点数据,并根据所述支点数据生成所述主体模型的附属模型;403、基于所述攀爬对象的主体模型、所述附属模型生成所述攀爬对象的动画。
为了进一步实现攀爬对象的程序化动画的生成,使游戏动画生成的效果更为逼真,将节点数据、子节点数据进行连接,生成攀爬对象的主体模型。其中,由于在生成子节点时,可以基于一个根节点逐层迭代得到各个层级的节点,每个节点作为上一层级的子节点,也可以作为下一层级的父节点,因此,连接至少一个节点与子节点,可以得到攀爬对象的主体模型。针对游戏引擎中的各个场景物或者附件物等游戏动画内容,可以通过数据模型进行构建,因此,可以基于节点数据与子节点数据进行连接,建立攀爬对象的主体模型,例如,若攀爬对象为藤蔓,主体模型为基于节点数据与子节点数据构建的枝干模型。针对依附场景物生长、覆盖、蔓延的动态或静态物构建主体模型后,基于主体模型确定目标支点,从而在目标支点处构建附属模型,实现逼真的攀爬效果。其中,附属模型为基于主体模型生长、或者延伸出的物模型,例如,若主体模型为藤蔓枝干模型,附属模型可以为叶子模型,若主体模型为技能闪电主干模型,附属模型可以为技能闪电支干模型,本发明实施例不做具体限定,对应的,目标支点即为主体模型上向不同方向延伸附属模型的位置点。
需要说明的是,目标支点在主体模型上可以为一个也可以为多个,同时,在一个目标支点处构建的附属模型可以为一个、也可以为多个,从而实现逼真的攀爬效果,本发明实施例不做具体限定。例如,在藤蔓枝干上的一个目标支点处,可以向相对的2个方向分别构建叶子模型,也可以向任意方向构建一个叶子模型或多个叶子模型。另外,由于主题模型为基于至少一个节点、以及与之对应的子节点构建的,因此,主题模型可以为一段藤蔓枝干的生长动画,也可以一根完整藤蔓枝条的生长动画,具体的,在渲染时,按照各个节点、子节点之间的生长关系。例如,节点位置、生长子节点时间作为攀爬的顺序进行渲染。当然的,在渲染过程中,可以设定主体模型与附属模型的渲染顺序,可以设定在主体模型全部渲染完成后,对各目标支点处的附属模型进行渲染,也可以在渲染主体模型的过程中,完成各个目标支点的渲染后,不比等待主体模型的全部渲染,直接在各个目标支点处渲染附属模型,从而实现不同攀爬效果的攀爬对象程序化制造。例如,藤蔓的攀爬动画可以在枝干攀爬的过程中同时渲染叶子,从而完成藤蔓自然生长的攀爬效果。又如,电流技能的攀爬动画可以在主电流攀爬完角色后,渲染各个小电流,完成技能的程序化攀爬效果。
本发明实施例提供了一种游戏动画素材的生成方法,与现有技术相比,本发明实施例通过获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材,大大减少了生成攀爬类动画素材的数据处理压力,满足不同游戏终端的使用需求,实现对动画素材的程序化生成,极大地满足了基于不同定制化动画素材的生成需求,从而提高游戏动画素材的生成效率。
进一步的,作为对上述图1所示方法的实现,本发明实施例提供了一种游戏动画素材的生成装置,如图10所示,该装置包括:
获取模块51,用于获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;
驱动模块52,用于基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;
生成模块53,用于根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材。
进一步地,所述生长力数据包括主方向力数据、随机力数据、吸附力数据、重力数据,所述驱动模块包括:
获取单元,用于获取主力方向数据、随机力数据、重力数据以及吸附力数据;
解析单元,用于解析所述节点数据中的受力数据,所述受力数据用于表征所述攀爬对象的生长特征;
叠加单元,用于在所述吸附力数据的范围内,按照不同坐标方向将所述主力方向数据、所述随机力数据、所述重力数据叠加至所述受力数据中,确定子节点数据的受力数据,以得到所述子节点数据。
进一步地,所述节点数据包括节点状态、攀爬状态、受力数据,所述装置还包括:
第一确定模块,用于确定所述节点数据中的节点状态和/或攀爬状态,所述节点状态用于表征所述节点数据生成子节点数据的状态,所述攀爬状态用于表征攀爬对象的节点是否处于攀爬过程;
判断模块,用于若所述节点状态为生长状态,和/或所述攀爬状态为攀爬状态,则判断基于受力驱动得到的受力数据是否匹配预设攀爬特征阈值;
第二确定模块,用于若匹配预设攀爬特征阈值,则将受力驱动得到的受力数据确定为所述子节点数据的受力数据。
进一步地,
所述判断模块,还用于基于所述节点数据、所述子节点数据之间的连线,判断所述连线与所述场景物的模型数据是否相交;
所述获取模块,还用于若相交,则获取所述子节点数据相对于所述模型数据的对称点数据,将所述对称点数据确定为所述节点数据的子节点数据,所述对称点数据与所述节点数据之间的连线与所述模型数据不相交。
进一步地,所述获取模块,具体用于基于所述节点数据、所述子节点数据之间的连线确定所述模型数据的三角面片,并通过所述三角面片镜面映射所述子节点数据,得到所述子节点数据镜面对称的对称点数据。
进一步地,所述装置还包括:
更新模块,用于若基于受力驱动得到的受力数据不匹配所述预设攀爬特征阈值,则清除所述受力数据,并更新所述节点状态和/或所述攀爬状态。
进一步地,所述装置还包括:连接模块,
所述连接模块,用于连接所述节点数据与所述子节点数据生成所述攀爬对象的主体模型;
所述生成模块,还用于确定所述主体模型的支点数据,并根据所述支点数据生成所述主体模型的附属模型;
生成模块,用于基于所述攀爬对象的主体模型、所述附属模型生成所述攀爬对象的动画。
本发明实施例提供了一种游戏动画素材的生成装置,与现有技术相比,本发明实施例通过获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材,大大减少了生成攀爬类动画素材的数据处理压力,满足不同游戏终端的使用需求,实现对动画素材的程序化生成,极大地满足了基于不同定制化动画素材的生成需求,从而提高游戏动画素材的生成效率。
根据本发明一个实施例提供了一种存储介质,所述存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的游戏动画素材的生成方法。
图11示出了根据本发明一个实施例提供的一种终端的结构示意图,本发明具体实施例并不对终端的具体实现做限定。
如图11所示,该终端可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器602,用于执行程序610,具体可以执行上述游戏动画素材的生成方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。终端包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:
获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;
基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;
根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别生成成各个集成电路模块,或者将它们中的多个模块或步骤生成成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (9)
1.一种游戏动画素材的生成方法,其特征在于,包括:
获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;
基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;
根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材;
其中,所述生长力数据包括主方向力数据、随机力数据、吸附力数据、重力数据,所述基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据包括:
获取主方向力数据、随机力数据、重力数据以及吸附力数据;
解析所述节点数据中的受力数据,所述受力数据用于表征所述攀爬对象的生长特征;
在所述吸附力数据的范围内,按照不同坐标方向将所述主方向力数据、所述随机力数据、所述重力数据叠加至所述受力数据中,确定子节点数据的受力数据,以得到所述子节点数据。
2.根据权利要求1所述的方法,其特征在于,所述节点数据包括节点状态、攀爬状态、受力数据,所述基于生长力数据对所述节点数据进行受力驱动之后,所述方法还包括:
确定所述节点数据中的节点状态和/或攀爬状态,所述节点状态用于表征所述节点数据生成子节点数据的状态,所述攀爬状态用于表征攀爬对象的节点是否处于攀爬过程;
若所述节点状态为生长状态,和/或所述攀爬状态为攀爬状态,则判断基于受力驱动得到的受力数据是否匹配预设攀爬特征阈值;
若匹配预设攀爬特征阈值,则将受力驱动得到的受力数据确定为所述子节点数据的受力数据。
3.根据权利要求2所述的方法,其特征在于,所述判断基于受力驱动得到的受力数据是否匹配预设攀爬特征阈值之后,所述方法还包括:
若基于受力驱动得到的受力数据不匹配所述预设攀爬特征阈值,则清除所述受力数据,并更新所述节点状态和/或所述攀爬状态。
4.根据权利要求1所述的方法,其特征在于,所述根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材之前,所述方法还包括:
基于所述节点数据、所述子节点数据之间的连线,判断所述连线与所述场景物的模型数据是否相交;
若相交,则获取所述子节点数据相对于所述模型数据的对称点数据,将所述对称点数据确定为所述节点数据的子节点数据,所述对称点数据与所述节点数据之间的连线与所述模型数据不相交。
5.根据权利要求4所述的方法,其特征在于,所述获取所述子节点数据相对于所述模型数据的对称点数据包括:
基于所述节点数据、所述子节点数据之间的连线确定所述模型数据的三角面片,并通过所述三角面片镜面映射所述子节点数据,得到所述子节点数据镜面对称的对称点数据。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材之后,所述方法还包括:
连接所述节点数据与所述子节点数据生成所述攀爬对象的主体模型;
确定所述主体模型的支点数据,并根据所述支点数据生成所述主体模型的附属模型;
基于所述攀爬对象的主体模型、所述附属模型生成所述攀爬对象的动画。
7.一种游戏动画素材的生成装置,其特征在于,包括:
获取模块,用于获取攀爬对象的节点数据,所述节点数据用于表征所述攀爬对象在游戏场景中依附场景物攀爬的状态;
驱动模块,用于基于生长力数据对所述节点数据进行受力驱动,得到所述攀爬对象的子节点数据,所述生长力数据用于表征驱动所述节点数据按照不同受力大小向、不同受力方向进行攀爬的数据;
生成模块,用于根据所述节点数据、所述子节点数据生成所述攀爬对象的动画素材;
其中,所述生长力数据包括主方向力数据、随机力数据、吸附力数据、重力数据,所述驱动模块包括:
获取单元,用于获取主方向力数据、随机力数据、重力数据以及吸附力数据;
解析单元,用于解析所述节点数据中的受力数据,所述受力数据用于表征所述攀爬对象的生长特征;
叠加单元,用于在所述吸附力数据的范围内,按照不同坐标方向将所述主方向力数据、所述随机力数据、所述重力数据叠加至所述受力数据中,确定子节点数据的受力数据,以得到所述子节点数据。
8.一种存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-6中任一项所述的游戏动画素材的生成方法对应的操作。
9.一种终端,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-6中任一项所述的游戏动画素材的生成方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110727445.XA CN113470146B (zh) | 2021-06-29 | 2021-06-29 | 游戏动画素材的生成方法及装置、存储介质、终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110727445.XA CN113470146B (zh) | 2021-06-29 | 2021-06-29 | 游戏动画素材的生成方法及装置、存储介质、终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113470146A CN113470146A (zh) | 2021-10-01 |
CN113470146B true CN113470146B (zh) | 2022-05-31 |
Family
ID=77873722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110727445.XA Active CN113470146B (zh) | 2021-06-29 | 2021-06-29 | 游戏动画素材的生成方法及装置、存储介质、终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113470146B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463934A (zh) * | 2014-11-05 | 2015-03-25 | 南京师范大学 | 一种“质点-弹簧”系统驱动的点集模型动画自动生成方法 |
CN104574472A (zh) * | 2014-12-31 | 2015-04-29 | 北京大学 | 基于嵌入网格的固体碎裂模拟和动画方法 |
CN104794742A (zh) * | 2015-05-08 | 2015-07-22 | 中国科学院软件研究所 | 一种基于有限元方法的气球膨胀动画模拟方法 |
CN106447771A (zh) * | 2016-10-18 | 2017-02-22 | 中国科学院深圳先进技术研究院 | 花朵开放过程的重建方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8442806B2 (en) * | 2010-03-03 | 2013-05-14 | Immersion Medical, Inc. | Systems and methods for simulations utilizing a virtual coupling |
-
2021
- 2021-06-29 CN CN202110727445.XA patent/CN113470146B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104463934A (zh) * | 2014-11-05 | 2015-03-25 | 南京师范大学 | 一种“质点-弹簧”系统驱动的点集模型动画自动生成方法 |
CN104574472A (zh) * | 2014-12-31 | 2015-04-29 | 北京大学 | 基于嵌入网格的固体碎裂模拟和动画方法 |
CN104794742A (zh) * | 2015-05-08 | 2015-07-22 | 中国科学院软件研究所 | 一种基于有限元方法的气球膨胀动画模拟方法 |
CN106447771A (zh) * | 2016-10-18 | 2017-02-22 | 中国科学院深圳先进技术研究院 | 花朵开放过程的重建方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113470146A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106296778B (zh) | 虚拟对象运动控制方法与装置 | |
CN110124318B (zh) | 虚拟植被制作的方法及装置、电子设备、存储介质 | |
CN108837510B (zh) | 信息的展示方法和装置、存储介质、电子装置 | |
CN109035153B (zh) | 一种点云数据的修正方法及装置 | |
CN111583367B (zh) | 一种头发模拟方法及系统 | |
CN108043027B (zh) | 存储介质、电子装置、游戏画面的显示方法和装置 | |
CN107798726A (zh) | 三维漫画的制作方法和装置 | |
CN107019913A (zh) | 对象生成方法及装置 | |
CN109859562A (zh) | 数据生成方法、装置、服务器及存储介质 | |
CN111714880A (zh) | 画面的显示方法和装置、存储介质、电子装置 | |
USH2253H1 (en) | Multiple personality articulation for animated characters | |
JP4842242B2 (ja) | キャラクタアニメーション時の皮膚のしわのリアルタイム表現方法及び装置 | |
CN111773719A (zh) | 虚拟对象的渲染方法和装置、存储介质、电子装置 | |
CN113457136B (zh) | 游戏动画的生成方法及装置、存储介质、终端 | |
CN108379841A (zh) | 游戏特效的处理方法、装置和终端 | |
CN113470146B (zh) | 游戏动画素材的生成方法及装置、存储介质、终端 | |
CN115115752A (zh) | 虚拟服装的形变预测方法和装置、存储介质及电子设备 | |
CN110368693B (zh) | 一种基于多四叉树的mmo游戏元素裁减方法及其装置 | |
CN112402981A (zh) | 游戏场景的控制方法和装置、存储介质和电子设备 | |
CN112348931A (zh) | 脚部反向运动控制方法、装置、设备及存储介质 | |
CN112473135B (zh) | 移动游戏的实时光照模拟方法、装置、设备及存储介质 | |
CN114307158A (zh) | 三维虚拟场景数据的生成方法及装置、存储介质、终端 | |
CN109213195A (zh) | 一种基于Unity3d的无人机仿真飞行控制方法 | |
CN115518374A (zh) | 虚拟场景中的植被生成方法、装置和电子设备 | |
CN115908650A (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 |