CN110384922B - 在3d图形中监测用户活动并管理控制器的方法和系统 - Google Patents

在3d图形中监测用户活动并管理控制器的方法和系统 Download PDF

Info

Publication number
CN110384922B
CN110384922B CN201810841251.0A CN201810841251A CN110384922B CN 110384922 B CN110384922 B CN 110384922B CN 201810841251 A CN201810841251 A CN 201810841251A CN 110384922 B CN110384922 B CN 110384922B
Authority
CN
China
Prior art keywords
node
mode
user
change
user activity
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
CN201810841251.0A
Other languages
English (en)
Other versions
CN110384922A (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.)
Zhuhai Kingsoft Digital Network Technology Co Ltd
Original Assignee
Zhuhai Kingsoft Digital Network Technology 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 Zhuhai Kingsoft Digital Network Technology Co Ltd filed Critical Zhuhai Kingsoft Digital Network Technology Co Ltd
Publication of CN110384922A publication Critical patent/CN110384922A/zh
Application granted granted Critical
Publication of CN110384922B publication Critical patent/CN110384922B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04845Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
    • 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
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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
    • 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

Abstract

本发明的实施例包括本文提供的用于在3D环境中监测用户活动并管理控制器的、计算机实施的方法和装置。示例性方法可以包括:接收用户输入,该用户输入的形式是与3D环境中角色装配相关联的用户活动;监测用户活动,用户活动由动画曲线数据的变化来指示;检测用户活动的变化;识别与用户活动的变化相关联的节点,其中节点是在3D环境的角色装配中由用户操控的控制器;以及调整节点,使得节点与用户活动的变化相匹配。

Description

