CN107875633B - 改善模拟中的模型的运动动画的计算机实现方法及系统 - Google Patents

改善模拟中的模型的运动动画的计算机实现方法及系统 Download PDF

Info

Publication number
CN107875633B
CN107875633B CN201710316991.8A CN201710316991A CN107875633B CN 107875633 B CN107875633 B CN 107875633B CN 201710316991 A CN201710316991 A CN 201710316991A CN 107875633 B CN107875633 B CN 107875633B
Authority
CN
China
Prior art keywords
model
location
input
modifier
determining
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
CN201710316991.8A
Other languages
English (en)
Other versions
CN107875633A (zh
Inventor
托比亚斯·达尔
安德鲁·R·科涅奇内
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.)
Electronic Arts Inc
Original Assignee
Electronic Arts Inc
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 Electronic Arts Inc filed Critical Electronic Arts Inc
Publication of CN107875633A publication Critical patent/CN107875633A/zh
Application granted granted Critical
Publication of CN107875633B publication Critical patent/CN107875633B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/56Computing the motion of game characters with respect to other game characters, game objects or elements of the game scene, e.g. for simulating the behaviour of a group of virtual soldiers or for path finding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/64Methods for processing data by generating or executing the game program for computing dynamical parameters of game objects, e.g. motion determination or computation of frictional forces for a virtual car
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics

Landscapes

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

Abstract

本发明提供了一种用于改善模拟中的模型的运动动画的计算机实现方法。一方面,方法包括接收用于模型的运动输入,模型包括具有各自的当前位置的互连节点。基于运动输入和当前位置来确定用于每个节点的更新位置。基于在当前位置和更新位置之间引入误差的控制回路的参数来确定用于每个节点的修改位置。基于修改位置来给出模型。还提供了系统和机器可读介质。

Description