在3D图形中监测用户活动并管理控制器的方法和系统
技术领域
本技术通常涉及交互式三维(3D)计算机图形,特别涉及在3D计算机环境中监测用户活动并管理控制器。
发明内容
本发明内容是为了以简化的形式介绍一些概念,在下面的具体实施方式中将对这些概念做进一步描述。此发明内容不用于确定所要求保护的主题的关键特征或基本特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的实施例包括本文提供的计算机实现的方法和装置,用于在3D环境中监测用户活动和管理控制器。示例性方法可以包括:接收用户输入,用户输入的形式是与3D环境中的角色装配相关联的用户活动;监测用户活动,用户活动由动画曲线数据的变化指示;检测用户活动的变化;识别与用户活动的变化相关联的节点,其中节点是在3D环境的角色装配中由用户操控的控制器;以及调整节点,使得节点与用户活动的变化相匹配。
在各个实施例中,一种系统可以包括:处理器;以及耦合到处理器的存储器,存储器存储指令,该指令可由处理器执行以执行用于在3D环境中监测用户活动并管理控制器的方法,该方法包括:监测与在3D环境中的角色装配相关联的用户活动,用户活动由动画曲线数据的变化指示;检测用户活动的变化;识别与用户活动的变化相关联的节点,其中该节点是在3D环境的角色装配中由用户操控的控制器;以及调整该节点,使得该节点与用户活动的变化相匹配。
在其他实施例中,一种非暂时性计算机可读存储介质,在其上存储有计算机可执行指令,当由处理器执行时,所述计算机可执行指令执行用于在3D环境中监测用户活动并管理控制器的、计算机实施的方法,该方法包括:接收用户输入,用户输入的形式是与3D环境中的角色装配相关联的用户活动;监测所述用户活动,所述用户活动由动画曲线数据的变化来指示;检测用户活动的变化;识别与用户活动的变化相关联的节点,其中节点是在3D环境的角色装配中由用户操控的控制器;以及调整节点,使得节点与用户活动的变化相匹配。
下面的说明将部分阐述实施例的其他目的、优点和新颖特征,对于本领域技术人员来说,通过研究以下说明和附图,这些目的、优点和新颖特征将部分变得显而易见,或者可以通过示例中的产生或操作来部分了解这些目的、优点和新颖特征。可以通过所附权利要求中特别指出的方法、机构和组合来实现和获得各种构思的目的和优点。
附图说明
附图与以下具体实施方式一起并入到说明书中并形成说明书的一部分,用于进一步说明包括要求保护的公开的构思的实施例,并且解释这些实施例的各种原理和优点。其中,在各个视图中,相同的附图标记指代相同或功能相似的元件。附图中呈现了本文公开的方法和系统,其中在适当的地方由常规符号表示,仅示出与理解本公开的实施例有关的那些具体细节,以免细节影响本公开,受益于本说明书的本领域普通技术人员容易理解这些细节。
图1是用于实现本公开的各方面的示例系统架构的示意图。
图2是根据本公开的实施例的用于在3D计算机环境中监测用户活动并管理控制器的示例方法的流程图。
图3是在3D计算机环境中对角色装配的渲染。
图4是能够用来实施本公开的各方面的示例计算机设备的示意图。
具体实施方式
虽然本技术易于以许多不同的方式实施,但是附图中示出了并且在本文详细描述了几个具体实施例,应当理解,本公开视为本技术原理的示例,并不意图将本技术限于所阐述的实施例。本文使用的术语仅用于描述特定实施例,并不意图限制本技术。除非上下文明确指出,否则本文所使用的单数形式“一”和“该”等也包括复数形式。还应当理解,本说明书使用的术语“包括”、“包含”或者其任何其他变体指明存在所述的特征、整体、步骤、操作、元件、和/或组件,但不排除存在或还包括一个或更多个其他特征、整体、步骤、操作、元件、组件和/或其组合。应该理解,本文提及的相同或相似的元件和/或部件,可以在全部附图中使用相同的附图标记来标识。还应当理解,这些附图仅仅是本技术的示意图。因此,为了图像清晰,一些组件可能与其实际比例不同。
本文描述的实施例提供了对角色装配中的用户体验的改进,其包括:将选定的控制器设置为与当前使用的工具的运动学模式匹配的运动学模式,并将与当前使用的工具的运动学模式匹配的运动学模式应用于与所选控制器相关的控制器;将所选控制器的位置应用于与所选控制器相关的控制器;将所选控制器的模式应用于与所选控制器相关的控制器;将与一个控制器相关联的键和与另一个控制器相关联的键区分开,并且允许被设置为未使用模式的控制器可见但在用户切换控制器的模式之前不能被用户选择。
本文描述的实施例消除了在定位动画角色的附肢和/或为动画角色的附肢设置姿势的动画过程中可能由反向运动学(IK)和正向运动学(FK)之间的切换引起的突变。在定位附肢和/或为附肢设置姿势的动画过程中,用户(即动画制作者)一般需要在FK和IK之间切换。然而,因为对于同一附肢关节,FK和IK定义不同的位置和/或转动,所以两种运动学模式之间的切换可能导致附肢关节的位置和/或转动的突变,该突变看上去是不真实的。例如,如果用户要为角色跳动并抓住壁架设置动画,则用户会使用FK模式来设置使角色跳动到壁架的动画。当角色到达壁架时,用户会切换到IK模式,这样就可以为角色的手设置抓住壁架的动画(或者如果角色尚未到达壁架,则能够为角色的手设置尝试到达壁架的动画)。当从FK模式切换到IK模式时,IK控制器(即IK模式下的手控制器)将处于其初始位置,而不是FK控制器(即FK模式下的手控制器)先前被设置的位置,这迫使用户手动移动控制器。本文描述的实施例通过以下方式来解决该问题:跟踪所有FK和IK控制器的位置,并更新非活动运动学模式下的控制器的位置以匹配当前活动运动学模式下的控制器的位置。当发生运动学模式之间的切换(即从IK到FK或从FK到IK)时,由于更新了最近非活动模式下的控制器的位置,最近活动模式下的控制器与最近非活动模式下的控制器的位置相同。这样,IK和FK位置之间的可能不协调的和/或不真实的混合不再是问题,因为这两个运动链不断被迫使处于相同的位置。
要求保护的方法的实施例由能够例如通过指令实现的多个模块来执行。在许多情况下,用户可以使用3D计算环境(比如
Figure BDA0001745636040000041
Maya)操控3D空间中的骨架(rig)。
现代计算机动画通常将角色表示为两部分:表面呈现,其可以直观地描绘角色并且一般为多边形网格,通常称为“蒙皮”;以及一组有层次的互连的构件,其用于为网格设置动画或姿势。该一组有层次的互连的构件通常称为“控制器”。控制器是在用户为角色设置动画时由用户操控的节点。例如,当用户想要操控人类角色的臂时,用户选择肩控制器。对肩控制器的操控控制对人类角色的肩的定位,这进而控制对人类角色的臂的定位。该一组互连的构件可以称为骨骼或rig。rig动画通常用于为人类或动物角色、无生命的对象、机器等设置动画。rig动画能够用于控制3D场景内的任何对象(在本公开中可与“角色”互换使用)的变形。为对象或角色创建一组统一的骨骼构件的技术组通常称为角色装配。
为了让用户使角色移动并与其环境交互,可以将网格绑定到控制手柄和关节的系统,该控制手柄和关节可以用于设置3D模型的姿势。关节和控制手柄的系统可以称为rig。从概念上讲,可以将rig视为3D动画对象的骨骼结构。例如,两足人类角色的rig可以在视觉上和功能上类似于人类骨骼。用户可以使用附接于骨骼rig的控制点来控制角色的运动。rig能够耦接到网格上的点,当rig移动时,网格上的点可以以流体运动来响应。3D场景中不太像人类对象的rig可能不直接对应于骨骼框架,但通常仍会提供控制点,当场景随时间变化时,用户可以操控这些控制点。作为示例,本公开可以使用主要包括耦接到网格的数字骨骼的角色rig。就像一个真正的骨骼一样,rig可以由关节、骨头和控制件组成,它们可以作为用户操控角色进入期望姿势的“锚点”。
图1示出了用于实践本公开的各方面的示例性架构。该架构包括经由公共或专用网络(例如网络115)通信地耦合到服务器系统110的一个或更多个客户端105。在各个实施例中,客户端105包括个人计算机、膝上型计算机、智能电话或其他合适的计算设备中的至少一个。
用于网络115的合适的网络可以例如包括如下中的任何一个或更多个或者与如下中的一个或更多个相连接:本地内联网、PAN(个域网)、LAN(局域网)、WAN(广域网)、MAN(城域网)、虚拟专用网(VPN)、存储区域网(SAN)、帧中继连接、高级智能网(AIN)连接、同步光纤网(SONET)连接、数字T1、T3、E1或E3线路、数字数据业务(DDS)连接、DSL(数字用户线路)连接、以太网连接、ISDN(综合业务数字网)线路、拨号端口(例如,V.90、V.34或V.34bis模拟调制解调器连接)、电缆调制解调器、ATM(异步传输模式)连接或FDDI(光纤分布式数据接口)或CDDI(铜缆分布式数据接口)连接。此外,通信还可以包括到各种无线网络中的任一网络的链接,该无线网络包括:WAP(无线应用协议)、GPRS(通用分组无线服务)、GSM(全球移动通信系统)、CDMA(码分多址)或TDMA(时分多址)、蜂窝电话网络、GPS(全球定位系统)、CDPD(蜂窝数字分组数据)、RIM(Research in Motion Limited(移动通讯咨询有限公司))双工寻呼网络、蓝牙无线电或基于IEEE 802.11的射频网络。网络115还能够包括以下中的任何一个或更多个或者与以下中的任何一个或更多个连接:RS-232串行连接、IEEE-1394(火线)连接、光纤通道连接、IrDA(红外)端口、SCSI(小型计算机系统接口)连接、USB(通用串行总线)连接或者其他有线或无线、数字或模拟接口或连接、网格或
Figure BDA0001745636040000051
网络。/>
通常,服务器系统110配置为提供本公开中更详细描述的各种功能。在各个实施例中,服务器系统110包括处理器120、存储器125和网络接口130。根据一些实施例,存储器125包括逻辑135(也称为指令),逻辑135可以由处理器120执行以执行本文描述的各种方法。例如,逻辑135可以包括用户输入接收模块140、工具监测模块145、键监测模块150、选择监测模块155和位置监测模块160,这些模块配置为提供本文更详细描述的一些或全部功能。应该理解,尽管本文描述的方法通常应用于服务器系统110,但是本文描述的方法也可以由客户端105执行。在其他实施例中,服务器系统110和客户端105可以协作来提供本文描述的功能。可以向客户端105提供客户端侧应用,该客户端侧应用以客户端/服务器关系与服务器系统110交互。
通常,用户输入接收模块140可以从客户端105接收用户输入,用户输入的形式例如是角色装配中的用户活动。用户输入接收模块140对用户输入的接收,可以激活多个监测模块,以监测角色装配中的用户活动。
3D对象的动画可能涉及使用3D创作工具来为用户想要操控的对象的多个属性中的每个属性指定一系列键。键(也称为“键帧”)是指定在特定时刻对象的属性值的任意标记。这些属性及其相关序列通常称为动画通道,并且可能对应于诸如沿着特定轴的运动(即在一个或更多个维度上的平移)、一维或更多维中的转动、缩放或尺寸、形状、颜色等等特征。给定的动画通道中的每个键指定给定的时间点处的属性值,以及指定通向或离开该键的曲率的切线设置。因此,键的集合指定该通道的动画曲线。动画曲线表示该通道的对象属性值随时间如何变化。例如,对于平移属性,动画曲线可以表示对象沿着虚拟空间中的轴随时间变化的位置。在涉及颜色属性的另一个示例中,动画曲线可以表示对象随时间变化的颜色、亮度和/或阴影值。
动画曲线中的数据的任何变化都指示由多个监测模块监测的用户活动。每个监测模块负责监测用户在角色装配中的特定活动。用户在角色装配中的每个特定活动都称为事件。例如,监测模块可以包括工具监测模块145、键监测模块150、选择监测模块155、位置监测模块160等,这些监测模块中的每一个负责监测一种特定事件。
3D计算环境可以为用户提供用于角色装配的各种工具。这些工具包括允许用户:选择待操控的对象或对象的组件;通过围绕对象或对象的组件绘制任意形状,在视图面板中“套索”对象或对象的组件;在对象的组件(诸如顶点或面)上绘画;移动对象或对象的组件;转动对象或对象的组件;缩放对象或对象的组件(即以在所有方向上都相同的缩放因子放大或缩小对象或对象的组件)等。
工具监测模块145可以检查用户对工具的使用。当工具监测模块145确定在使用工具时,工具监测模块145可以查明用户当前使用的工具的标识以及就在使用当前工具之前用户使用的工具的标识(如果有的话)。
工具监测模块145可以确定用户当前选择的控制器的标识。为了确定用户当前选择的控制器,工具监测模块145可以检查基于装配名称约定命名的控制器。例如,装配名称约定可以设置为:c_sideOfBody_name_versionNumber_type(c_体侧_名称_版本号_类型)。应用此示例,如果角色有四个臂(每侧有两个臂),则根据装配名称约定,右侧的下部臂上选定的肘控制器命名为“c_R_elbow_v2_CTRL”。“v2”代表“版本2”,理解为右侧的第二个肢体,“CTRL”代表“控制器”。如前所述,控制器可以是节点。工具监测模块145然后可以基于当前正在使用的工具,查明是否需要改变所选控制器的当前的运动学模式(反向运动学模式(IK模式)或正向运动学模式(FK模式))。
如果基于当前工具确定需要改变当前的运动学模式,则工具监测模块145可以将所选控制器设置为适合于当前工具的新运动学模式。如果未做出这种确定,则所选控制器的当前运动学模式可以保持不变。
然后,工具监测模块145可以找到与所选控制器相关的控制器并循环遍历找到的所有相关控制器。所选控制器具有已由用户手动或通过脚本自动设置的字符串属性。与所选控制器相关的控制器也具有该字符串属性。工具监测模块145通过在控制器中搜索设置在所选控制器上的该字符串属性来查找与所选控制器相关的控制器。如果为所选控制器提供了新的运动学模式,则可以将找到的相关控制器设置为新的运动学模式。下面将进一步详细描述运动学以及运动学模式。
3D角色(如人体)的运动通常由运动学指定。为附肢对象(例如,臂、腿、尾巴、脚、手)创建真实的位置和/或姿势可能尤其具有挑战性,因为附肢的关节具有几个操控自由度。运动学根据关节参数控制有关节的对象的各个部分的运动。因此,用户通常应用正向和反向运动学来对附肢的运动进行建模并创建附肢的运动。
正向运动学(FK)使用关节参数来计算产生的对象配置的形状。例如,正向运动学使用肘的关节参数来计算产生的臂形状。此外,FK能够定义每个附肢关节应有的确切位置和/或转动。通常能够使用FK来设置附肢的特定姿势。
相反,反向运动学(IK)使用产生的或期望的对象形状来计算关节参数。例如,反向运动学使用期望的手的位置来计算将提供该期望的手位置的肘的关节参数。此外,IK能够定义附肢的目标或目的地(例如,附肢应接触另一对象),然后计算每个附肢关节达到该目标或目的地所需的位置和/或转动。通常能够使用IK来设置附肢的特定目标。
利用FK,各个关节被移动并转动以设置关节链的姿势和动画。移动关节会影响该关节以及层次结构中该关节以下的任何关节。例如,如果期望关节链到达空间中的特定位置,则需要单独转动每个关节,以便关节链能够到达该位置。为了做到这一点,转动并平移关节链的父关节,然后转动并平移下一个关节,以此类推,直到整个关节链。当使用FK为骨骼设置动画时,从根关节开始插入关节转动,然后插入根关节的子关节,以此类推,直至整个骨骼的层次结构。
正向运动学模式(FK模式)和反向运动学模式(IK模式)都可以在3D计算机图形软件环境中被用户选择用于设置动画。
当选择了FK模式的用户想要使手移动以触摸墙壁时,用户选择肩控制器,并沿着墙壁方向转动肩控制器,这继而移动肘和手。在FK模式下,出于更有力的姿势的目的,能够转动肘控制器。移动肘控制器使手移动但肩不移动,因为在骨骼层次结构中,肩位于肘之上。
使用IK时,移动反向运动手柄(IK手柄)以设置整个关节链的姿势。IK手柄是能够选择和移动的对象,它会影响分配给它的关节。具有IK手柄的关节链称为IK链。当设置带有IK手柄的关节链的姿势和动画时,IK求解器自动转动IK链中的所有关节。IK求解器用于在IK手柄被定位时,计算IK链中所有关节的转动。
当选择了IK模式的用户想要使手移动以触摸墙壁时,用户选择触摸墙壁的手控制器(位于3D人类角色臂部分的末端)。在此过程中,手上面的部分(肘和肩)弯曲/转动,以协助该手控制器接触墙壁。
在工具监测模块145的非限制性示例中,用户可以使用3D计算环境提供的工具来使手移动触摸墙壁。在一个示例中,用户可以使用“转动”工具。工具监测模块145可以确定当前正在使用工具并且该工具的标识是“转动”工具。
然后,工具监测模块145可以检查以查看在使用“移动”工具之前是否还使用过工具。工具监测模块145可以检查先前的工具,因为如果先前工具(这里是“移动”工具)和当前工具(这里是“转动”工具)共享相同的运动学模式,则基于先前工具和当前工具的运动学模式,可能不需要从IK模式变化到FK模式(或FK模式变化到IK模式)。如果先前工具和当前工具的运动学模式分别是不同的,则可能需要从IK模式变化到FK模式(或从FK模式变化到IK模式)。“移动”工具能够执行IK行为(即,使对象平移),因此可以处于IK模式。在“移动”工具之前使用的工具可能是“转动”工具。“转动”工具能够执行FK行为(即改变对象的取向),因此可以处于FK模式。在这个示例中,用户已选择了肩控制器。然后,工具监测模块145可以确定肩控制器是所选控制器并且所选控制器的当前运动学模式是IK。基于先前使用的“移动”工具和当前使用的“转动”工具,工具监测模块145可以确定需要将所选控制器从IK模式设置为FK模式。
工具监测模块145然后可以找到与肩控制器相关的控制器(例如肘控制器和手控制器)并且循环遍历该相关的控制器。肩控制器具有已由用户手动或通过脚本自动设置的字符串属性。与肩控制器相关的控制器也具有该字符串属性。工具监测模块145通过在控制器中搜索设置在肩控制器上的该字符串属性来查找与肩控制器相关的控制器。这里,所找到的相关控制器是肘控制器和手控制器。然后可以将肘控制器和手控制器设置为FK模式。
键是指定对象在特定时间的属性值的任意标记。设置键是创建指定动画中的时间和动作的标记的过程。动画是创建和编辑随时间变化的对象属性的过程,并且该创建和编辑由用户通过键来完成。一旦用户创建了待为其设置动画的对象,用户就可以设置表示该对象在动画期间变化的属性的键。
设置键涉及:用户将键移动到动画时间线上用户想要建立属性值的位置(某一时间);设置该值;然后在动画时间线上的该特定时间处设置键。实际上,用户正记录属性在该时间处的快照。时间线显示已被选中的对象的键。如果取消选择该对象,则键会从时间线上消失,直到用户再次选择该对象。相反地,如果用户已经选择一个以上的动画对象,则所有组合对象的键都会显示在时间线上。
用户能够重新排列、删除和复制键和键序列。例如,用户能够将一个对象的动画属性复制到另一个对象上,或者用户能够在比最初设置键的时间更长的时间内拉长一段动画。
为3D计算机动画设计的角色和对象可以使用许多不同的元素来构建。例如,3D角色模型可以包括定义角色的外表面的网格。网格可以与表面特征(例如纹理、表面亮度、位图、调色板等)相关联,以在渲染过程完成之后生成角色的可见3D表面。如前所述,该网格可以称为控制器。
3D动画可以基于描绘3D对象的多个键。3D动画也可以与由两个端点—开始时间点和结束时间点—定义的动画时间线相关联。利用设置的键,使用3D动画的用户可以通过选择(例如点击)和移动(例如拖动)如显示屏上显示的对象的任何控制器,来沿着在开始时间点和结束时间点之间的动画时间线向前和向后操控对象。用户可以将任何控制器用作滚动/滑动按钮,以沿着动画时间线向前和向后移动动画。
如前所述,用户通过键为对象设置动画。用户能够以各种方式操控键:剪切;复制和粘贴;剪切、复制、和粘贴;删除;缩放;实时捕捉最接近的整个时间单位值或属性值;烘焙(即在每一帧上创建键,使得用户能够编辑各个键并调整动画);静音;编辑等。
键监测模块150可以检查用户对键的操控。当键监测模块150确定正在操控键时,键监测模块150可以确定用户在如何操控键(例如删除、移动、缩放等)。
键监测模块150可以确定用户当前选择的控制器的标识。为了确定用户当前选择的控制器,键监测模块150可以检查基于装配名称约定命名的控制器。例如,装配名称约定可以设置为:c_sideOfBody_name_versionNumber_type。应用此示例,如果角色有四个臂(每侧有两个臂),则根据装配名称约定,右侧的下部臂上选定的肘控制器将命名为“c_R_elbow_v2_CTRL”。“v2”代表“版本2”,理解为右侧的第二个肢体,“CTRL”代表“控制器”。对键的操控对应于所选控制器的位置变化。键监测模块150可以禁用位置监测模块160,以避免对位置变化的双重计算。键监测模块150可以收集该所选控制器的位置数据,以确定由对键的操控导致的所选控制器的新位置。
键监测模块150可以找到与所选控制器相关的控制器并循环遍历找到的所有相关控制器。所选控制器具有已由用户手动或通过脚本自动设置的字符串属性。与所选控制器相关的控制器也具有该字符串属性。键监测模块150通过在控制器中搜索设置在所选控制器上的该字符串属性来查找与所选控制器相关的控制器。使用所选控制器的所收集的位置数据,键监测模块150可以将所选控制器的位置变化(即,所选控制器从先前位置变化到新位置)应用于相关控制器。
选择监测模块155可以检查用户对所选控制器的模式选择。当选择监测模块155确定已经选择某个模式时,选择监测模块155可以确定所选模式是什么(例如,控制器被设置为全局模式还是局部模式)。为了确定用户当前选择的控制器,选择监测模块155可以检查基于装配名称约定命名的控制器。例如,装配名称约定可以设置为:c_sideOfBody_name_versionNumber_type。应用此示例,如果角色有四个臂(每侧有两个臂),则根据装配名称约定,右侧的下部臂上选定的肘控制器将命名为“c_R_elbow_v2_CTRL”。“v2”代表“版本2”,理解为右侧的第二个肢体,“CTRL”代表“控制器”。
然后,选择监测模块155可以找到与所选控制器相关的控制器并循环遍历找到的所有相关控制器。所选控制器具有已由用户手动或通过脚本自动设置的字符串属性。与所选控制器相关的控制器也具有该字符串属性。选择监测模块155通过在控制器中搜索设置在所选控制器上的该字符串属性来查找与所选控制器相关的控制器。选择监测模块155然后可以将所选模式应用于相关的控制器。
位置监测模块160可以检查所选控制器的位置变化。为了确定用户当前选择的控制器,位置监测模块160可以检查基于装配名称约定命名的控制器。例如,装配名称约定可以设置如下:c_sideOfBody_name_versionNumber_type。应用此示例,如果角色有四个臂(每侧有两个臂),则根据装配名称约定,右侧的下部臂上选定的肘控制器命名为“c_R_elbow_v2_CTRL”。“v2”代表“版本2”,理解为右侧的第二个肢体,“CTRL”代表“控制器”。如果对所选择控制器的位置变化设置了键,则键监测模块150可以是用于将所选控制器的新位置应用于所选控制器的相关控制器的模块。如果没有对所选控制器的位置变化设置键,则可以使用位置监测模块160。当位置监测模块160确定所选控制器已经发生位置变化(未设置键)时,位置监测模块160可以收集所选控制器的位置数据。位置监测模块160可以将所选控制器的所收集的位置数据存储在变量中,其中变量是存储数据的存储容器。
当在节点的属性上设置时间戳时,对所选控制器的位置变化设置键。例如,使用3D计算环境的3D坐标,用户可以在“y”(海拔)轴将立方体向上移动10个单位。然后,用户可以在帧5处在立方体上设置键。在这个示例中,在帧5处对立方体的位置(在“y”轴上向上移动了10个单位)设置了键。
位置监测模块160可以找到与所选控制器相关的控制器并循环遍历找到的所有相关控制器。所选的控制器具有已由用户手动或通过脚本自动设置的字符串属性。与所选控制器相关的控制器也具有该字符串属性。位置监测模块160通过在控制器中搜索设置在所选控制器上的该字符串属性来查找与所选控制器相关的控制器。位置监测模块160然后可以将所选控制器的位置变化应用于相关的控制器。
在一些实施例中,逻辑135可以包括颜色键模块,颜色键模块是改善在3D环境中角色装配中的用户体验的另一模块。如前所述,时间线显示用户已选择的控制器的键。在一些情况下,用户可以选择一个以上的控制器。这种情况下,控制器的键全部显示在时间线上,且与不同控制器关联的键之间没有区别。颜色键模块通过将第一颜色分配给第一控制器提供了解决此问题的方案。与第一控制器关联的键被分配有第一颜色。颜色键模块可以将第二颜色分配给第二控制器。与第二控制器关联的键被分配有第二颜色,以此类推。在非限制性示例中,用户可以选择两个控制器,与两个控制器相关联的键都显示在时间线上。
在其他实施例中,逻辑135可以包括IK/FK引导模块,该模块也是改善角色装配中的用户体验的模块。
除了单独使用FK或IK来设置附肢关节的姿势和动画外,用户还可以在同一个关节上混合FK和IK动画。这可以称为“动画混合”或“IK/FK混合”。IK和FK动画之间的IK/FK混合允许用户利用纯FK或纯IK来在设置姿势和设置动画之间切换,以及控制这两种动画之间的混合。在IK/FK混合中,第一组控制器设置为IK模式,第二组控制器设置为FK模式。
如前所述,在IK/FK混合中,第一组控制器设置为IK模式,第二组控制器设置为FK模式。例如,如果用户在IK模式下工作,则设置为IK模式的控制器可见,而设置为FK模式的控制器不可见。IK/FK引导模块为此问题提供了解决方案,即允许设置为未使用模式的控制器可见但在用户切换到控制器模式之前无法被用户选择。在用户以IK模式工作的前一示例中,设置为IK模式的控制器和设置为FK模式的控制器均可见。但是,在用户以FK模式工作之前,用户无法选择设置为FK模式的控制器。IK/FK引导模块确定用户工作的当前模式(IK或FK)。然后,IK/FK引导模块可以识别设置为当前模式的控制器并可以使它们可见且可选。然后,IK/FK引导模块可以使未设置为当前模式的控制器可见但不可选。
图2是示出根据本公开的实施例的用于在3D计算机环境中监测动画曲线数据并管理控制器的示例性方法200的流程图。方法200可以由处理逻辑来执行,所述处理逻辑包括:硬件(例如决策逻辑、专用逻辑、可编程逻辑、专用集成电路),软件(例如通用计算机系统或专用机器上运行的软件)或两者的组合。在示例性实施例中,处理逻辑涉及图1中所示系统的一个或更多个元件。
下面列举的方法200的操作能够按照与图2中所描述和示出的顺序不同的顺序来实现。此外,方法200可以具有本文未示出的额外操作,但根据本公开内容,这些操作对于本领域技术人员来说是显而易见的。方法200也可以具有比图2中所示和以下描述的更少的操作。
方法200可以开始于操作210,接收用户输入,用户输入的形式例如是角色装配中的用户活动。对用户输入的接收可以触发对角色装配中的用户活动的监测。
操作220包括监测用户活动,用户活动由动画曲线数据中的变化来指示。动画曲线中数据的任何变化都指示正在监测的用户活动。
方法200可以继续执行操作230,检测用户活动的变化。该变化可以与角色装配中用户的以下动作中的至少一个相关联:使用工具、操控键、为所选控制器选择模式以及改变所选控制器的位置。
操作240可以包括识别与用户活动的变化相关联的节点。如前所述,节点可以是由用户在角色装配中操控的控制器。
在操作250处,调整分配给识别出的节点的多个键,使得该多个键与用户活动的变化相匹配。在示例中,当检测到的用户活动变化是:用户使用工具时,则操作250可以进一步包括:确定用户当前所使用的工具;确定所识别的节点中用户当前选择的节点;将当前选择的节点设置为适合于当前使用的工具的运动学模式;找到与当前选择的节点相关的节点;以及将相关节点设置为适合于当前使用的工具的运动学模式。
在另一示例中,当所检测到的用户活动变化是:用户操控键时,则操作250可以进一步包括:确定所识别的节点中用户当前选择的节点;检测用户对键的操控,其中对键的操控对应于当前选择的节点的位置变化;收集所选节点的位置数据;使用所收集的位置数据,确定与对键的操控相对应的所选节点的新位置;找到与当前所选节点相关的节点;以及将所选节点的位置变化(即所选节点从先前位置到新位置的变化)应用于相关节点。
在又一示例中,当所检测到的用户活动变化是:用户为所选节点选择模式时,则操作250可以进一步包括:确定所识别的节点中用户当前选择的节点;确定当前所选节点的模式;找到与当前所选节点相关的节点;以及将相关节点设置为当前所选节点的模式。
在示例中,当所检测到的用户活动变化是:用户改变所选节点的位置时,则操作250可以进一步包括:确定所识别的节点中用户当前选择的节点;检测当前选择的节点的位置变化;收集所选节点的位置数据;使用所收集的位置数据,确定与该位置变化相对应的所选节点的新位置;找到与当前选择的节点相关的节点;以及将所选节点的位置变化(即所选节点从先前位置到新位置的变化)应用于相关节点。
方法200还可以包括:跟踪处于不活动运动学模式和当前活动运动学模式下的所有控制器的位置,以及更新处于不活动运动学模式下的控制器的位置以匹配处于当前活动运动学模式下的控制器的位置。
在另一示例中,方法200还可以包括:将第一颜色分配给第一节点;将第一颜色分配给与第一节点相关联的第一组键;将第二颜色分配给第二节点;以及将第二颜色分配给与第二节点相关联的第二组键。
在又一示例中,方法200还可以包括:识别用户当前工作所处于的第一模式,第一模式为IK模式或FK模式;找到设置为第一模式的节点;当用户处于第一模式时,允许设置为第一模式的节点可见并且可被用户选择;识别用户当前工作未处于的第二模式,如果第一模式是FK模式,则第二模式是IK模式,或者如果第一模式是IK模式,则第二模式是FK模式;以及当用户处于第一模式时,允许设置为第二模式的节点可见但用户不可选择。
图3是示出使用本公开中描述的方法的3D环境300中的角色装配的屏幕截图。
图4示出了可以用于实现本技术的一些实施例的示例性计算机系统400。计算机系统400可以在类似于诸如服务器系统110和客户端105之类的计算系统的环境中实现。计算机系统400包括一个或更多个处理器单元410和主存储器420。主存储器420部分地存储由处理器单元410执行的指令和数据。在本例中,主存储器420在操作时存储可执行代码。计算机系统400还包括海量数据存储设备430、便携式存储设备440、输出设备450、用户输入设备460、图形显示系统470和外围设备480。
图4中所示的组件示出为经由单个总线490连接。这些组件可以经由一个或更多个数据传输装置连接。处理器单元410和主存储器420经由本地微处理器总线连接,海量数据存储设备430、外围设备480、便携式存储设备440和图形显示系统470经由一个或更多个输入/输出(I/O)总线连接。
海量数据存储设备430是用于存储由处理器单元410使用的数据和指令的非易失性存储设备,海量数据存储设备430能够用磁盘驱动器、固态驱动器或光盘驱动器实现。海量数据存储设备430存储用于实现本公开的实施例的系统软件,以便将该软件加载到主存储器420中。
便携式存储设备440与便携式非易失性存储介质(例如闪存驱动器、软盘、光盘、数字视频盘或USB存储设备)一起工作,以将数据和代码输入到计算机系统400以及从计算机系统400输出。用于实现本公开的实施例的系统软件存储在这种便携式介质上并且经由便携式存储设备440输入到计算机系统400。
用户输入设备460能够提供用户接口的一部分。用户输入设备460可以包括:一个或更多个麦克风,用于输入字母数字和其他信息的字母数字键盘(例如键盘),或者诸如鼠标、轨迹球、触控笔或光标方向键的指向设备。用户输入设备460也能够包括触摸屏。另外,计算机系统400包括输出设备450。合适的输出设备450包括扬声器、打印机、网络接口和监视器。
图形显示系统470包括液晶显示器(LCD)或其他合适的显示设备。图形显示系统470可配置为接收文本和图形信息并处理该信息以输出到显示设备。外围设备480可以包括用于向计算机系统添加额外功能的任何类型的计算机支持设备。
计算机系统400中提供的组件是通常在计算机系统中可以找到的那些组件,这些计算机系统可以适用于本公开的实施例,并且旨在表示本领域中公知的这种计算机组件的广泛类别。因此,计算机系统400可以是个人计算机(PC)、手持式计算机系统、电话、移动计算机系统、工作站、平板计算机、移动电话、服务器、小型计算机、大型计算机、可穿戴计算机或任何其他计算系统。计算机还可以包括不同的总线配置、网络平台、多处理器平台等。
上述功能中的一些可以由存储在存储介质(例如计算机可读介质)上的指令组成。指令可以由处理器检索和执行。存储介质的一些示例是存储器设备、磁带、磁盘等。由处理器执行时,指令是可操作的以指导处理器根据本技术进行操作。本领域技术人员熟悉指令、处理器和存储介质。
在一些实施例中,计算系统400可以实现为基于云的计算环境,诸如在计算云中工作的虚拟机。在其他实施例中,计算系统400本身可以包括基于云的计算环境,其中计算系统400的功能以分布式方式执行。因此,当配置为计算云时,计算系统400可以包括各种形式的多个计算设备,如下将更详细描述的。
通常,基于云的计算环境是这样的资源:其通常结合(例如网络服务器内的)大量处理器的计算能力和/或结合大量计算机存储器或存储设备的存储容量。提供基于云的资源的系统可以由其所有者独占使用,或者这些系统可以由外部用户访问,这些外部用户在计算基础设施内部署应用以获得大型计算或存储资源的益处。
所述云例如由包括多个计算设备(比如计算设备400)的网络服务器的网络形成,其中每个服务器(或者其至少多个服务器)提供处理器和/或存储资源。这些服务器管理多个用户(例如云资源客户或其他用户)提供的工作负载。通常,每个用户都会将实时变化的工作负载需求置于云上,这些变化有时甚至会非常显著。这些变化的性质和程度通常依赖于与用户关联的业务类型。
值得注意的是,适合于执行本文描述的处理的任何硬件平台都适合与本技术一起使用。本文使用的术语“计算机可读存储介质”是指参与向CPU提供指令以供执行的任何介质。这样的介质能够采取多种形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质包括例如光盘或磁盘,诸如固定盘。易失性介质包括动态存储器,诸如系统RAM。传输介质包括:同轴电缆、铜线和光纤等等,包括构成总线的一个实施例的导线。传输介质也可以采取声波或光波的形式,例如在射频(RF)和红外(IR)数据通信期间产生的声波或光波。计算机可读介质的常见形式包括:例如软盘、柔性盘、硬盘、磁带、任何其他磁介质、CD-ROM盘、数字视频盘(DVD)、任何其他光学介质、任何其他具有标记或孔洞图案的物理介质、RAM、PROM、EPROM、EEPROM、FLASHEPROM、任何其他存储器芯片或数据交换适配器、载波或计算机可读取的任何其他介质。
计算机可读介质的各种形式可以涉及将一个或更多个指令的一个或更多个序列传送到CPU以供执行。总线将数据传送到系统RAM,CPU从系统RAM中检索并执行指令。可选地,在CPU执行之前或之后,可以将系统RAM接收到的指令存储到固定盘上。
虽然以上描述了各种实施例,但应该理解,它们仅作为示例提供,而非限制。这些描述并不旨在将本技术的范围限于本文阐述的特定形式。因此,优选实施例的宽度和范围不应该受任何上述示例性实施例的限制。应该理解,以上描述是说明性的而不是限制性的。相反,本描述旨在涵盖可包括在由所附权利要求限定的技术的精神和范围内并且由本领域普通技术人员另外理解的替代、修改和等同物。因此,本技术的范围不应参照以上描述来确定,而是应该参照所附权利要求及其全部等同范围来确定。

Claims (15)

1.一种用于在3D环境中监测用户活动并管理控制器的、计算机实施的方法,所述方法包括:
接收用户输入,所述用户输入的形式是与3D环境中的角色装配相关联的用户活动;
监测所述用户活动,所述用户活动由动画曲线数据的变化来指示;
检测所述用户活动的变化;
识别与所述用户活动的变化相关联的节点,其中所述节点是在3D环境的角色装配中由用户操控的控制器;以及
调整所述节点,使得所述节点与所述用户活动的变化相匹配;
所述方法还包括:
跟踪处于不活动运动学模式下的控制器和处于当前活动运动学模式下的控制器的位置,以及
更新处于不活动运动学模式下的控制器的位置,以匹配处于当前活动运动学模式下的控制器的位置。
2.根据权利要求1所述的方法,其中所检测到的用户活动的变化是所述用户使用工具,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点的步骤包括:
确定所述用户当前所使用的工具;
确定所识别的节点中所述用户当前选择的节点;
将当前选择的节点设置为适合于当前使用的工具的运动学模式;
找到与当前选择的节点相关的节点;以及
将所述相关的节点设置为适合于当前使用的工具的运动学模式。
3.根据权利要求1所述的方法,其中所检测到的用户活动的变化是所述用户操控键,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点的步骤包括:
确定所识别的节点中所述用户当前选择的节点;
检测所述用户对键的操控,其中对所述键的操控与当前选择的节点的位置变化相对应;
收集所选择的节点的位置数据;
使用所收集的位置数据,确定与对所述键的操控相对应的所选择的节点的新位置;
找到与当前选择的节点相关的节点;以及
将所选择的节点的位置变化应用于所述相关的节点。
4.根据权利要求1所述的方法,其中所检测到的用户活动的变化是所述用户为所选择的节点选择模式,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点的步骤包括:
确定所识别的节点中所述用户当前选择的节点;
确定当前选择的节点的模式;
找到与当前选择的节点相关的节点;以及
将所述相关的节点设置为当前选择的节点的模式。
5.根据权利要求1所述的方法,其中所检测到的用户活动的变化是所述用户改变所选择的节点的位置,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点的步骤包括:
确定所识别的节点中所述用户当前选择的节点;
检测当前选择的节点的位置变化;
收集所选择的节点的位置数据;
使用所收集的位置数据,确定与所述位置变化相对应的所选择的节点的新位置;
找到与当前选择的节点相关的节点;以及
将所选择的节点的位置变化应用于所述相关的节点。
6.根据权利要求1所述的方法,其中所述方法还包括:
将第一颜色分配给第一节点;
将所述第一颜色分配给与所述第一节点相关联的第一组键;
将第二颜色分配给第二节点;以及
将所述第二颜色分配给与所述第二节点相关联的第二组键。
7.根据权利要求1所述的方法,其中所述方法还包括:
识别所述用户当前工作所处于的第一模式,所述第一模式为IK模式或FK模式;
找到设置为所述第一模式的节点;
当所述用户处于所述第一模式时,允许设置为所述第一模式的节点可见且能被所述用户选择;
识别所述用户当前工作未处于的第二模式,如果所述第一模式是FK模式,则所述第二模式是IK模式,或者如果所述第一模式是IK模式,则所述第二模式是FK模式;以及
当所述用户处于所述第一模式时,允许设置为所述第二模式的节点可见但不能被所述用户选择。
8.一种系统,包括:
处理器;以及
耦合到所述处理器的存储器,所述存储器存储指令,所述指令能由所述处理器执行以执行用于在3D环境中监测用户活动并管理控制器的方法,所述方法包括:
监测与3D环境中的角色装配相关联的用户活动,所述用户活动由动画曲线数据的变化来指示;
检测所述用户活动的变化;
识别与所述用户活动的变化相关联的节点,其中所述节点是在3D环境的角色装配中由用户操控的控制器;以及
调整所述节点,使得所述节点与所述用户活动的变化相匹配;
所述方法还包括:
跟踪处于不活动运动学模式下的控制器和处于当前活动运动学模式下的控制器的位置,以及
更新处于不活动运动学模式下的控制器的位置,以匹配处于当前活动运动学模式下的控制器的位置。
9.根据权利要求8所述的系统,其中所检测到的用户活动的变化是所述用户使用工具,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点包括:
确定所述用户当前所使用的工具;
确定所识别的节点中所述用户当前选择的节点;
将当前选择的节点设置为适合于当前使用的工具的运动学模式;
找到与当前选择的节点相关的节点;以及
将所述相关的节点设置为适合于当前使用的工具的运动学模式。
10.根据权利要求8所述的系统,其中所检测到的用户活动的变化是所述用户操控键,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点包括:
确定所识别的节点中所述用户当前选择的节点;
检测所述用户对键的操控,其中对所述键的操控与当前选择的节点的位置变化相对应;
收集所选择的节点的位置数据;
使用所收集的位置数据,确定与对所述键的操控相对应的所选择的节点的新位置;
找到与当前选择的节点相关的节点;以及
将所选择的节点的位置变化应用于所述相关的节点。
11.根据权利要求8所述的系统,其中所检测到的用户活动的变化是所述用户为所选择的节点选择模式,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点包括:
确定所识别的节点中所述用户当前选择的节点;
确定当前选择的节点的模式;
找到与当前选择的节点相关的节点;以及
将所述相关的节点设置为当前选择的节点的模式。
12.根据权利要求8所述的系统,其中所检测到的用户活动的变化是所述用户改变所选择的节点的位置,并且其中,识别与所述用户活动的变化相关联的节点并调整所述节点包括:
确定所识别的节点中所述用户当前选择的节点;
检测当前选择的节点的位置变化;
收集所选择的节点的位置数据;
使用所收集的位置数据,确定与所述位置变化相对应的所选择的节点的新位置;
找到与当前选择的节点相关的节点;以及
将所选择的节点的位置变化应用于所述相关的节点。
13.根据权利要求8所述的系统,其中由所述系统执行的方法还包括:
将第一颜色分配给第一节点;
将所述第一颜色分配给与所述第一节点相关联的第一组键;
将第二颜色分配给第二节点;以及
将所述第二颜色分配给与所述第二节点相关联的第二组键。
14.根据权利要求8所述的系统,其中由所述系统执行的方法还包括:
识别所述用户当前工作所处于的第一模式,所述第一模式为IK模式或FK模式;
找到设置为所述第一模式的节点;
当所述用户处于所述第一模式时,允许设置为所述第一模式的节点可见且能被所述用户选择;
识别所述用户当前工作未处于的第二模式,如果所述第一模式是FK模式,则所述第二模式是IK模式,或者如果所述第一模式是IK模式,则所述第二模式是FK模式;以及
当所述用户处于所述第一模式时,允许设置为所述第二模式的节点可见但不能被所述用户选择。
15.一种非暂时性计算机可读存储介质,在其上存储有计算机可执行指令,当由处理器执行时,所述计算机可执行指令执行用于在3D环境中监测用户活动并管理控制器的、计算机实施的方法,所述方法包括:
接收用户输入,所述用户输入的形式是与3D环境中的角色装配相关联的用户活动;
监测所述用户活动,所述用户活动由动画曲线数据的变化来指示;
检测所述用户活动的变化;
识别与所述用户活动的变化相关联的节点,其中所述节点是在3D环境的角色装配中由用户操控的控制器;以及
调整所述节点,使得所述节点与所述用户活动的变化相匹配;
所述方法还包括:
跟踪处于不活动运动学模式下的控制器和处于当前活动运动学模式下的控制器的位置,以及
更新处于不活动运动学模式下的控制器的位置,以匹配处于当前活动运动学模式下的控制器的位置。
CN201810841251.0A 2018-04-16 2018-07-27 在3d图形中监测用户活动并管理控制器的方法和系统 Active CN110384922B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/954,240 US20190318523A1 (en) 2018-04-16 2018-04-16 Methods and Systems for Monitoring User Activity and Managing Controllers in 3-D Graphics
US15/954,240 2018-04-16