改善模拟中的模型的运动动画的计算机实现方法及系统
技术领域
本公开一般涉及用于在现实世界事件的模拟中的模型的动画的计算机架构,并且更具体地,涉及用于模型的运动动画的计算机架构。本公开描述了在不需要大量额外处理或硬件的情况下产生运动动画的改进的资源利用。
背景技术
诸如竞技视频游戏的视频游戏提供了日益增长的现实游戏体验。虽然视频游戏引擎可以在模拟中重现对象和人物角色,但对象和人物角色可能被动画化为不真实地运动。对象和人物角色可能像没有适用现实世界的物理效果般运动。
在背景部分中提供的描述不应该仅仅因为其在背景部分中提到或与背景部分有关联而假设其为现有技术。背景部分可包括描述主题技术的一个或多个方面的信息。
发明内容
所公开的系统使用控制回路中的参数以引入运动中的误差来提供用于将模拟中的模型动画化。参数可应用于计算用于模型的每个节点的更新位置。
根据本公开的某些方面,提供了一种用于改善模拟中的模型的运动动画的计算机实现方法。该方法包括接收用于模型的运动输入。该模型包括具有各自的当前位置的多个互连节点。该方法包括基于运动输入和当前位置来确定用于多个节点中每一个的更新位置。该方法包括基于被配置为在当前位置和更新位置之间引入误差的控制回路的至少一个参数来确定用于多个节点中每一个的修改位置。该方法包括基于修改位置给出模型。
根据本公开的某些方面,提供了一种用于改善模拟中的模型的运动动画的系统。该系统包括包含指令的存储器,以及配置为执行指令的处理器。处理器配置为执行指令以接收用于模型的运动输入。该模型包括具有各自的当前位置的多个互连节点。处理器配置为执行指令以基于运动输入和当前位置来确定用于多个节点中每一个的更新位置。处理器配置为基于比例-积分-微分(PID)控制器的至少一个参数来执行指令以确定用于多个节点中每一个的修改位置。PID控制器配置为在当前位置和更新位置之间引入误差。处理器配置为基于修改位置来执行指令以给出模型。
根据本公开的某些方面,提供了一种非暂时性机器可读存储介质,其包括用于导致处理器执行用于改善模拟中的模型的运动动画的方法的机器可读指令。该方法包括接收用于模型的运动输入。该模型包括具有各自的当前位置的多个互连节点。该方法包括基于运动输入和当前位置来确定用于多个节点中每一个的更新位置。该方法包括至少基于比例-积分-微分(PID)控制器的比例修改器、积分修改器、以及输入修改器来确定用于多个节点中每一个的修改位置。PID控制器配置为在当前位置和更新位置之间引入误差。比例修改器对应于当前偏差,积分修改器对应于过去偏差的积累,以及输入修改器对应于未来偏差的预测。该方法包括基于修改位置来给出模型。
根据本发明的某些方面,用于改善模拟中的模型的运动动画的系统包括用于接收用于模型的运动输入的装置。该模型包括具有各自的当前位置的多个互连节点。该系统还包括用于基于运动输入和当前位置来确定多个节点中的每一个的更新位置的装置。用于确定的装置还配置用于至少基于比例-积分-微分(PID)控制器的比例修改器、积分修改器、以及输入修改器来确定用于多个节点中每一个的修改位置。PID控制器配置为在当前位置和更新位置之间引入误差。比例修改器对应于当前偏差,积分修改器对应于过去偏差的累积,以及输入修改器对应于未来偏差的预测。用于确定的装置还配置用于基于修改位置来给出模型。
可以理解的是,通过下面的详细说明,主题技术的其他配置将对于本领域的技术人员是显而易见的,其中,以例示的方式示出并描述了主题技术的多种配置。将要认识到的是,主题技术能够有其他或不同的配置,并且其多种细节能够有多种其他方面的修改,所有这些均不脱离主题技术的范围。因此,附图和详细说明从本质上来说是阐述性的,并不是限制性的。
附图说明
附图(被包括来提供进一步的理解并结合在本说明书中且组成说明书的一部分)示出了公开的实施例,并与描述一起用于说明公开的实施例的原理。在附图中:
图1是示出了用于改善模拟中的模型的运动动画的示例架构。
图2是示出了来自根据本公开的某些方面的图1架构的示例装置和服务器的框图。
图3是示出了使用图2的示例装置/服务器来用于模拟中的模型的改善的运动动画的示例过程。
图4是根据本公开的某些方面的PID误差的示例图表。
图5A是在没有应用PID误差的情况下的动画的帧的示例示图。
图5B是在应用了PID误差情况下的图5A的动画的帧的示例示图。
图6是示出了可以实现图2的装置和服务器的情况下的示例计算机系统的框图。
在一个或更多实现中,并不是在每个附图中描绘的所有部件都是需要的,并且一个或更多实现中可以包括未在附图中示出的附加部件。在不脱离主题公开的范围的情况下可进行布置和部件类型的变形。可在主题公开的范围内使用附加的部件、不同的部件、或是更少的部件。
具体实施方式
下面提出的详细说明旨在作为多种实现的说明,且并不旨在表示主题技术可实践的唯一实现。如果本领域的技术人员将会意识到的,所描述的实现可在全部不脱离本公开的范围的情况下进行多种不同方式的修改。因此,附图和说明本质上是阐述性的,并不是限制性的。
总体概述
公开的系统提供了用于改进模拟中的模型的运动动画。例如,通过使用PID控制器以将与由现实世界的物理效果所表现出的重叠相对应的误差引入到运动动画,运动动画可模拟现实世界的运动。
公开的系统致力于与计算机技术相关并在计算机网络领域中产生的技术问题,即模拟中的模型的有效和准确的运动动画的技术问题。公开的系统通过在运动中引入误差的技术解决方案解决了这个技术问题。误差可对应于重叠,例如过冲(overshooting)和/或下冲(undershooting)所期望的运动。可通过附加的处理(诸如实现具有鲁棒性的物理引擎)来将运动动画做得更准确。然而,附加的处理可能需要附加的资源,诸如用于完成处理的附加时间、用于运行具有鲁棒性的物理引擎的附加存储器、或是无需附加时间能够进行此处理的硬件之类,其会影响用户对模拟的使用和模拟的可用性。公开的系统使用了诸如PID控制器的控制回路,以改善模拟结果、以产生模拟在现实世界运动中所表现出的重叠的运动动画、以及需要比实现具有鲁棒性的物理引擎更少的处理。
虽然这里提供了在视频游戏的背景下的多种示例,但本公开的原理也适用于其他类型的模拟。例如,军事模拟、医学模拟、应急响应模拟、编舞模拟、电影模拟、以及涉及模拟现实运动的运动对象或人的其他模拟在本公开的范围内均被考虑。
示例系统架构
图1是示出了通过使用现实世界的数据以预备发起(seed)模拟来改善竞技事件的模拟的示例架构100。架构100包括通过网络150连接的一个或多个服务器130和装置110。
多个服务器130中的一个配置为掌管应用数据,诸如用于模拟或视频游戏的应用数据。为了负载平衡,多个服务器130可以掌管应用数据。服务器130还可配置为掌管用于多个装置110的模拟。例如,服务器130可掌管用于多个装置110进行连接的多玩家模拟,使得多个装置110几乎同时体验相同的模拟。
装置110包括一个或多个计算装置。装置110可包括能够运行模拟引擎的装置,诸如:用于模拟竞技事件的竞技游戏、第一人称射击(FPS)游戏、第一人称视频游戏、驾驶模拟器游戏、开放世界(或自由漫游或沙盒)游戏、或让对象根据模拟的现实世界的物理效果来运动的任一其他类型的模拟或游戏。例如,装置110可包括固定的视频游戏控制台、平板、移动装置、笔记本计算机、台式计算机、和/或能够运行竞技游戏的其他装置。
公开的系统使用应用数据以使模拟与整个装置110协调。服务器130将部分应用数据发送到一个或多个装置110,装置110使用应用数据以运行模拟的相似实例。因此,例如,公开的系统可以在整个装置110中产生一致的模拟。
此外,根据本公开的某些方面,例如在装置110之一中或是在两个或更多装置110之间可在本地掌管模拟,使得可在各装置110之间共享应用数据而不是由服务器130产生共享应用数据。
服务器130可以是具有合适的处理器、存储器、以及通信能力的用于掌管现实世界数据的任何装置。通过网络150与服务器130连接的装置110可以是,例如:台式计算机、移动计算机、平板计算机(例如,包括电子书阅读器)、移动装置(例如,智能电话或PDA)、机顶盒(例如,用于电视)、视频游戏控制台、或具有合适的处理器、存储器、以及通信能力的任何其他装置。网络150可包括,例如:个人区域网(PAN)、局域网(LAN)、校园区域网(CAN)、城域网(MAN)、广域网(WAN)、宽带网(BBN)、互联网等中的任何一个或多个。此外,网络150可包括但不限于下面的网络拓扑中的任何一个或多个,包括:总线网络、星形网络、环形网络、网状网络、星型-总线网络、树形或分级网络等。
用于竞技事件的模拟的示例系统
图2是示出了根据本公开的某些方面的在图1的架构100中的示例服务器130和装置110的框图200。
装置110和服务器130经由各自的通信模块218和238通过网络150相连。通信模块218和238配置为与网络150连接以发送并接收信息,诸如到网络上其他装置的数据、请求、响应、以及命令。例如,通信模块218和238可以是调制解调器或以太网卡。
服务器130包括处理器236、通信模块238、以及包括应用数据252的存储器232。应用数据252对应于用于掌管模拟的数据,诸如多玩家视频游戏。应用数据252可包括用于产生模拟的数据,诸如环境(例如,地图)、质地、环境变量和参数的模型,以及其他用于产生模拟的数据。虽然本公开将模拟描述为多玩家视频游戏,但在其他实现中,模拟可允许旁观者在没有模拟中的对象或人物角色的情况下观看模拟。
服务器130的处理器236配置为执行指令,诸如被物理编码到处理器236中的指令、从存储器232中的软件接收的指令、或两者的结合。例如,服务器130的处理器236执行指令以将应用数据252的至少一部分发送到一个或多个装置110。应用数据252包括模型数据254,模型数据254包括节点数据256。
模型数据254包括用于限定模拟中每个对象的模型的数据,其可包括人物角色、车辆、以及其他玩家可控制的对象。节点数据256包括关于诸如“骨头”(在这里用于描述在节点处连接的模型的固体部分)之间的节点(对应于旋转或平移点)的数据。节点数据256包括位置数据(限定了每个节点的关于模拟环境的位置、哪些骨头连接到该节点),还可包括附加的参数(诸如与节点关联的旋转或平移的类型,以及诸如最大角度或最小角度或其他阈值角度之类的任何限制)。
模型数据254可基于在模拟中使用的动画技术。例如,骨架动画技术使用具有表面表示(例如,皮肤或网格)的互连骨头(例如,骨架或装备(rig))的层级集合。每个骨头具有三维的变换,包括位置、比例、以及定向。每个骨头的变换包括在层级中的任何上级骨头的变换。例如,使臂骨运动也将使作为臂骨的下级的手骨运动。例如通过应用基于与骨头相关联的各顶点的多边形网络来将每个骨头蒙皮以完成模型的视觉表示。虽然模型数据254是针对骨架动画进行描述的,但也可使用其他动画技术和对应的模型数据,并且这里描述的控制回路变换可因此应用于模型数据。
虽然图2描述了服务器130的存储器232中的应用数据252、模型数据254、以及节点数据256,但在其他实现中,装置110的存储器220可包括应用数据252、模型数据254、以及节点数据256、或是它们的本地副本。
对于动画的每一帧,对应于模型数据254的模型具有游戏状态,该游戏状态可以针对每个节点和/或骨头包括俯仰、翻滚、偏航、定向运动、左或右等。该游戏状态可结合用户运动输入或其他运动输入,诸如响应于环境或其他运动对象的对象运动。基于游戏状态,针对每个节点和/或骨头来计算节点变换。可以例如基于关于节点和/或骨头的限制、环境限制或约束、环境影响等来进一步修改节点变换。基于节点变换,重新定位节点和/或骨头以给出下一帧。
根据本公开的某些方面,实现了一个或多个PID控制器。对于每一帧,每个输入游戏状态可具有对应的PID控制器。每个PID控制器取得每个输入游戏状态并引入PID误差以产生对应的输出游戏状态。使用PID误差来修改节点变换,并随后逐状态地修改节点变换。基于修改的节点变换,重新定位了节点和/或骨头以给出下一帧。
装置110包括处理器212、通信模块218、以及包括应用222的存储器220。应用222可以是模拟引擎,或能够模拟运动对象的软件,比如视频游戏。装置110还包括输入装置216(诸如键盘、鼠标、触摸屏和/或游戏控制器)、以及输出装置214(诸如显示屏)。装置110的处理器212配置为执行指令,诸如被物理编码到处理器212中的指令、从存储器220中的软件接收的指令、或两者的结合。装置110的处理器212执行来自应用222的指令,使得处理器212接收对应于应用222的用于模拟中的模型的运动输入。模型包括具有当前位置的互连节点。接收到的运动输入可对应于来自输入装置216的用户输入,或可对应于基于与模拟中的另一模型的联系的运动。执行指令还使得处理器212基于运动输入和当前位置来确定每个节点的更新位置。执行指令还使得处理器212基于被配置为在当前位置和更新位置之间引入误差的控制回路的至少一个参数来确定每个节点的修改位置。控制回路可对应于PID控制器。所述至少一个参数可包括对应于当前偏差的比例修改器、对应于过去偏差的积累的积分修改器、对应于未来偏差的预测的输入修改器、以及对应于阈值节点运动的阈值角度。执行指令还使得处理器212基于修改的位置来给出模型。
执行指令还使得处理器212使用比例修改器、积分修改器、以及输入修改器来修改节点变换。当修改超过阈值角度时,根据阈值角度可设定节点变换。执行指令还使得处理器212执行确定更新位置、确定修改位置、以及给出用于运动动画的每一帧的模型。执行指令还使得处理器212在节点变换接近阈值角度时在更新位置和对应于阈值角度的位置之间插值。
执行用于接收玩家位置数据的指令还可使得处理器212基于模型与虚拟摄像机的距离来确定节点的修改位置。例如,模型可超出与模拟摄像机的阈值距离。由PID控制器引入的误差不会明显地影响超出阈值距离的模型的给出,并因此会减少或失效。也就是说,模型可距离虚拟摄像机足够远,使得运动动画可无需PID控制器修改。通过使超出阈值距离的PID控制器修改失效可以减少处理。
这里描述的技术可实现为:由(多个)物理计算装置执行的(多种)方法;一个或多个存储指令的非暂时性计算机可读存储介质,当所述指令由(多个)计算装置执行时,引起所述(多种)方法的执行;或者专门以引起所述(多种)方法的执行的硬件和软件的结合来配置的(多个)物理计算装置。
图3示出了使用图2的示例装置110的用于改善模拟中的模型的运动动画的示例过程300。虽然参考图2来描述图3,但需要注意的是图3的过程步骤可由其他系统来执行。此外,过程300不限于图3中所示的步骤的特定顺序。
例如,当装置110接收到用于模型的运动输入时,过程300由进行到步骤301开始。模型对应于模型数据254。模型包括具有当前位置的互连节点,互连节点对应于节点数据256。当前位置可对应于当前姿势或模型的动画帧。可以从输入装置216接收运动输入。作为替代,运动输入可对应于与模拟中的另一个模型的联系。例如,另一个模型可根据用户输入或环境中另一个运动对象而运动,从而导致了与该模型的联系,也导致了该模型运动。
图4示出了根据本公开的某些方面的PID误差的示例图表400。图表400包括起始值410、停止值420、输入430、模型曲线440、阻尼(drag)误差450、积分误差460、以及比例误差470。起始值410对应于步骤301中节点的当前位置。输入430对应于步骤301中的运动输入。模型曲线440示出了随着时间的节点角度值,例如动画的每一帧。输入430可对应于用于运动模拟(其可以是第一人称视频游戏)的虚拟摄像机的用户输入,并且模型曲线440可对应于第一人称视频游戏(其可通过虚拟摄像机观看)的武器的模型。更具体地,虚拟摄像机可对应于用户的第一人称视野,并且可在该视野中观看武器。然而,在其他实现中,输入430可对应于另一个运动输入,并且模型曲线440可对应于模拟中的另一个模型。运动输入可对应于任一种可获得或导致模型运动的输入。例如,输入430可对应于施加到模型上的力,模型曲线440可对应于模型的部件,诸如身体部分、肢臂、或其他对象部件。此外,虽然图4描述了与诸如使用角度值的俯仰、翻滚、偏航之类的游戏状态对应的角度值,但在其他实现中,可以使用诸如距离之类的其他度量。
返回到图3,在步骤302中,装置110基于运动输入和当前位置来确定节点的更新位置。在图4中,基于起始值410和输入430来确定停止值420。停止值420对应于更新位置,也对应于由运动输入表明的目的地。
目的地可对应于基于输入430的幅度和方向的相对于当前位置的新位置。作为替代,目的地可对应于用于模型的特定姿势,例如作为对应于运动输入的动画序列的一部分。该姿势可包括节点位置。动画序列可包括动画序列的每个时间片段的姿势。
在步骤303中,装置110基于配置为在当前和更新位置之间引入误差的控制回路的至少一个参数来确定节点的修改位置。例如,PID控制器可配置为在当前位置和更新位置之间引入误差。PID控制器的参数可包括比例修改器、积分修改器、输入修改器、以及阈值角度中的一个或多个。比例修改器对应于相对于更新位置的当前偏差。积分修改器对应于过去偏差的累积。输入修改器对应于未来偏差的预测。阈值角度对应于阈值节点运动,诸如节点可运动的最小角度或最大角度。任一超过阈值角度的节点变换可以替换地设置为阈值角度,而不是合并PID误差。此外,如果节点变换接近阈值角度,例如如果节点变换在相对于阈值角度的阈值偏移范围内,则节点变换可以替换地在当前位置和更新位置之间插值,而不是合并PID误差。
在图4中,起始值410可对应于用户的第一人称视野。武器通常停留在视野的中心(例如当用户的玩家静止不动或不运动时)以允许用户瞄准。当用户输入输入430以使武器运动来重新瞄准时,武器可精确地跟随输入430至停止值420。虽然这种运动使武器在用于重新瞄准的动画中始终保持中心位置,但是这种鱼洞看起来并不符合现实。例如,由于现实世界的对象在运动和停止时具有质量并表现出惯性,所以现实世界的武器将不会精确地跟随输入430至停止值420。
在不需附加的计算来估计用于具有模拟质量的模型的实际惯性的情况下,PID控制器将PID误差引入到运动以模拟惯性的影响。如图4所示,PID控制器添加阻尼误差(dragerror)450、积分误差(integral error)460、以及比例误差(proportional error)470,使得模型曲线440不会精确的跟随输入430变化。PID控制器添加来自于阻尼误差450的滞后行为,使得模型滞后于输入430。PID控制器还添加来自于积分误差460和比例误差470的重叠行为,使得模型在停止在停止值420之前多次过冲和下冲停止值420。
比例修改器可调节与运动的抗扰性对应的比例误差470。抗扰性对应于模型在安定在停止值420之前有多少振荡。积分修改器可调节与过冲的幅度对应的积分误差460。输入修改器可调节与滞后于输入430的幅度对应的阻尼误差450。
对于已给出的模型,可存在用于模型的每一个节点的PID控制器,使得每个节点至少有一个PID计算。因此,对于模拟中的每个模型可以存在同时运行的多个PID控制器。
在步骤304中,装置110基于修改位置来给出模型。装置110在输出装置214上显示给出的模型。图5A示出了没有PID误差的动画帧500A,并且图5B示出了有PID误差的动画帧500B。帧500A和帧500B可对应于动画的同一帧,例如其中持有武器模型510的人物角色模型520在跳跃动作后刚刚降落在地面上的帧。
在图5A中,武器模型510是水平的。然而,当人物在跳跃后着陆时持有具有质量的武器的人物通常不能保持武器水平。在图5B中,武器模型510不是水平的,反而由于PID误差的引入而向下倾斜。例如,积分修改器引入了过冲使得武器模型510向下倾斜。积分修改器和输入修改器也可影响图5B中武器模型510的最终倾斜角度。此外,武器模型510的倾斜角度也影响人物角色模型520。例如,基于武器模型510的倾斜相应地修改了人物角色模型520的手和臂。PID误差对惯性进行模拟,使得针对武器模型510和人物角色模型520给出更多现实的姿势。
在另一个示例中,模型数据254可对应于车辆模型以及驾驶车辆模型的人物角色模型。车辆模型可在地形上行驶。可引入PID误差以改变车辆模型响应地形的方式。例如,如果地形是颠簸的,则可施加PID误差以模拟车辆模型的悬浮状态,使得车辆模型的车身可独立于车辆模型的轮胎而振荡。车辆模型的各部分可在不同速度上倾斜。例如,当车辆模型停止时,车辆模型的车身会向前倾斜并在稳定停止前振荡。此外,基于车辆模型的运动,人物角色模型也可运动。例如,如果车辆模型的车身在振荡,则人物角色模型也将随着车身一起振荡,并且还有诸如四肢的人物角色模型的部分也将基于引入到四肢的附加PID误差来运动。
步骤301至步骤304可在动画的每一帧中重复。也就是说,运动输入可对应于动画序列。对于动画序列的每一帧,评估当前姿势(步骤301),更新姿势(步骤302),添加PID控制器输入并将变换施加至姿势(步骤303)并基于变换针对该帧给出模型(步骤304)。
由于PID误差可作为用于动画呈现的后处理来引入,所以PID误差还可基于性能或用户考虑来调整。例如,在某些情况下,为了减少处理可不施加PID误差。可基于视线来调整PID误差。PID误差可不施加至超出用户视野之外的模型。在多玩家模拟中,其中服务器130管理模拟并且装置110基于服务器130来重建模拟的本地实例,装置110可在对应的视野中局部地将PID误差施加至模型。在点对点模拟中,每个对等装置110可将PID误差施加至相同的模型。
如果模型超出了摄像机的阈值距离,则PID误差可随着距离的增加而减少,并且可在超出摄像机的第二阈值距离后失效。在其他情况下,诸如当整个装置110需要精确和一致的碰撞检测时,PID误差也可失效。此外,如果达到了视野中模型的阈值数量、达到了节点的阈值数量(其可对应于模型的阈值数量)、或者达到了PID控制器(或其他控制回路)的阈值数量,则附加的PID控制器可以失效。
在某些其他情况下,诸如当用户需要敏感或精确的输入时,PID误差可以失效。例如,基于特定用户输入(包括用户在第一人称视频游戏中是否正在发射武器),可以立即使基于PID误差的动画失效。
硬件概述
图6是示出了使用图1和图2的装置110和服务器130可实现的示例计算机系统600的框图。在某些方面,可使用硬件或软件和硬件的组合在专用服务器中、或是集成在另一个实体中、或是分布在多个实体上实现计算机系统600。
计算机系统600(例如,装置110和服务器130)包括总线608或其他用于传达信息的通信机制、以及用于处理信息的与总线608耦接的处理器602(例如,处理器212和处理器236)。根据一个方面,计算机系统600实现为一个或多个专用型计算装置。专用型计算装置可以是硬连线的以执行公开的技术,或可包括诸如被永久编程以执行所述技术的一个或多个专用集成电路(ASIC)或现场可编程门阵列(FPGA)之类的数字电子装置,或可包括编程为依据固件、存储器、其他存储装置、或者组合中的程序指令来执行所述技术的一个或多个通用硬件处理器。这种专用型计算装置也可将定制的硬连线的逻辑、ASIC、或FPGA与定制程序设计相结合以完成该技术。专用型计算装置可以是台式计算机系统、便携式计算机系统、手持装置、网络装置或结合了硬连线的和/或编程逻辑以实现所述技术的任何其他装置。例如,计算机系统600可使用一个或多个处理器602来实现。处理器602可以是通用的微处理器、微控制器、数字信号处理器(DSP)、ASIC、FPGA、可编程逻辑器件(PLD)、控制器、状态机、门逻辑、分立硬件组件、或可执行计算或其他信息操作的任何其他合适的实体。
除硬件外,计算机系统600可包括为所讨论的计算机程序创建执行环境的代码,例如组成处理器固件、协议栈、数据库管理系统、操作系统、或存储在内嵌存储器604(如,存储器232或存储器220)中的它们中的一个或多个的结合的代码,存储器604比如是与总线608耦接以用于存储将要由处理器602执行的信息和指令的随机存取存储器(RAM)、闪速存储器、只读存储器(ROM)、可编程只读存储器(PROM)、可擦除PROM(EPROM)、寄存器、硬盘、可移动磁盘、CD-ROM、DVD、或任何其他合适的存储装置。处理器602和存储器604可由专用型逻辑电路补充或者结合于其中。还可提供扩展存储器,其通过可包括例如SIMM(单列直插式存储器模块)卡接口的输入/输出模型610与计算机系统600相连。这种扩展存储器可为计算机系统600提供额外的存储空间,或也可为计算机系统600存储应用或其他信息。特别地,扩展存储器可包括指令以执行或补充上述过程,并且也可包括安全信息。因此,例如可以提供扩展存储器作为用于计算机系统600的安全模块,并可使用指令来对其编程以允许安全使用计算机系统600。此外,可经由SIMM卡连同附加信息一起提供安全应用,诸如以不可入侵的方式将识别信息放置在SIMM卡上。
指令可存储在存储器604中并在一个或多个计算机编程产品中实现,即,编码在计算机可读介质上的计算机编程指令的一个或多个模块由计算机系统600来执行或控制计算机系统600的操作,并根据本领域技术人员熟知的方法,指令包括但不限于诸如面向数据的语言(如SQL、dBase)、系统语言(如C、Objective-C、C++、汇编)、结构语言(如Java、.NET)、以及应用语言(如:PHP、Ruby、Perl、Python)之类的计算机语言。指令也可由以下的计算机语言来实现,诸如:阵列语言、面向方向语言、汇编语言、编辑语言、命令行接口语言、编译语言、并发语言、大括号语言、数据流语言、数据结构语言、描述性语言、深奥语言、扩展语言、第四代语言、函数式语言、交互模式语言、解释型语言、迭代语言、基于列表的语言、小语言、基于逻辑的语言、机器语言、宏语言、元编程语言、多范型语言、数值分析、非基于英语的语言、基于类的面向对象的语言、基于原型的面向对象的语言、越位规则语言、过程语言、反射型语言、基于规则的语言、脚本语言、基于堆栈的语言、同步语言、语法处理语言、视觉语言、沃斯语言、可嵌入式语言、以及基于xml语言。在要由处理器602执行的指令的执行期间,存储器604也可用于存储临时变量或其他中间信息。
这里所述的计算机程序不必对应于文件系统中的文件。程序可存储在持有其他程序或数据的文件的一部分中(如,存储在标记语言文件中的一个或多个脚本)、存储在专用于所讨论的程序的单个文件中、或存储在多个协同文件中(如,存储一个或多个模块、子程序、或部分代码的文件)。计算机程序可部署在一个计算机或多个计算机上执行,这些计算机位于同一位置或分布在多个位置并且通过通信网络互连。本说明书中所描述的过程和逻辑流程可由一个或多个可编程处理器来执行,可编程处理器通过操作输入数据和生成输出来执行一个或多个计算机程序以执行功能。
计算机系统600还包括耦接至总线608用于存储信息和指令的诸如磁盘或光盘的数据存储装置606。计算机系统600可经由输入/输出模块610耦接至多种装置(如,输入装置216和/或输出装置214)。输入/输出模块610可以是任何输入/输出模块。例如,输入/输出模块610包括诸如USB端口的数据端口。此外,可提供输入/输出模块610与处理器602通信,以便使计算机系统600能够与其他装置近距离通信。输入/输出模块610例如在一些实现中可以提供用于有线通信,或在其他实现中提供用于无线通信,并且还可使用多种接口。输入/输出模块610配置为与通信模块612相连。示例通信模块612(如,通信模块238和/或218)包括诸如以太网卡和调制解调器的网络接口卡。
系统的部件可以通过数字数据通信的任何形式或介质(如,通信网络)互连。例如,通信网络(如,通信网络150)可包括例如PAN、LAN、CAN、MAN、WAN、BBN、互联网等中的任何一个或多个。此外,通信网络可包括但不限于例如下面的网络拓扑中的任何一个或多个,包括:总线网络、星形网络、环形网络、网状网络、星型总线网络、树形或分级网络等。例如,通信模块可以是调制解调器或以太网卡。
例如,在某些方面,通信模块612可提供耦接至与局域网相连的网络链路的双向数据通信。也可实现无线链路和无线通信。可在多种模式或协议下提供无线通信,诸如GSM(全球移动通信系统)、短信服务(SMS)、增强型短信服务(EMS)、或者多媒体短信服务(MMS)、CDMA(码分多址)、时分多址(TDMA)、个人数字蜂窝电话(PDC)、宽频带CDMA、通用分组无线业务(GPRS)、或LTE(长期演进)等等。例如,可通过射频收发器来实现这种通信。此外,诸如使用蓝牙、WI-FI、或其他此类收发器可实现近距离通信。
在任何这种实现中,通信模块612发送并接收携带代表多种信息类型的数字数据流的电、电磁或光信号。网络链路通常通过一个或多个网络将数据通信提供至其他数据装置。例如,通信模块612的网络链路可通过局域网将连接提供至主机或由互联网服务提供商(ISP)操作的数据设备。ISP进而通过全球分组数据通信网络(现通常称为“互联网”)来提供数据通信服务。局域网和互联网都使用携带数字数据流的电、电磁或光信号。通过多种网络的信号和在网络链路上且通过通信模块612的信号(其携带了往返于计算机系统600的数字数据)是传输介质的示例形式。
计算机系统600可通过(多个)网络、网络链路、以及通信模块612来发送消息并接收包括程序代码的数据。在互联网的示例中,服务器可通过互联网、ISP、局域网以及通信模块612来发送用于应用程序的请求代码。当接收到代码时,接收的代码可由处理器602执行,并且/或者存储在数据存储器606中以用于后面的执行。
在某些方面,输入/输出模块610配置为与多个装置连接,诸如输入装置614(例如,输入装置216)和/或输出装置616(例如,输出装置214)。示例输入装置614包括键盘和例如鼠标或轨迹球的定点装置,用户可通过其将输入提供至计算机系统600。其他种类的输入装置614也可用于提供与用户的互动,诸如触觉输入装置、视觉输入装置、音频输入装置、或脑机接口装置。例如,提供给用户的反馈可以是任何形式的传感反馈,例如视觉反馈、听觉反馈、或触觉反馈;并且可以以任何形式来接收来自用户的输入,包括声音、语音、触觉、或脑电波输入。示例输出装置616包括显示装置,诸如LED(发光二极管)、CRT(阴极摄像管)、LCD(液晶显示)屏、TFT LCD(薄膜晶体管液晶显示屏)或OLED(有机发光二极管)显示器,用于将信息显示给用户。输出装置616可包括用于驱动输出装置616的合适的电路以将画面和其他信息呈现给用户。
根据本发明的一个方面,可使用对处理器602执行包含在存储器604中的一个或多个指令的一个或多个序列进行响应的计算机系统600来实现装置110和服务器130。这种指令可从另一个机器可读介质读入存储器604,诸如数据存储装置606。执行包含在主存储器604中的指令的序列导致处理器602执行本文所述的过程步骤。也可使用在多处理布置中的一个或多个处理器来执行包含在存储器604中的指令的序列。在替代的方面中,可使用硬连线的电路来替代或结合软件指令以实现本公开的多种方面。因此,本公开的各方面不限于硬件电路和软件的任何特定组合。
本说明书中描述的主题的多种方面可在计算系统中实现,该计算系统包括后端部件(例如,作为数据服务器),或包括中间件部件(例如,应用服务器),或包括前端部件(例如,具有图形用户界面或网页浏览器的客户端计算机,用户可通过其与本说明书中所描述的主题的实现进行交互),或者一个或多个这种后端、中间件、或前端部件的任意组合。
计算系统600可包括客户端和服务器。客户端和服务器通常远离彼此并通常通过通信网络来交互。客户端和服务器的关系是由于运行在相应计算机且彼此具有客户端-服务器关系的计算机程序所产生的。计算机系统600可以是例如但不限于台式计算机、膝上型计算机、或平板计算机。计算机系统600也可嵌入在另一个装置中,例如但不限于移动电话、个人数字助理(PDA)、移动音频播放器、全球定位系统(GPS)接收器、视频游戏控制台、和/或电视机顶盒。
本文使用的术语“机器可读存储介质”或“计算机可读介质”是指参与将指令或数据提供至处理器602以用于执行的任何介质或媒体。本文使用的术语“存储介质”是指存储导致机器运行在特定方式下的数据和/或指令的任何非暂时性介质。这种介质可有多种形式,包括但不限于非易失性介质、易失性介质、以及传输介质。例如,非易失性介质包括光盘、磁盘、或者闪速存储器,诸如存储装置606。易失性介质包括动态存储器,诸如存储器604。传输介质包括同轴电缆、铜线、光纤,包括包含总线608的电线。例如,机器可读介质的普通形式包括软盘、柔性盘、硬盘、磁带、任何其他磁性介质、CD-ROM、DVD、任何其他光学介质、打孔卡、纸带、任何其他具有孔型图案的物理介质、RAM、PROM、EPROM、FLASH EPROM、任何其他存储器芯片或卡盘、或计算机可从其读取的任何其他介质。机器可读存储介质可以是机器可读存储装置、机器可读存储基材、存储器装置、影响机器可读传播信号的物质的组成、或它们中的一个或多个的组合。
如本申请的本说明书中所用,术语“计算机可读存储介质”和“计算机可读介质”完全局限于以由计算机可读取的形式来存储信息的有形的、物理对象。这些术语排除任何无线信号、有线下载信号、以及任何其他瞬时信号。存储介质不同于传输介质但可与传输介质结合使用。传输介质参与在存储介质之间传输信息。例如,传输介质包括同轴电缆、铜线和光纤,包括包含总线608的电线。传输介质也可采取音波或光波的形式,诸如在无线电波和红外线数据通信期间产生的传输介质。此外,如本申请的本说明书中所用,术语“计算机”、“服务器”、“处理器”和“存储器”全部指电子或其他技术装置。这些术语排除人类或人类团体。根据说明书的目的,术语显示或正在显示表示在电子设备上显示。
如本文所用,带有将任何事物分隔开的术语“和”或“或”的在一系列事物前面的短语“至少一个”将列表作为整体来修饰,而不是列表的每个成员(即,每个事物)。短语“至少一个”无需至少一个事物的选择;相反,该短语允许的意思是包括任一个事物的至少一个,和/或事物的任何组合的至少一个、和/或每个事物的至少一个。举例来说,短语“A、B和C中的至少一个”或“A、B或C中的至少一个”每个都指只有A、只有B、或只有C;A、B和C的任意组合;和/或A、B和C中的每一个的至少一个。
如本公开中所用的诸如“顶部”、“底部”、“前面”、“后面”等术语应该理解为指任意参照系,而不是普通的重力参照系。因此,顶表面、底表面、前表面、以及后表面可在重力参考系中向上、向下、对角地、或水平地延伸。此外,就说明书或权利要求书中使用的术语“包括”“具有”等来说,该术语旨在按照与术语“包括”在权利要求中作为过渡词来采用时所解释的类似方式而被包括。
本文使用的单词“示范”表示“作为一个示例、例子、或示图”。本文作为“示范”来描述的任何实施例不一定解释为比其他实施例优选的或有利的。诸如方面、该方面、另一方面、一些方面、一个或多个方面、实现、该实现、另一个实现、一些实现、一个或多个实现、实施例、该实施例、另一个实施例、一些实施例、一个或多个实施例、配置、该配置、另一个配置、一些配置、一个或多个配置、该主题技术、该公开、本公开、它们的其他变化等短语是为了方便,并且并不意味着涉及这种(这些)短语的公开对主题技术是必不可少的或这种公开应用于本主题技术的所有配置。涉及这种(这些)短语的公开可应用于所有配置、或一个或多个配置。涉及这种(这些)短语的公开可提供一个或多个示例。诸如方面或一些方面的短语可指一个或多个方面,反之亦然,并且与其他前述的短语的应用相似。
除非专门声明,否则对单数元件的指称并不旨在表述“一个且只有一个”而是“一个或多个”。男性的代词(例如,他)包括女性和中性(例如,她或它),反之亦然。术语“一些”指一个或多个。下划线和/或斜体的标题和副标题只是为了用于方便,而不是限制主题技术,并且不是用于涉及对主题技术的说明的解释。诸如第一和第二等关系术语可用于将一个实体或动作与另一实体或动作相区分,而不一定要求或暗示这样的实体或动作之间的任何这种关系或次序。对于本领域普通技术人员已知的或后面将要已知的贯穿本公开描述的多种配置的元件的所有结构化和功能化等同物通过引用明确地并入本文,并且旨在包括在主题技术中。此外,本文所公开的并不旨在贡献给公众,不管这种公开是否明确记载在上述描述中。除非明确地使用短语“用于……的装置”来记载要素,或在方法权利要求的情况下使用短语“用于……的步骤”来记载要素,否则不应按照35U.S.C.§112的第六段的规定来解释所声明的要素。
虽然本说明书包含许多细节,但这些不应该理解为对所声明的范围的限制,而是对主题的特定实现的说明。在本说明书中在独立的各实施例的上下文中描述的某些特征也可以组合为单个实施例来实现。相反地,在单个实施例的上下文中所描述的各种特征也可以分开地在多个实施例中实现或以任何合适的子组合来实现。此外,虽然特征可在上面描述为以某些组合来表现并且甚至在初始声明上也如此,但在一些情况下来自所声明组合的一个或多个特征可以从组合中去除,并且所声明组合可针对子组合或子组合的变形。
已经依据特定的方面描述了本说明书的主题,但其他方面可以实现并且处在所附权利要求的范围内。例如,虽然附图中的操作是以特定的顺序来进行描述的,但这不应该理解为需要以示出的特定顺序或先后顺序来执行操作或执行所有示出的操作,以取得期望的结果。权利要求中记载的动作可以以不同的顺序来执行,并仍然取得期望的结果。作为一个示例,附图中描述的处理过程不一定需要示出的特定顺序、或前后顺序以取得期望的结果。在某些情况下,多重任务处理和并行处理可以是有利的。此外,上述方面中的多种系统组件的分立不应该理解为在所有方面都需要这种分立,并且应该理解,所述的程序组件和系统通常可一起集成在单个软件产品中或封装进多个软件产品中。
将题目、技术背景、附图说明、摘要、附图特此并入本公开,并提供作为公开的说明性示例,而非限制性描述。其提交可理解为其将不会用于限制权利要求的范围或含义。此外,在详细的说明中,可以看到该说明提供了说明性示例并且多种特征以多种实现组合在一起以用于使得本公开精炼流畅。本公开的方法不该被解释为反映这样的意图:声明的主题需要有比每个权利要求中明确记载的更多的特征。相反,如权利要求所反映的,发明主题在于少于单个公开配置或操作的所有特征。权利要求特此并入详细的说明,其中每个权利要求依靠其自己作为分立的声明主题。权利要求并不旨在限于本文所描述的方面,而是符合与语言权利要求相一致的全部范围并且包括所有法律上的等同物。尽管如此,所有权利要求均不旨在包含未能满足适用的专利法的需求的主题,它们也不应该以这样的方式来解释。

Claims (20)

1.一种用于改善模拟中的模型的运动动画的计算机实现方法,包括:
接收用于所述模型的运动输入,所述模型包括具有各自的当前位置的多个互连节点;
基于所述运动输入和所述当前位置来确定用于所述多个互连节点中每一个的更新位置;
基于被配置为在所述当前位置和所述更新位置之间引入误差的控制回路的至少一个参数来确定用于所述多个互连节点中每一个的修改位置;
基于所述修改位置给出所述模型;以及
基于接收用户输入,所述用户输入来自所述模型的需要增加的灵敏度或精度,使向所述多个互连节点的至少一个子集的误差引入减少或失效。
2.权利要求1所述的计算机实现方法,其中,所述至少一个参数包括对应于当前偏差的比例修改器、对应于过去偏差的积累的积分修改器、对应于未来偏差的预测的输入修改器、以及对应于阈值节点运动的阈值角度。
3.权利要求2所述的计算机实现方法,其中,确定所述修改位置还包括使用所述比例修改器、积分修改器、以及输入修改器来修改节点变换,其中,当所述修改超出所述阈值角度时,根据所述阈值角度来设定所述节点变换。
4.权利要求3所述的计算机实现方法,其中,确定所述更新位置、确定所述修改位置、以及给出所述模型是针对所述运动动画的每一帧来执行的。
5.权利要求3所述的计算机实现方法,其中,修改所述节点变换还包括当所述节点变换接近所述阈值角度时在所述更新位置与对应于所述阈值角度的位置之间插值。
6.权利要求1所述的计算机实现方法,其中,接收到的运动输入对应于用户输入。
7.权利要求1所述的计算机实现方法,其中,接收到的运动输入对应于与模拟中的另一个模型的关联。
8.权利要求1所述的计算机实现方法,其中,确定所述修改位置还包括基于所述模型到虚拟摄像机的距离来确定所述修改位置。
9.权利要求1所述的计算机实现方法,其中,确定所述修改位置还包括仅针对与视野中阈值数量个模型对应的节点来确定所述修改位置。
10.权利要求1所述的计算机实现方法,其中,确定所述修改位置还包括基于用于所述多个互连节点中的每一个节点的控制回路来为所述多个互连节点中的每一个节点确定所述修改位置。
11.权利要求10所述的计算机实现方法,其中,确定所述修改位置还包括基于高达阈值数量个控制回路来确定所述修改位置。
12.一种用于改善模拟中的模型的运动动画的系统,所述系统包括:
存储器,其包括指令;
处理器,其配置为执行所述指令以:
接收用于所述模型的运动输入,所述模型包括具有各自的当前位置的多个互连节点;
基于所述运动输入和所述当前位置来确定所述多个互连节点中每一个的更新位置;
基于用于所述多个互连节点中每一个并被配置为在所述当前位置和所述更新位置之间引入误差的比例-积分-微分(PID)控制器的至少一个参数来确定所述多个互连节点中每一个的修改位置;
基于所述修改位置给出所述模型;以及
基于接收用户输入,所述用户输入来自所述模型的需要增加的灵敏度或精度,使向所述多个互连节点的至少一个子集的误差引入减少或失效。
13.权利要求12所述的系统,其中,所述至少一个参数包括对应于当前偏差的比例修改器、对应于过去偏差的积累的积分修改器、对应于未来偏差的预测的输入修改器、以及对应于阈值节点运动的阈值角度。
14.权利要求13所述的系统,其中,用于确定所述修改位置的指令还包括使用所述比例修改器、积分修改器、以及输入修改器来修改节点变换,其中,当所述修改超出所述阈值角度时,根据所述阈值角度来设定所述节点变换。
15.权利要求14所述的系统,其中,用于确定所述更新位置、确定所述修改位置、以及给出所述模型的指令是针对所述运动动画的每一帧来执行的。
16.权利要求14所述的系统,其中,用于修改所述节点变换的指令还包括当所述节点变换接近所述阈值角度时在所述更新位置和对应于所述阈值角度的位置之间插值。
17.权利要求12所述的系统,其中,接收到的运动输入对应于用户输入。
18.权利要求12所述的系统,其中,接收到的运动输入对应于与模拟中的另一个模型的关联。
19.权利要求18所述的系统,其中,确定所述修改位置还包括基于所述模型到虚拟摄像机的距离来确定所述修改位置。
20.一种非暂时性机器可读存储介质,包括用于导致处理器执行用于改善模拟中的模型的运动动画的方法的机器可读指令,所述方法包括:
接收用于模型的运动输入,所述模型包括具有各自的当前位置的多个互连节点;
基于所述运动输入和所述当前位置来确定所述多个互连节点中每一个的更新位置;
至少基于被配置为在所述当前位置和所述更新位置之间引入误差的比例-积分-微分(PID)控制器的比例修改器、积分修改器、以及输入修改器来确定用于所述多个互连节点中每一个的修改位置,其中,所述比例修改器对应于当前偏差、所述积分修改器对应于过去偏差的积累、以及所述输入修改器对应于未来偏差的预测;
基于所述修改位置给出所述模型;以及
基于接收用户输入,所述用户输入来自所述模型的需要增加的灵敏度或精度,使向所述多个互连节点的至少一个子集的误差引入减少或失效。
CN201710316991.8A 2016-09-30 2017-05-08 改善模拟中的模型的运动动画的计算机实现方法及系统 Active CN107875633B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/282,799 US10275921B2 (en) 2016-09-30 2016-09-30 Computer architecture for animation of a model in a simulation
US15/282,799 2016-09-30

Publications (2)

Publication Number Publication Date
CN107875633A CN107875633A (zh) 2018-04-06
CN107875633B true CN107875633B (zh) 2023-01-24

Family

ID=61758601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710316991.8A Active CN107875633B (zh) 2016-09-30 2017-05-08 改善模拟中的模型的运动动画的计算机实现方法及系统

Country Status (2)

Country Link
US (1) US10275921B2 (zh)
CN (1) CN107875633B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110163977B (zh) * 2018-07-13 2024-04-12 腾讯数码(天津)有限公司 多世界虚拟场景中的虚拟通道渲染方法及装置
GB2579208B (en) * 2018-11-23 2023-01-25 Sony Interactive Entertainment Inc Method and system for determining identifiers for tagging video frames with
CN110227264B (zh) * 2019-06-06 2023-07-11 腾讯科技(成都)有限公司 虚拟对象控制方法、装置、可读存储介质和计算机设备
USD959476S1 (en) 2019-12-20 2022-08-02 Sap Se Display system or portion thereof with a virtual three-dimensional animated graphical user interface
US11205296B2 (en) * 2019-12-20 2021-12-21 Sap Se 3D data exploration using interactive cuboids
USD959477S1 (en) 2019-12-20 2022-08-02 Sap Se Display system or portion thereof with a virtual three-dimensional animated graphical user interface
USD959447S1 (en) 2019-12-20 2022-08-02 Sap Se Display system or portion thereof with a virtual three-dimensional animated graphical user interface
CN111951360B (zh) * 2020-08-14 2023-06-23 腾讯科技(深圳)有限公司 动画模型处理方法、装置、电子设备及可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403202B1 (en) * 2005-07-12 2008-07-22 Electronic Arts, Inc. Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models
CN105528804A (zh) * 2015-12-17 2016-04-27 网易(杭州)网络有限公司 计算机动画中骨骼链的处理方法及装置
CN105551072A (zh) * 2015-12-11 2016-05-04 网易(杭州)网络有限公司 实现角色模型局部实时运动的方法及系统
CN105894555A (zh) * 2016-03-30 2016-08-24 腾讯科技(深圳)有限公司 一种动画模型的肢体动作模拟方法和装置
CN105976418A (zh) * 2016-06-28 2016-09-28 珠海金山网络游戏科技有限公司 一种人物动态骨骼的设计系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8711151B2 (en) * 1999-08-06 2014-04-29 Sony Corporation Hair motion compositor system for use in a hair/fur pipeline
US8144155B2 (en) * 2008-08-11 2012-03-27 Microsoft Corp. Example-based motion detail enrichment in real-time
KR101098834B1 (ko) * 2009-12-02 2011-12-26 한국전자통신연구원 동역학 기반 동작 생성 장치 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7403202B1 (en) * 2005-07-12 2008-07-22 Electronic Arts, Inc. Computer animation of simulated characters using combinations of motion-capture data and external force modelling or other physics models
CN105551072A (zh) * 2015-12-11 2016-05-04 网易(杭州)网络有限公司 实现角色模型局部实时运动的方法及系统
CN105528804A (zh) * 2015-12-17 2016-04-27 网易(杭州)网络有限公司 计算机动画中骨骼链的处理方法及装置
CN105894555A (zh) * 2016-03-30 2016-08-24 腾讯科技(深圳)有限公司 一种动画模型的肢体动作模拟方法和装置
CN105976418A (zh) * 2016-06-28 2016-09-28 珠海金山网络游戏科技有限公司 一种人物动态骨骼的设计系统和方法

Also Published As

Publication number Publication date
US20180096512A1 (en) 2018-04-05
US10275921B2 (en) 2019-04-30
CN107875633A (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
CN107875633B (zh) 改善模拟中的模型的运动动画的计算机实现方法及系统
JP7061238B2 (ja) 異種のターゲットアニメーションデータを使用してキャラクタをトレーニングする強化学習
CN109726813A (zh) 任务的强化和模仿学习
US10846906B2 (en) Animation using keyframing and projected dynamics simulation
US10717004B2 (en) Method and system for real-time animation generation using machine learning
US10964084B2 (en) Generating realistic animations for digital animation characters utilizing a generative adversarial network and a hip motion prediction network
RU2557522C2 (ru) Устройство и способ для улучшения представления объектов в распределенном интерактивном имитационном моделировании
US20230334744A1 (en) Method and apparatus for generating walk animation of virtual role, device and storage medium
US11694382B2 (en) System and method for generating character poses using deep learning
WO2020079261A1 (en) Method and system for behavior generation with a trait based planning domain language
US11113861B2 (en) Imitating motion capture clips using a neural network
US20220207831A1 (en) Simulated control for 3- dimensional human poses in virtual reality environments
WO2020249726A1 (en) Method and system for managing emotional relevance of objects within a story
CN116196611A (zh) 基于挥手动作的体感游戏方法
US20090309882A1 (en) Large scale crowd physics
US11207593B1 (en) Scalable state synchronization for distributed game servers
US20230368451A1 (en) System and method for ai assisted character pose authoring
US11645797B1 (en) Motion control for an object
US11715246B1 (en) Modification and transfer of character motion
De Paolis et al. An interactive and immersive 3D game simulation provided with force feedback
CN117215554A (zh) 一种虚拟对象的模拟方法、相关装置、设备以及存储介质
Cimen et al. Skill learning based catching motion control
Roberts et al. Evolving spaceship designs for optimal control and the emergence of interesting behaviour
CN117421589A (zh) 神经网络模型的训练与角色控制方法、装置、电子设备
Jagnow et al. Distributed Physics Simulation with Stateless Server

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