Publications (2)

Publication Number Publication Date
CN110384922A CN110384922A (zh) 2019-10-29
CN110384922B true CN110384922B (zh) 2023-05-23

Family

ID=68161984

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810841251.0A Active CN110384922B (zh) 2018-04-16 2018-07-27 在3d图形中监测用户活动并管理控制器的方法和系统

Country Status (2)

Country Link
US (1) US20190318523A1 (zh)
CN (1) CN110384922B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10510186B2 (en) 2017-12-22 2019-12-17 Adobe Inc. Digital media environment for intuitive modifications of digital graphics
US10388045B2 (en) 2018-01-04 2019-08-20 Adobe Inc. Generating a triangle mesh for an image represented by curves
US10832446B2 (en) * 2019-01-07 2020-11-10 Adobe Inc. Bone handle generation
US11068325B2 (en) * 2019-04-03 2021-07-20 Dreamworks Animation Llc Extensible command pattern
US10943375B2 (en) 2019-04-17 2021-03-09 Adobe Inc. Multi-state vector graphics
US11631207B2 (en) 2021-09-09 2023-04-18 Adobe Inc. Vector object stylization from raster objects

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297335A (ja) * 2000-04-14 2001-10-26 Sony Corp 3次元アニメーションのインタラクション動作記述方法
JP2003162735A (ja) * 2001-11-27 2003-06-06 Lexer Research Inc オブジェクト変化制御データ、情報処理装置、サーバ装置及びプログラム
JP2007038010A (ja) * 2005-08-02 2007-02-15 Nhn Corp ゲームキャラクターアニメーションの実現システム及び実現方法並びに製作方法
CN101320481A (zh) * 2007-09-21 2008-12-10 上海幻维数码创意科技有限公司 基于动画装配技术的角色动画制作方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6806879B2 (en) * 2001-10-17 2004-10-19 Avid Technology, Inc. Manipulation of motion data in an animation editing system
GB2410408A (en) * 2004-01-20 2005-07-27 Autodesk Canada Inc Changing time value of key frames
US8315450B2 (en) * 2004-11-24 2012-11-20 Wisconsin Alumni Research Foundation Method and system for display of medical image data
US20060274070A1 (en) * 2005-04-19 2006-12-07 Herman Daniel L Techniques and workflows for computer graphics animation system
US7782324B2 (en) * 2005-11-23 2010-08-24 Dreamworks Animation Llc Non-hierarchical unchained kinematic rigging technique and system for animation
US8508537B2 (en) * 2008-11-17 2013-08-13 Disney Enterprises, Inc. System and method for dependency graph evaluation for animation
US9183658B2 (en) * 2011-11-14 2015-11-10 Microsoft Technology Licensing, Llc Animation creation and management in presentation application programs
US9305386B2 (en) * 2012-02-17 2016-04-05 Autodesk, Inc. Editable motion trajectories
US9183659B2 (en) * 2013-03-15 2015-11-10 Dreamworks Animation Llc Search-based matching for multiple parameter sets
US9754398B1 (en) * 2014-03-24 2017-09-05 Amazon Technologies, Inc. Animation curve reduction for mobile application user interface objects
US20160019708A1 (en) * 2014-07-17 2016-01-21 Crayola, Llc Armature and Character Template for Motion Animation Sequence Generation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001297335A (ja) * 2000-04-14 2001-10-26 Sony Corp 3次元アニメーションのインタラクション動作記述方法
JP2003162735A (ja) * 2001-11-27 2003-06-06 Lexer Research Inc オブジェクト変化制御データ、情報処理装置、サーバ装置及びプログラム
JP2007038010A (ja) * 2005-08-02 2007-02-15 Nhn Corp ゲームキャラクターアニメーションの実現システム及び実現方法並びに製作方法
CN101320481A (zh) * 2007-09-21 2008-12-10 上海幻维数码创意科技有限公司 基于动画装配技术的角色动画制作方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
三维动画制作中角色装配技术与角色动作规划;李文莉;《民营科技》;20101120(第11期);全文 *

Also Published As

Publication number Publication date
US20190318523A1 (en) 2019-10-17
CN110384922A (zh) 2019-10-29

Similar Documents

Publication Publication Date Title
CN110384922B (zh) 在3d图形中监测用户活动并管理控制器的方法和系统
CN109605366B (zh) 机器人图形化编程交互系统及机器人
US11221750B2 (en) Manipulating 3D virtual objects using hand-held controllers
KR100856219B1 (ko) 애니메이션 생성 프로그램을 저장한 컴퓨터 판독가능한 매체
EP3759692B1 (en) Automatic rig creation process
JP7109171B2 (ja) 分解立体図の生成および表示に関するコンピュータで実行される方法
Kang et al. Instant 3D design concept generation and visualization by real-time hand gesture recognition
WO2008103775A2 (en) System and method for interactive masking and modifying of 3d objects
TWI591581B (zh) 三維物體建模方法和利用其的電腦程式被記錄的媒體
CN112927331B (zh) 角色模型的动画生成方法和装置、存储介质及电子设备
WO2005114640A1 (en) Patch picking methods and apparatus
JP2019121387A (ja) 3dオブジェクトの設計のための描画平面を定義するための方法
JP7475120B2 (ja) 回転を少なくとも含む動きを生成するための方法
JP3369734B2 (ja) 3次元計算機支援設計装置及び方法
US20130235043A1 (en) Systems and Methods for Creating, Displaying, and Using Hierarchical Objects with Rigid Bodies
Leon-Garza et al. A fuzzy logic based system for cloud-based building information modelling rendering optimization in augmented reality
CN112612463A (zh) 一种图形化编程控制方法、系统及装置
JPH1166351A (ja) 3次元仮想空間内部におけるオブジェクト動作制御方法および装置とオブジェクト動作制御プログラムを記録した記録媒体
Casti et al. CageLab: an Interactive Tool for Cage-Based Deformations.
Savov et al. Constructing Building Layouts and Mass Models with Hand Gestures in Multiple Mixed Reality Modes
KR101420818B1 (ko) 애니메이션 오브젝트의 관절 제어를 통한 3차원 애니메이션 구현 방법, 이를 수행하는 3차원 애니메이션 구현 장치 및 이를 저장한 기록매체
CN104574485A (zh) 基于手持设备的医学图像重建的控制方法及控制系统
JP2014522541A (ja) ムーブイット:再構成可能な物理的コンピューティングのための監視、操作、視覚化、編集統合ツールキット
JP2012150578A (ja) 用例に基づく効率的なモーションデータベースのスタイリング
CN115439625B (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
CB02 Change of applicant information

Address after: 519000 Rooms 102, 202, 302, 402, 327, 102, 202, 329, 302, 325 Qiandao Ring Road, Tangjiawan Town, High tech Zone, Zhuhai, Guangdong

Applicant after: Zhuhai Jinshan Digital Network Technology Co.,Ltd.

Address before: Room 101, No. 325 Qiandao Ring Road, Tangjiawan Town, High tech Zone, Zhuhai City, Guangdong Province, 519015

Applicant before: ZHUHAI KINGSOFT ONLINE GAME TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant