CN120188198A - 动态改变虚拟体验中的化身身体 - Google Patents

动态改变虚拟体验中的化身身体 Download PDF

Info

Publication number
CN120188198A
CN120188198A CN202480004666.6A CN202480004666A CN120188198A CN 120188198 A CN120188198 A CN 120188198A CN 202480004666 A CN202480004666 A CN 202480004666A CN 120188198 A CN120188198 A CN 120188198A
Authority
CN
China
Prior art keywords
avatar
cage
avatar body
virtual experience
computer
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.)
Pending
Application number
CN202480004666.6A
Other languages
English (en)
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.)
Robles Corp
Original Assignee
Robles Corp
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 Robles Corp filed Critical Robles Corp
Publication of CN120188198A publication Critical patent/CN120188198A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating three-dimensional [3D] models or images for computer graphics
    • G06T19/20Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/20Three-dimensional [3D] animation
    • G06T13/40Three-dimensional [3D] animation of characters, e.g. humans, animals or virtual beings
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/44Morphing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2021Shape modification

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

一些实施方式涉及在与化身身体相关联的化身参与虚拟体验的运行时间期间,动态改变化身身体的方法、系统和计算机可读介质。在一些实施方式中,该方法包括识别具有第一身体笼的第一化身身体,识别具有目标身体笼的目标化身身体,以及在第一身体笼和目标身体笼之间执行插值,以获得与第二化身身体相对应的第二身体笼,从而提供第一化身身体到第二化身身体的变换。化身身体也可以在配置环境中改变。改变化身身体可以涉及在一对笼的身体笼之间进行插值,或者通过直接操作化身身体的身体笼。

Description

动态改变虚拟体验中的化身身体
相关申请的交叉引用
本申请要求于2023年8月14日提交的申请号为63/532,556、发明名称为“DYNAMICALLY CHANGING AVATAR BODIES IN A VIRTUAL EXPERIENCE”的美国临时申请的优先权,其内容全部并入本文。
技术领域
本公开总体上涉及计算机图形学,更具体地但不排他地,涉及用于动态改变三维(three-dimensional,3D)虚拟环境中的化身身体(包括该化身身体所穿戴的服饰的表示)的方法、系统和计算机可读介质。
背景技术
多用户电子游戏或其他类型的虚拟体验环境可能涉及使用化身,其中,化身表示虚拟体验中的用户。不同的三维(3D)化身在几何形态/形状上各不相同。例如,化身可以有不同的体形(例如,高、矮、健壮、瘦等),可以有不同的类型(例如,男性、女性、人类、动物、外星人等),可以有任意数量和类型的肢体等。化身在所穿戴的多个服装和/或配饰(例如,穿在躯干上的衬衫、穿在衬衫上的夹克、戴在夹克外的围巾、戴在头上的帽子等)方面可以进行自定义。
当用户希望在参与虚拟体验或其他类型的三维环境时改变各自的化身身体和/或化身身体所穿戴的服装(包括配饰)的一些视觉方面时,很难以计算效率高的方式获得令人满意的结果。
根据上述情况设想了一些实施方式。
本文提供的背景技术描述旨在介绍本公开的背景。当前发明人所作工作,就其在本背景部分所描述的内容而言,以及说明书中在申请时可能不构成现有技术的各个方面,无论明示或默示,均不得被视为本公开的现有技术。
发明内容
本公开的实施方式涉及用于动态改变用户化身的视觉方面(例如,用户参与虚拟体验时与用户相关联的化身的视觉外观)的技术。整个(原始)化身身体可以改变或以其他方式整体变换为新(不同的)化身身体,也可以只选择性地改变原始化身身体的区域/部分(例如,仅头部或其他身体部位),而原始化身身体的其他区域/部分保持不变。各种技术还提供了通过使用有效管理计算资源的技术,近实时地实现动态变化的各方面(例如蒙皮形变和面部动作编码系统(facial action coding system,FACS)姿势形变)的具体方法。
一个或多个计算机的系统可以用于执行特定操作或动作,因为系统上安装有软件、固件、硬件、或它们的组合,在运行中使系统执行动作。一个或多个计算机程序可以用于执行特定的操作或动作,因为上述计算机程序包括指令,上述指令在由数据处理装置执行时使装置执行动作。
根据一个方面,提供了一种用于修改三维(3D)化身身体的计算机实现的方法,该计算机实现的方法包括:识别具有第一身体笼的第一化身身体;识别具有目标身体笼的目标化身身体;以及在第一身体笼和目标身体笼之间执行插值,以获得与第二化身身体相对应的第二身体笼,从而提供第一化身身体到第二化身身体的变换。
本文描述了计算机实现的方法的各种实施方式。
在一些实施方式中,执行插值包括执行插值以生成与目标身体笼完全匹配的第二身体笼,从而提供完全变换。
在一些实施方式中,执行插值包括将第一化身身体变换为第二化身身体,第二化身身体是第一化身身体与目标化身身体之间的混合体,从而提供部分变换。
在一些实施方式中,执行插值包括使小于第一化身身体的整体的第一化身身体的一部分形变。
在一些实施方式中,使小于第一化身身体的整体的第一化身身体的部分形变包括使第一化身身体的部分形变,以执行第一化身身体的该部分的部分变换。
在一些实施方式中,第一化身身体是虚拟体验的一部分,插值在化身参与虚拟体验时执行,并从虚拟体验中的多个目标化身身体中选择目标化身身体。
在一些实施方式中,插值在配置环境中执行,并从配置环境中的库中的多个目标化身身体中选择目标化身身体。
在一些实施方式中,配置环境包括变换工具,变换工具使得用户能够控制第一化身身体的变换的量,以获得第二化身身体,并且插值基于变换的量执行。
在一些实施方式中,该计算机实现的方法还包括识别第一化身身体的绑定,绑定包括识别第一化身身体的骨架和第一化身身体的蒙皮;在执行插值之后,更新第一化身身体的绑定以对应第二身体笼;以及通过移动更新的绑定的骨架并变形更新的绑定的蒙皮,使第一化身身体动画化。
在一些实施方式中,移动更新的绑定的骨架并变形更新的绑定的蒙皮包括:基于确定受第一化身身体的骨架中的骨骼影响的更新的绑定的蒙皮的区域,重用来自第一化身身体的蒙皮的蒙皮权重。
根据另一方面,提供了一种用于修改三维(3D)化身身体的计算机实现的方法,该计算机实现的方法包括:识别具有相应第一身体笼的第一化身身体;以及执行对第一身体笼的操作,以生成与第二化身身体相对应的第二身体笼,从而提供第一化身身体到第二化身身体的变换,其中,操作包括重新定位第一身体笼的各部分。
本文描述了计算机实现的方法的各种实施方式。
在一些实施方式中,操作在配置环境中执行,并且其中,配置环境包括变换工具,变换工具使得用户能够控制第一身体笼的操作的方面,以获得第二身体笼,并且其中,操作基于操作的方面执行。
在一些实施方式中,该计算机实现的方法还包括识别第一化身身体的绑定,绑定包括识别第一化身身体的骨架和第一化身身体的蒙皮;在执行操作之后,更新第一化身身体的绑定以对应第二身体笼;以及通过移动更新的绑定的骨架并变形更新的绑定的蒙皮,使第一化身身体动画化。
在一些实施方式中,计算机实现的方法还包括移动更新的绑定的骨架并变形更新的绑定的蒙皮包括:基于确定受第一化身身体的骨架中的骨骼影响的更新的绑定的蒙皮的区域,重用来自第一化身身体的蒙皮的蒙皮权重。
在一些实施方式中,将第一化身身体变换为第二化身身体包括在第一身体笼和第二身体笼之间执行插值。
在一些实施方式中,将第一化身身体变换为第二化身身体包括使小于第一化身身体的整体的第一化身身体的一部分形变。
根据另一方面,公开了一种系统,包括:存储器,其上存储有指令;以及处理设备,耦合到存储器,处理设备用于访问存储器,其中,在由处理设备执行时,指令使该处理设备执行包括以下的操作:识别具有第一身体笼的第一化身身体;识别具有目标身体笼的目标化身身体;以及在第一身体笼和目标身体笼之间执行插值,以获得与第二化身身体相对应的第二身体笼,从而提供第一化身身体到第二化身身体的变换。
本文描述了系统的各种实施方式。
在一些实施方式中,执行插值包括执行插值以生成与目标身体笼完全匹配的第二身体笼,从而提供完全变换。
在一些实施方式中,执行插值包括将第一化身身体变换为第二化身身体,第二化身身体是第一化身身体与目标化身身体之间的混合体,从而提供部分变换。
在一些实施方式中,执行插值包括使小于第一化身身体的整体的第一化身身体的一部分形变。
根据又一方面,系统、方法、和非暂时性计算机可读介质的部分、特征、和实施细节可以组合以形成其他方面,包括但不限于省略和/或修改各个组件或特征的一些或部分、包括附加组件或特征、和/或其他修改的一些方面,所有这些修改都在本公开的范围内。
附图说明
图1是根据一些实施方式的包括可以支持其上适配有服装的3D化身的3D环境平台的示例系统架构的图。
图2示出了根据一些实施方式的示例身体笼。
图3示出了根据一些实施方式的另一示例身体笼。
图4示出了根据一些实施方式的分组为相应身体部位的身体笼的各部分的示例。
图5示出了根据一些实施方式的在身体笼上变形的服装层的示例。
图6示出了根据一些实施方式的基于图5的服装层和身体笼的各部分形成的外笼的示例。
图7示出了根据一些实施方式的用以获得新身体笼的两个身体笼之间的插值的示例。
图8示出了根据一些实施方式的生成新身体笼的示例。
图9示出了根据一些实施方式的虚拟体验期间化身身体的变换的示例。
图10示出了根据一些实施方式的虚拟体验期间化身身体的变换的另一示例。
图11示出了根据一些实施方式的虚拟体验期间化身身体的变换的另一示例。
图12示出了根据一些实施方式的配置环境中的化身的变换的示例。
图13示出了根据一些实施方式的虚拟体验中的化身身体的分层服装的示例。
图14至图17示出了根据一些实施方式的化身的变换和动画化的示例。
图18是示出根据一些实施方式的用于改变化身身体的计算机实现的方法的流程图。
图19是示出根据一些实施方式的用于改变三维(3D)化身身体的另一计算机实现的方法的流程图。
图20是示出根据一些实施方式的用于执行蒙皮形变的计算机实现的方法的流程图。
图21是示出用于执行面部动作编码系统(FACS)姿势形变的计算机实现的方法的流程图。
图22是示出根据一些实施方式的示例计算设备的框图。
具体实施方式
在下面的具体实施方式中,参照构成其一部分的附图。在附图中,除非上下文另有规定,否则相似的符号通常标识相似的组件。在具体实施方式、附图、以及权利要求中描述的说明性实施方式并不意味着是限制性的。在不脱离本文呈现的主题的精神或范围的情况下,可以使用其他实施方式,并且可以进行其他改变。如本文一般描述的并在附图中示出的本公开的各方面可以以多种不同的配置来排列、替换、组合、分离、以及设计,所有这些都纳入本文的考虑范围。
说明书中对“一个实施方式”、“实施方式”、“一个示例实施方式”等的提及表示所描述的实施方式可以包括特定的特征、结构、或特性,但是每个实施方式不一定包括该特定的特征、结构、或特性。此外,这些短语不一定指同一实施方式。此外,当结合实施方式描述特定特征、结构、或特性时,无论是否明确描述,这样的特征、结构、或特性都可以结合其他实施方式来实现。
本公开描述了用于动态改变用户化身的视觉方面(例如,用户参与虚拟体验时与用户相关联的化身的视觉外观)的技术。例如,在参与虚拟体验时,用户可以将化身从人形化身身体改变为动物(非人形)化身身体或其他不同的化身身体。整个(原始)化身身体可以改变或以其他方式整体变换为新(不同的)化身身体,也可以只选择性地改变原始化身身体的区域/部分(例如,仅头部或其他身体部位),而原始化身身体的其他区域/部分保持不变。
从原始化身身体到目标化身身体的变换可以是完全变换,其中,原始(第一)化身身体完全变换为目标化身身体,该目标化身身体成为新(第二)化身身体。变换也可以是部分变换,其中,新(第二)化身身体是原始(第一)化身身体和目标化身身体之间的结合体(mixture)或其他类型的混合(blending)。
根据各种实施方式,可以通过在原始(第一)化身身体的身体笼和目标化身身体的身体笼之间执行插值,获得新化身身体,使得获得的新化身身体具有自己的身体笼,该身体笼是从原始化身身体和目标化身身体的身体笼插值/生成的。
化身身体的动态编辑/改变可以在化身上没有服装时执行,和/或可以在化身身体上有一层或多层服装时执行。当化身身体上有服装时,动态改变化身身体(例如,改变身体的形状)也会引起化身所穿戴的一层或多层服装的相应改变。
例如,原始化身可以是头戴棒球帽的人形化身,从而使棒球帽呈现圆形外观。如果用户将人形化身的头部改变为外星人头部(例如,具有锥形头部的外星人化身),则棒球帽也可以相应地动态变形,以便从原始的圆形外观改变为与外星人(目标)化身的锥形头部相匹配的更尖的外观。动态变形化身的服装(包括配饰)也可以基于笼,这将在下文中解释。
根据各种实施方式,在参与虚拟体验的运行时间期间,用户可以选择目标化身身体及其服装。例如,用户可以通过选择(例如,点击)虚拟体验中的另一个化身、通过从库中选择目标化身身体、通过直接操作原始(当前)化身身体(例如,通过改变该身体笼)而无需在虚拟体验中或从库中选择目标化身身体等,选择目标化身身体。可以在用户界面上提供诸如滑动条的调整工具,使得用户能够控制两个化身身体之间的变换量。
在一些实施方式中,调整工具和/或一些其他变换工具可以用于以直接的方式动态改变/变换当前化身身体,而无需涉及两个化身身体之间的插值。也就是说,并且作为示例,用户可以使用变换工具将化身的头部的形状从人形头部改变为几何头部(例如,块状)——在一些实施方式中,这种变换可以通过使用变换工具直接改变(例如,移动或其他操作)人形头部的笼的线段和顶点来执行。该技术的应用可以既不需要存在或使用几何头部的身体笼作为参考(目标),也不需要在这种参考身体笼和人形头部的身体笼之间执行插值。因此,该技术可视为一种独立地改变化身外观的“自由形式”方法,其中,外观的改变与任何其他化身无关。
本文描述的用于动态改变化身身体(其上具有或没有服装层)的各种技术均可应用于在虚拟体验中使用的化身。此类虚拟体验在本文中有时会以电子游戏的背景描述。需说明的是,在电子游戏的背景下描述这些实施方式仅出于提供示例和说明的便利性目的。
本文描述的技术可以用于三维(3D)环境中的其他类型的虚拟体验,这些虚拟体验不一定涉及具有由化身表示的一个或多个玩家的电子游戏。虚拟体验的示例可以包括虚拟现实(virtual reality,VR)会议、3D会话(例如,涉及3D化身的在线讲座或其他类型的演示)、增强现实(augmented reality,AR)会话,或者在一个或多个用户在3D环境中由一个或多个3D化身表示的其他类型的3D环境中。
对于分层服装,可以将自动笼到笼适配(cage-to-cage fitting)技术用于3D化身。该技术允许将任意身体几何形态与任意服装几何形态适配,包括使得各层服装与下层服装适配,从而提供自定义,不受预定义几何形态限制,也不需要复杂的计算来使服装与虚拟化身的任意体形或与其他服装物品兼容。
笼到笼适配还使用游戏平台或游戏软件(或用于提供3D环境的其他虚拟体验平台/软件)所采用的各种技术执行,而无需化身创建者(也称为化身身体创建者或身体创建者)或服装物品创建者执行复杂的计算。本文使用的术语“服装(clothing)”或“一件服装(piece of clothing)”或其他类似术语应理解为包括服装和配饰的图形表示,以及与化身笼的特定部分相关的可以放置在化身上的任何其他物品。
在游戏或其他虚拟体验会话的运行时间期间,玩家/用户访问身体库以选择特定化身身体,并访问服装库以选择要放置在选择的身体上的服装。呈现化身的3D虚拟环境平台采用笼到笼适配技术(通过自动确定合适的变形)调整一件服装,以适配身体的形状,从而自动将该件服装适配到身体(以及化身可能穿戴的任何中间层)上。
当一件服装适配到虚拟化身的身体和/或下层服装上时,可以执行本文所述的技术,以通过变形或适配使该件服装在诸如尺寸(例如,协调性)、形状等方面更精确地与化身适配。用户可以进一步选择附加服装适配到下层服装上,其中,附加服装被变形以匹配下层服装的几何形态。
本文描述的各实施方式基于“笼(cage)”和“网格(mesh)”的概念。身体网格(或渲染网格)是化身的实际可见的几何形态。身体网格包括例如手臂、腿、躯干、头部等身体部位的图形表示,并且可以具有任意形状、大小、以及几何拓扑。类似地,服装网格(或渲染网格)可以是以图形表示一件服装(例如衬衫、裤子、帽子、鞋子等)或其部分的任意网格。
相比之下,笼表示围绕化身身体的特征点的包络(envelope),该包络比身体网格更简单,并且与身体网格的相应顶点对应性较弱。如下面将进一步详细阐述的,笼不仅可以用于表示化身身体上的特征点集合,还可以用于表示一件服装上的特征点集合。
在一些实施方式中,有通过扩展分层服装系统的分层服装框架实现的动态身体部位修改机制,允许使用用户指定的笼使化身身体部位变形。这一核心功能可以应用于至少两种技术中。第一,可以有用于工作室应用的插件,使得用户能够例如通过拨动/调整在两个身体形状之间插值的滑块,基于一个化身的整体身体形状改变另一化身的整体身体形状。第二,可以有虚拟体验,其中,玩家可以通过点击虚拟体验中的其他化身身体部位逐步更新化身身体。
用于动态改变化身的一些现有技术可以包括线性混合蒙皮(linear blendskinning,LBS)、面部动作编码系统(FACS)、以及仿射蒙皮(affine skinning)技术。这些技术作为当前方法的基础,包括蒙皮形变和面部动作编码系统(FACS)姿势形变。
在线性混合蒙皮(LBS)中,在顶点着色器中通过计算第i个变形位置p′i。在该等式中,蒙皮权重wi,j和顶点绑定(bind)位置pi是常量,并缓存在GPU中。如果使用的骨骼少于4个,则wi,j可以为0。如下在CPU上计算3x4骨骼变换Mj,并逐帧复制到GPU:
逆绑定变换是缓存的常量,而姿势变换Pj每帧更新。全局变换Bj和Pj从局部变换LBj和LPj的层次(称为骨架)如下计算得出:Bj=Bj′·LB、Pj=Pj′·LBj·LPj,其中,j′是第j个节点的父部分或根部分的索引。骨架层次和变换由其他引擎系统(如用于身体的物理引擎或用于动态头部的FACS)提供。这些引擎系统是使化身摆出姿势的动画化的各种来源。
FACS系统为动态头部网格提供LBS数据。蒙皮权重w、骨架层次j′、以及局部绑定变换LBj来自具有网格和控制关节驱动数据(controls-to-joint-driver data)的内容分发网络(content delivery network,CDN)网格数据结构,该控制关节驱动数据是给定网格从FACS控制值到关节位置和旋转的映射。局部姿势变换LPj每帧由3x3旋转矩阵Rj,k和平移矢量Tj,k组成:LPj=Rj,k|Tj,k,其中,欧拉角rj,k和平移矢量tj,k也来自网格数据结构ControlToJointDriver结构,该结构定义网格的映射,该映射将FACS控制值转换为蒙皮的关节位置和旋转。数据结构可以是MxN矩阵,其中,M是FACS数据通道的数量,N是关节变换值的数量。矩阵用于将FACS控制变换为驱动面部骨骼关节的变换值。
旋转在欧拉坐标中进行插值,因此Rj,k是刚性的。如下计算17<=n<=50个形状权重s:s′=applyCorrectives(s,C),其中,applyCorrectives函数基于也来自ControlToJointDriver结构的CustomCorrections参数C,将17个原始FACS姿势权重s扩展至最多50个形状权重s′。对于2个或3个原始FACS权重的选定组合,默认线性平均形状可以替换为针对该组合构建的自定义形状。这用于提升美术控制和变形质量。
此前,绑定变换和姿势变换都是刚性CorrdinateFrame类型。刚性变换(也称为欧几里得变换)是欧几里得空间的几何变换,欧几里得空间的几何变换保留每对点之间的欧几里得距离。此方法曾适用,因为每个数据模型(data model,DM)和FACS变换都是刚性的。了解了这一点,在计算旋转的逆时可以对旋转进行转置。例如在物理更新过程中,当变换求逆是关键问题时,这可能会是显著的优化。但是对于LBS,唯一的求逆作为常量被缓存,因此这种优化对该技术无显著增益。
近似弹性蒙皮是LBS的常见用例,但蒙皮不会刚性变形。弹性变形通常用刚性骨骼变换近似模拟,这在变形由刚性骨骼驱动时是自然的。然而面部肌肉不是刚性的。面部肌肉可以发生剪切和不均匀缩放,因此从物理原因来说无需将面部“骨骼”限制为刚性变换。因为仿射变换是刚性变换的超集,所以可以在不改变现有绑定的情况下使用仿射变换,同时增加灵活度,以便可以在未来绑定中利用。
动态头部的权重图将面部划分为多个区域,为实现17至50个姿势提供必要的自由度。动态头部的姿势变换响应于17个FACS控制来衔接这些区域。如果动态头部的形状发生改变,并且需要维持好的视觉效果,则骨骼变换可能需要发生改变。如果形状变化没有改变顶点的语义,即脸颊顶点不变成鼻子顶点等,则蒙皮权重通常可以重用。
如果重用蒙皮权重,则可以表示出每个骨骼影响的表面区域。还可以注意到,姿势变换会使姿势所影响区域的表面形状相关的方向和量上动画化。这种影响不仅包括其自身的权重,还包括骨骼层次中任何后代骨骼的权重。例如头部关节的影响包括唇部关节的影响等,因为当颈部转动时,唇部关节随颈部转动。此外,因为顶点会影响连接面的形状,所以这些影响集合会扩展一条边。与LBS不同,这些影响权重集合不是标准化的。
对于每个骨骼,蒙皮形变可以包括使用一些线性代数计算最佳适配其受影响的点云的变形的3x4仿射变换。这种校正应用于蒙皮计算中的骨骼变换:其中,校正是矩阵Mj。这种方法可能有效,但是这些技术无意改变蒙皮流程,而是旨在更新绑定。因此,通过骨架计算冒泡D/,并且D/被合并到新的局部绑定变换LB′j中,该变换生成相同的结果:LB′j=Bj -1·Dj·Bj′·LBj。例如,这可以是简单代数运算,用于求解新的局部绑定变换LB′j,新的局部绑定变换与先前的公式产生相同的结果,但是去掉了Mj项。
请注意,在此之后LB′j不再是刚性变换,因此对于任何数据模型骨骼,结果都可以正交归一化,但是对于动态头部,保留全部仿射变换,并且结果得到了显著改善。这使得结果取决于上面讨论的仿射蒙皮变化。
关于FACS姿势形变,本FACS绑定包含许多姿势,并且每个姿势包括头部绑定中的每个关节的局部变换Pj的集合。蒙皮形变技术更新它们的绑定变换LB′j,从而改变这些局部姿势变换的父空间。
仿射校正变换Dj改变所得到的变换Mj的平移,包括其方向和大小,但是仿射校正变换Dj不改变所得到的变换Mj的旋转。为了进一步改善结果,每个姿势、每个关节的旋转rj,k也将被更新。在该过程中,也可以进一步微调每个姿势、每个关节的平移tj,k
在一些实施方式中,可以一次执行一个姿势的微调。首先,根据原始头部形状计算原始LBS变形网格姿势。对于姿势中的每个关节,其蒙皮加权点被投影到姿势网格上最近的点,从而提供一组新的点。这些点表示原始网格上最接近该姿势中该关节的“目的地”的位置。然后可以重用相同的3x4仿射适配函数计算这些点如何在原始形状和修改后的形状之间变换。
在一些实施方式中,提取该变换的刚性组件,并微调该姿势关节的最终平移和旋转。为了最小化欧拉插值的变化,对匹配该旋转的欧拉角进行适当的变化。例如,欧拉旋转可以以无数种方式表达相同的旋转矩阵,因此使用适当的技术来尽可能少地改变原始角度。这些角度通过分解旋转矩阵并逐步插入校正来计算。然后然后x=x1+x2,y=y1+y2,以及z=z1+z2
图1-系统架构
图1是根据一些实施方式的包括可以支持其上适配有服装的3D化身的3D环境平台的示例系统架构的图。图1和其他附图使用类似的附图标记来标识相似的元件。附图标记后的字符,例如“110”,指示正文特指的具有该特定附图标记的元件。正文中不带有字符(例如,“110”)的附图标记指的是附图中带有该附图标记的任何或所有元件(例如,正文中的“110”指的是附图中的附图标记“110a”、“110b”、和/或“110n”)。
系统架构100(本文也称为“系统”)包括在线虚拟体验服务器102、数据存储区120、客户端设备110a、110b和110n(本文中通常称为“客户端设备110”)、以及开发者设备130a和130n(本文中通常称为“开发者设备130”)。虚拟体验服务器102、数据存储区120、客户端设备110、以及开发者设备130通过网络122耦合。在一些实施方式中,客户端设备110和开发者设备130可以指相同或同一类型的设备。
此外,在线虚拟体验服务器102可以包括虚拟体验引擎104、一个或多个虚拟体验106、以及图形引擎108等。在一些实施方式中,图形引擎108可以是允许在线虚拟体验服务器102提供图形和动画功能的系统、应用、或模块。在一些实施方式中,图形引擎108和/或虚拟体验引擎104可以执行下面结合图18至图21中所示的流程图描述的一个或多个操作。客户端设备110可以包括虚拟体验应用112和输入/输出(input/output,I/O)接口114(例如,输入/输出设备)。输入/输出设备可以包括麦克风、扬声器、耳机、显示设备、鼠标、键盘、游戏控制器、触摸屏、虚拟现实控制台等中的一个或多个。
开发者设备130可以包括虚拟体验应用132和输入/输出(I/O)接口134(例如,输入/输出设备)。输入/输出设备可以包括麦克风、扬声器、耳机、显示设备、鼠标、键盘、游戏控制器、触摸屏、虚拟现实控制台等中的一个或多个。
提供系统架构100用于说明。在不同的实施方式中,系统架构100可以包括以与图1所示相同或不同的方式配置的相同、更少、更多、或不同的元件。
在一些实施方式中,网络122可以包括公共网络(例如,互联网)、专用网络(例如,局域网(local area network,LAN)或广域网(wide area network,WAN))、有线网络(例如,以太网)、无线网络(例如,802.11网络、网络、或无线LAN(wireless LAN,WLAN))、蜂窝网络(例如,5G网络、长期演进(long term evolution,LTE)网络等)、路由器、集线器、交换机、服务器计算机、或其组合。
在一些实施方式中,数据存储区120可以是非暂时性计算机可读存储器(例如,随机存取存储器)、高速缓存、驱动器(例如,硬盘驱动器)、闪存驱动器、数据库系统、或能够存储数据的另一类型的组件或设备。数据存储区120还可以包括也可以多个存储组件(例如,多个驱动器或多个数据库),这些存储组件也可以跨多个计算设备(例如,多个服务器计算机)。在一些实施方式中,数据存储区120可以包括基于云的存储。
在一些实施方式中,在线虚拟体验服务器102可以包括具有一个或多个计算设备的服务器(例如,云计算系统、机架式服务器、服务器计算机、物理服务器集群等)。在一些实施方式中,在线虚拟体验服务器102可以是独立的系统,可以包括多个服务器,或者是另一系统或者服务器的一部分。
在一些实施方式中,在线虚拟体验服务器102可以包括一个或多个计算设备(例如,机架式服务器、路由器计算机、服务器计算机、个人计算机、大型计算机、膝上型计算机、平板计算机、台式计算机等)、数据存储区(例如,硬盘、存储器、数据库)、网络、软件组件、和/或硬件组件,这些组件可用于在在线虚拟体验服务器102上执行操作并向用户提供对在线虚拟体验服务器102的访问。在线虚拟体验服务器102还可以包括可用于向用户提供对由在线虚拟体验服务器102提供的内容的访问权限的网站(例如,网页)或应用后端软件。例如,用户可以使用客户端设备110上的虚拟体验应用112来访问在线虚拟体验服务器102。
在一些实施方式中,虚拟体验会话数据通过在线虚拟体验服务器102、虚拟体验应用112、和/或虚拟体验应用132生成,并存储在数据存储区120中。经虚拟体验参与者的许可,虚拟体验会话数据可以包括相关的元数据,例如,虚拟体验标识符;与参与者相关联的设备数据;参与者的人群信息;虚拟体验会话标识符;聊天记录;每个参与者的会话开始时间、会话结束时间、和会话持续时间;虚拟体验环境内的参与者化身的相对位置;一个或多个参与者在虚拟体验中的购买物;参与者使用的配饰等。
在一些实施方式中,在线虚拟体验服务器102可以是一种提供用户间连接的的社交网络,或一种允许用户(例如,最终用户或消费者)与在线虚拟体验服务器102上的其他用户通信的用户生成内容系统,其中,通信可以包括语音聊天(例如,同步和/或异步语音通信)、视频聊天(例如,同步和/或异步视频通信)、或文本聊天(例如,1:1和/或N:N同步和/或异步基于文本的通信)。一些或所有用户通信的记录可以存储在数据存储区120或虚拟体验106中。数据存储区120可以用于存储参与者之间交换的聊天记录(文本、音频、图像等),需要玩家的适当许可且符合适用的法规。
在一些实施方式中,聊天记录通过虚拟体验应用112和/或虚拟体验应用132生成,并存储在数据存储区120中。聊天记录可以包括聊天内容和相关元数据,例如,具有相应发送者和接收者的每个消息的聊天文本内容;消息格式(例如,粗体、斜体、大声等);消息时间戳;虚拟体验环境内的参与者化身的相对位置、虚拟体验参与者使用的配饰等。在一些实施方式中,聊天记录可以包括多种语言的内容,并且虚拟体验的不同会话的不同语言的消息可以存储在数据存储区120中。
在一些实施方式中,聊天记录可以基于时间戳以参与者之间的对话的形式存储。在一些实施方式中,可以基于消息的发起者存储聊天记录。
在本公开的一些实施方式中,“用户”可以表示为单个个体。本公开的其他实施方式涵盖的“用户”(例如,创建性用户)是由一组用户或自动化源控制的实体。例如,在用户生成内容系统中作为社区或组联合起来的一组个体用户可以认为是“用户”。
在一些实施方式中,在线虚拟体验服务器102可以是虚拟游戏服务器。例如,游戏服务器可以向用户社区提供单人或多人游戏,该用户社区可以访问(本文作为“系统”)包括在线虚拟体验服务器102、数据存储区120、客户端,或通过网络122使用客户端设备110与虚拟体验进行交互。在一些实施方式中,虚拟体验(包括虚拟领域或世界、虚拟游戏、其他计算机模拟环境)可以是例如二维(two-dimensional,2D)虚拟体验、三维(3D)虚拟体验(例如,3D用户生成的虚拟体验)、虚拟现实(VR)体验、或增强现实(AR)体验。在一些实施方式中,用户可以参与与其他用户的交互(例如游戏)。在一些实施方式中,可以与虚拟体验的其他用户实时体验虚拟体验。
在一些实施方式中,虚拟体验参与(engagement)可以指一个或多个参与者在虚拟体验(例如,106)中使用客户端设备(例如,110)进行交互,或者在客户端设备110的显示器或其他输出设备(例如,114)上呈现交互。例如,虚拟体验参与可以包括在虚拟体验中与一个或多个参与者进行交互,或在客户端设备的显示器上呈现交互。
在一些实施方式中,虚拟体验106可以包括电子文件,该电子文件可以使用用于向实体呈现虚拟体验内容(例如,数字媒体项目)的软件、固件、或硬件来执行或加载。在一些实施方式中,可以执行虚拟体验应用112并结合虚拟体验引擎104渲染虚拟体验106。在一些实施方式中,虚拟体验106可以具有一组共同的规则或共同的目标,并且虚拟体验106的环境共享这组共同的规则或共同的目标。在一些实施方式中,不同的虚拟体验可以具有彼此不同的规则或目标。
在一些实施方式中,虚拟体验可以有一个或多个环境(在本文也称为“虚拟体验环境”或“虚拟环境”),其中,多个环境可以连接。环境的示例可以是三维(3D)环境。虚拟体验106的一个或多个环境在本文中可以统称为“世界”、“虚拟体验世界”、“游戏世界”、“虚拟世界”、或“宇宙”。世界的示例可以是虚拟体验106的3D世界。例如,用户可以构建虚拟环境,该虚拟环境可以连接到另一用户创建的另一虚拟环境。虚拟体验的角色可以跨虚拟边界进入相邻的虚拟环境。
可以注意到,3D环境或3D世界使用的图形使用表示虚拟体验内容的几何数据的三维表示(或无论是否使用几何数据的3D表示,至少将虚拟体验内容显示为3D内容)。2D环境或2D世界使用的图形使用表示虚拟体验内容的几何数据的二维表示。
在一些实施方式中,在线虚拟体验服务器102可以托管一个或多个虚拟体验106,并且可以允许用户使用客户端设备110的虚拟体验应用112与虚拟体验106交互。在线虚拟体验服务器102的用户可以玩虚拟体验106、创建虚拟体验106、与虚拟体验106交互、或构建虚拟体验106、与其他用户通信、和/或创建和构建虚拟体验106的对象(例如,在本文也称为“项目”、“虚拟体验对象”、或“虚拟体验项目”)。
例如,在生成用户生成的虚拟项目时,用户可以创建角色、角色的装饰、交互式虚拟体验的一个或多个虚拟环境、或构建虚拟体验106中使用的结构等。在一些实施方式中,用户可以与在线虚拟体验服务器102的其他用户购买、出售、或交易虚拟体验对象,例如平台内货币(例如,虚拟货币)。在一些实施方式中,在线虚拟体验服务器102可以将虚拟体验内容发送到虚拟体验应用(例如,112)。在一些实施方式中,虚拟体验内容(本文也称为“内容”)可以指与在线虚拟体验服务器102或虚拟体验应用相关联的任何数据或软件指令(例如,虚拟体验对象、虚拟体验、用户信息、视频、图像、命令、媒体项目等)。在一些实施方式中,虚拟体验对象(例如,本文也称为“项目”、“对象”、“虚拟对象”、或“虚拟体验项目”)可以指在在线虚拟体验服务器102的虚拟体验106或客户端设备110的虚拟体验应用112中使用、创建、共享、或以其他方式描绘的对象。例如,虚拟体验对象可以包括部件、模型、人物、配饰、工具、武器、服装、建筑物、交通工具、货币、植物群、动物群、上述对象的组件(例如,建筑物的窗户)等。
可以注意到,为了说明,提供了托管虚拟体验106的在线虚拟体验服务器102。在一些实施方式中,在线虚拟体验服务器102可以托管一个或多个媒体项目,上述媒体项目可以包括从一个用户到一个或多个其他用户的通信消息。在用户许可和明确用户同意的情况下,在线虚拟体验服务器102可以分析聊天记录数据,以改进虚拟体验平台。媒体项目可以包括但不限于数字视频、数字电影、数字照片、数字音乐、音频内容、旋律、网站内容、社交媒体更新、电子书、电子杂志、数字报纸、数字有声书、电子期刊、网络博客、简易信息整合(real simple syndication,RSS)提要、电子漫画书、软件应用等。在一些实施方式中,媒体项目可以是电子文件,该电子文件可以使用用于向实体呈现数字媒体项目的软件、固件、或硬件来执行或加载。
在一些实施方式中,虚拟体验106可以与特定用户或特定用户组相关联(例如,私人虚拟体验),或者广泛可用于可访问在线虚拟体验服务器102的用户(例如,公共虚拟体验)。在一些实施方式中,当在线虚拟体验服务器102将一个或多个虚拟体验106与特定用户或用户组相关联时,在线虚拟体验服务器102可以使用用户账户信息(例如,用户账户标识符,诸如用户名和密码)将特定用户与虚拟体验106相关联。
在一些实施方式中,在线虚拟体验服务器102或客户端设备110可以包括虚拟体验引擎104或虚拟体验应用112。在一些实施方式中,虚拟体验引擎104可以用于虚拟体验106的开发或执行。例如,虚拟体验引擎104可以包括用于2D、3D、VR、或AR图形的渲染引擎(“渲染器”)、物理引擎、碰撞检测引擎(和碰撞响应)、声音引擎、脚本功能、动画引擎、人工智能引擎、网络功能、流功能、存储管理功能、线程功能、场景图功能、或动画视频支持、以及其他功能。虚拟体验引擎104的组件可以生成帮助计算和渲染虚拟体验的命令(例如,渲染命令、碰撞命令、物理命令等)。在一些实施方式中,客户端设备110的虚拟体验应用112可以分别独立工作、与在线虚拟体验服务器102的虚拟体验引擎104协作、或两者结合工作。
在一些实施方式中,在线虚拟体验服务器102和客户端设备110都可以执行虚拟体验引擎104/虚拟体验应用112。使用虚拟体验引擎104的在线虚拟体验服务器102可以执行部分或全部虚拟体验引擎功能(例如,生成物理命令、渲染命令等),或者将部分或全部虚拟体验引擎功能分流到客户端设备110的虚拟体验引擎104。在一些实施方式中,每个虚拟体验106在在线虚拟体验服务器102上执行的虚拟体验引擎功能和在客户端设备110上执行的虚拟体验引擎功能之间的比例可以不同。例如,在线虚拟体验服务器102的虚拟体验引擎104可以用于在至少两个虚拟体验对象之间发生碰撞的情况下生成物理命令,而附加虚拟体验引擎功能(例如,生成渲染命令)可以分流到客户端设备110。在一些实施方式中,在线虚拟体验服务器102和客户端设备110上执行的虚拟体验引擎功能的比例可以基于虚拟体验参与条件(例如,动态地)改变。例如,如果参与特定虚拟体验106的用户数量超过阈值数量,则在线虚拟体验服务器102可以执行先前由客户端设备110执行的一个或多个虚拟体验引擎功能。
例如,用户可以在客户端设备110上玩虚拟体验106,并且可以向在线虚拟体验服务器102发送控制指令(例如,用户输入,诸如右、左、上、下、用户选择、或角色位置和速度信息等)。在从客户端设备110接收控制指令之后,在线虚拟体验服务器102可以基于控制指令向客户端设备110发送体验指令(例如,参与群组体验的角色的位置和速度信息,或命令,诸如渲染命令、碰撞命令等)。例如,在线虚拟体验服务器102可以(例如,使用虚拟体验引擎104)对控制指令执行一个或多个逻辑运算,以生成用于客户端设备110的体验指令。在其他实例中,在线虚拟体验服务器102可以将一个或多个控制指令从一个客户端设备110传递到参与虚拟体验106的其他客户端设备(例如,从客户端设备110a传递到客户端设备110b)。客户端设备110可以使用体验指令,并渲染虚拟体验以在客户端设备110的显示器上呈现。
在一些实施方式中,控制指令可以指指示虚拟体验中用户角色的动作的指令。例如,控制指令可以包括控制体验中动作的用户输入,诸如右、左、上、下、用户选择、陀螺仪位置和方向数据、力传感器数据等。控制指令可以包括角色位置和速度信息。在一些实施方式中,控制指令直接发送到在线虚拟体验服务器102。在其他实施方式中,控制指令可以从客户端设备110发送到另一客户端设备(例如,从客户端设备110b发送到客户端设备110n),其中,另一客户端设备使用本地虚拟体验引擎104生成体验指令。控制指令可以包括在音频设备(例如,扬声器、耳机等)上播放另一用户的语音通信消息或其他声音的指令,例如使用如本文所述的音频空间化技术生成的语音通信或其他声音。
在一些实施方式中,体验指令可以指使客户端设备110能够渲染虚拟体验(诸如多参与者虚拟体验)的指令。体验指令可以包括用户输入(例如,控制指令)、角色位置和速度信息、或命令(例如,物理命令、渲染命令、碰撞命令等)中的一个或多个。
在一些实施方式中,角色(或通常地,虚拟体验对象)由组件构成,其中,这些组件中的一个或多个组件可以由用户选择,这些组件自动连接在一起以帮助用户进行编辑。
在一些实施方式中,角色实现为3D模型,并且包括用于绘制角色的表面表示(也称为蒙皮或网格)和互连骨骼的分层集合(也称为骨架或绑定)。绑定可用于使角色动画化,以及用于模拟角色的运动和动作。3D模型可以表示为数据结构,并且可以修改数据结构的一个或多个参数以改变角色的各种属性,例如尺寸(高度、宽度、周长等);体型;运动方式;身体部位的数量/类型;比例(例如肩臀比);头部大小等。
一个或多个角色(在本文也称为“化身”或“模型”)可以与用户相关联,其中,用户可以控制角色以促进用户与虚拟体验106的交互。
在一些实施方式中,角色可以包括诸如身体部位(例如,头发、手臂、腿等)和配饰(例如,t恤、眼镜、装饰图像、工具等)的组件。在一些实施方式中,可自定义的角色的身体部位包括头部类型、身体部位类型(手臂、腿、躯干、和手)、面部类型、毛发类型、以及蒙皮类型等。在一些实施方式中,可自定义的配饰包括服装(例如,衬衫、裤子、帽子、鞋子、眼镜等)、武器、或其他工具。
在一些实施方式中,对于一些资产类型(例如,衬衫、裤子等),在线虚拟体验平台可以为用户提供对简化的3D虚拟对象模型的访问,上述简化的3D虚拟对象模型由低多边形数(例如,多边形数在约20至30之间)的网格表示。
在一些实施方式中,用户还可以控制角色的尺寸(例如,高度、宽度、或深度)或角色的组件的尺寸。在一些实施方式中,用户可以控制角色的比例(例如,块状式、解剖式等)。可以注意到,在一些实施方式中,角色可以不包括角色虚拟体验对象(例如,身体部位等),但是用户可以(在没有角色虚拟体验对象的情况下)控制角色,以促进用户与虚拟体验的交互(例如,益智游戏,其中没有渲染的角色游戏对象,但用户仍然控制角色以控制游戏内动作)。
在一些实施方式中,组件(诸如身体部位)可以是诸如块、圆柱体、球体等的基本几何形状,也可以是一些诸如楔形、环形、管状、通道等的其他基本形状。在一些实施方式中,创建者模块可以发布用户的角色,以供在线虚拟体验服务器102的其他用户查看或使用。在一些实施方式中,用户可以使用I/O接口(例如,开发者接口)并在使用或不使用脚本(或使用或不使用应用编程接口(application programming interface,API))的情况下执行创建、修改、或自定义角色、其他虚拟体验对象、虚拟体验106、或虚拟体验环境。需要注意的是,为了说明,角色被描述为具有人形形态。还可以注意到,角色可以具有任何形态,例如交通工具、动物、无生命物体、或其他创意形态。
在一些实施方式中,在线虚拟体验服务器102可以将用户创建的角色存储在数据存储区120中。在一些实施方式中,在线虚拟体验服务器102维护可呈现给用户的角色目录和虚拟体验目录。在一些实施方式中,虚拟体验目录包括存储在在线虚拟体验服务器102上的虚拟体验的图像。此外,用户可以从角色目录中选择角色(例如,用户或其他用户创建的角色),以参与选择的虚拟体验。角色目录包括存储在在线虚拟体验服务器102上的角色的图像。在一些实施方式中,角色目录中的一个或多个角色可能已由用户创建或自定义。在一些实施方式中,选择的角色可以具有定义该角色的一个或多个组件的角色设置。
在一些实施方式中,用户的角色(例如,化身)可以包括组件的配置,其中,组件的配置和外观以及更一般地角色的外观可以由角色设置定义。在一些实施方式中,用户的角色的角色设置至少部分可以由用户选择。在其他实施方式中,用户可以选择具有默认角色设置或其他用户选择的角色设置的角色。例如,用户可以从具有预定义的角色设置的角色目录中选择默认角色,并且用户可以通过改变一些角色设置(例如,添加具有自定义标识的衬衫),进一步自定义默认角色。在线虚拟体验服务器102可以将角色设置与特定角色相关联。
在一些实施方式中,客户端设备110可以包括计算设备,例如个人计算机(personal computer,PC)、移动设备(例如,膝上型计算机、移动电话、智能电话、平板计算机、或上网本计算机)、互联网电视、游戏控制台等。在一些实施方式中,客户端设备110也可以称为“用户设备”。在一些实施方式中,一个或多个客户端设备110可以在任何给定时刻连接到在线虚拟体验服务器102。应注意,提供客户端设备110的数量是为了说明提供的。在一些实施方式中,可以使用任何数量的客户端设备110。
在一些实施方式中,每个客户端设备110可以分别包括虚拟体验应用112的实例。在一个实施方式中,虚拟体验应用112可以允许用户使用在线虚拟体验服务器102,并与在线虚拟体验服务器102交互,例如控制在线虚拟体验服务器102托管的虚拟体验中的虚拟角色,或者查看或上传内容(例如,虚拟体验106、图像、视频项目、网页、文档等)。在一个示例中,虚拟体验应用可以是web应用(例如,结合web浏览器操作的应用),该web应用可以访问、检索、呈现、或导航web服务器提供的内容(例如,虚拟环境中的虚拟角色等)。在另一示例中,虚拟体验应用可以是本地应用(例如,移动应用、app、虚拟体验程序或游戏程序),该本地应用安装在客户端设备110上并在本地执行,并且允许用户与在线虚拟体验服务器102交互。虚拟体验应用可以为用户渲染、显示、或呈现内容(例如,网页、媒体查看器)。在实施方式中,虚拟体验应用还可以包括嵌入在网页中的嵌入式媒体播放器(例如,或HTML5播放器)。
根据本公开的各方面,虚拟体验应用可以是在线虚拟体验服务器应用,用于用户构建、创建、编辑、上传内容到在线虚拟体验服务器102,以及与在线虚拟体验服务器102交互(例如,参与在线虚拟体验服务器102托管的虚拟体验106)。因此,在线虚拟体验服务器102可以将虚拟体验应用提供给客户端设备110。在另一示例中,虚拟体验应用可以是从服务器下载的应用。
在一些实施方式中,每个开发者设备130可以分别包括虚拟体验应用132的实例。在一个实施方式中,虚拟体验应用132可以允许开发者用户使用在线虚拟体验服务器102,并与在线虚拟体验服务器102交互,例如控制在线虚拟体验服务器102托管的虚拟体验中的虚拟角色,或者查看或上传内容(例如,虚拟体验106、图像、视频项目、网页、文档等)。在一个示例中,虚拟体验应用可以是web应用(例如,结合web浏览器操作的应用),该web应用可以访问、检索、呈现、或导航web服务器提供的内容(例如,虚拟环境中的虚拟角色等)。在另一示例中,虚拟体验应用可以是本地应用(例如,移动应用、app、虚拟体验程序或游戏程序),该本地应用安装在开发者设备130上并在本地执行,并且允许用户与在线虚拟体验服务器102交互。虚拟体验应用可以为用户渲染、显示、或呈现内容(例如,网页、媒体查看器)。在实施方式中,虚拟体验应用还可以包括嵌入在网页中的嵌入式媒体播放器(例如,或HTML5播放器)。
根据本公开的各方面,虚拟体验应用132可以是在线虚拟体验服务器应用,用于用户构建、创建、编辑、上传内容到在线虚拟体验服务器102,以及与在线虚拟体验服务器102交互(例如,提供和/或参与在线虚拟体验服务器102托管的虚拟体验106)。因此,在线虚拟体验服务器102可以将虚拟体验应用提供给开发者设备130。在另一示例中,虚拟体验应用132可以是从服务器下载的应用。虚拟体验应用132可以用于与在线虚拟体验服务器102交互,并且获得对虚拟体验开发者开发、托管、或提供的一个或多个虚拟体验106的用户凭证、用户货币等的访问权限。
在一些实施方式中,用户可以通过虚拟体验应用登录在线虚拟体验服务器102。用户可以通过提供用户账户信息(例如,用户名和密码)访问用户账户,其中,用户账户与可用于参与在线虚拟体验服务器102的一个或多个虚拟体验106的一个或多个角色相关联。在一些实施方式中,凭借适当的凭证,虚拟体验开发者可以获得对虚拟体验虚拟对象(例如,其他用户拥有或与其他用户相关联的平台内货币(例如,虚拟货币)、化身、特殊能力、配饰)的访问权限。
一般而言,在一个实施方式中描述为由在线虚拟体验服务器102执行的功能,如果合适的话,在其他实施方式中也可以由客户端设备110或服务器执行。此外,归属于特定组件的功能可以由一起操作的不同或多个组件执行。在线虚拟体验服务器102还可以通过合适的应用编程接口(API)作为提供给其他系统或设备的服务进行访问,并且因此不限于在网站中使用。
图2-示例身体笼
图2示出了根据一些实施方式的示例身体笼200。图2的示例中的身体笼200是包围或叠加在充当人体模型的人形身体形状的外表面/轮廓上的外笼。身体笼200包围的下层人形身体形状(人体模型,未示出)可以由包括多个多边形及其顶点的身体网格表示,或由包括多个多边形及其顶点的身体网格组成。身体网格的多边形(以及服装网格的多边形)可以是三角形,每个三角形的表面区域提供一个面或一个网格面。
身体笼200包括多个特征点202,特征点202定义或以其他方式标识或对应人体模型的形状。在一些实施方式中,特征点202由人体模型上的多个多边形(或其他几何形状)的线段/边204的顶点形成。根据各种实施方式(尽管未在图2中如此示出),多边形可以是三角形,每个三角形的表面区域提供一个面或一个笼面。在一些实施方式中,特征点202可以是离散点,不一定由任何多边形的顶点形成。
图2的身体笼200是具有642个特征点(或一些其他数量的特征点)的低分辨率身体笼的示例,该身体笼用于缺少手指的人形身体几何形状。其他示例可以使用具有475个特征点(或一些其他数量的特征点)的身体笼。例如,包括手指的人形几何形状的身体笼可能具有1164个特征点(或一些其他数量的特征点)。高分辨率的身体笼可以包括2716个特征点(或一些其他数量的特征点)。特征点的这些数量(及其范围)只是一些示例——特征点的数量可以因不同实施方式而异,取决于诸如偏好的分辨率、3D平台的处理能力、用户偏好、人体模型的大小/形状等因素。
图3-示例身体笼
图3示出了根据一些实施方式的另一示例身体笼300。笼可以提供给任何任意的化身身体形状或服装形状。图3的示例中的身体笼300是包围或叠加在一般游戏化身身体形状的身体网格的外表面/轮廓上的外笼。
与图2的身体笼200相比,图3的身体笼300可以具有相同数量的特征点。在一些实施方式中,身体笼300的特征点的数量可以与身体笼200的特征点的数量不同,例如由于游戏化身的不同(更简单或更复杂)几何形状和/或基于其他因素而具有更少或更多数量的特征点302。因此,不同身体笼的特征点的数量可以不同,并且可以基于不同的身体形状或其他身体属性选择特征点的数量。
图4-身体笼的各部分
图4示出了根据一些实施方式的分组为相应身体部位的身体笼400的各部分的示例。
在一些实施方式中,出于带宽和性能/效率目的或其他原因,笼的特征点的数量可以减少到比上文提供的数量更少,例如475个特征点(或一些其他数量的特征点)。此外,在一些实施方式中,身体笼中的特征点(顶点)可以被布置为多个组(例如,15个组),每个组代表身体形状的一部分。
更具体地,图4所示的15个身体部位(对于人形人体模型)是:头部、躯干、臀部、右脚、左脚、左小腿、右小腿、左大腿、右大腿、左手、右手、左下臂、右下臂、左上臂、以及右上臂。任何身体形状中的多个部位可以大于或小于所示的15个身体部位。例如,因为省略了一只手、下臂、以及上臂,所以“独臂”化身角色可能有12个(而不是15个)身体部位。此外,其他身体形状可能涉及更少或更多数量的身体部位,这取决于诸如身体几何形状、偏好的分辨率、处理能力、化身角色的类型(例如,动物、外星人、怪物等)等因素。
图4中的15个组/部位中的每一个包括定义化身身体的该部位的特征点。这样的特征点组又可以映射到对应的一件服装。例如,因为夹克的图形表示由图形网格组成,这些图形网格呈现逻辑上对应地适配到化身身体的左/右臂和躯干上的夹克的左/右臂和躯干,所以身体笼400中定义左/右下臂、左/右上臂、以及躯干的特征点可以用作要与夹克的内笼映射的外笼。
此外,这样分离为多组(如图4所示)使得一件服装能够自定义地适配到非典型体形上。例如,3D化身可以是缺少左臂的“独臂”化身角色的形式。因此,该3D化身的身体笼缺少对应于左手、左下臂、以及左上臂的特征点组。
当夹克随后被选择用于适配到该3D化身上时,夹克的右下臂、右上臂、以及躯干可以变形以适配到3D化身(身体人体模型)的对应右下臂、右上臂、以及躯干上,并且因为在身体人体模型中没有左臂笼来变形,所以夹克的左下臂和左上臂不会变形(例如,保持来自其父空间的原始形式的刚性)。
图5-身体笼上变形的服装层
图5示出了根据一些实施方式的在身体笼(例如图4所示的身体笼400)上变形的服装层500的示例。服装层500是夹克的图形表示(在图5中以灰色阴影示出),具有可以使用多边形网格502(例如,服装网格)生成/渲染的部分,多边形网格402由顶点、边、以及面(其可以是三角形面或其他多边形面)的集合组成。
服装层500包括内笼(图5中未示出),该内笼的特征点对应于身体笼400的特征点。具体地,服装层500的内笼的特征点被映射到构成左下臂、右下臂、左上臂、右上臂、以及躯干的身体笼400的特征点。
在一些实施方式中,该映射包括将服装层500的内笼的特征点直接映射到身体笼400的手臂和躯干的对应特征点的坐标位置上。当两个笼具有相同数量的特征点时,这种映射可以涉及1:1对应,并且映射可以是n:1或1:n(其中n是大于1的整数),在这种情况下,一个笼中的多个特征点可以映射到另一笼的同一特征点(或者一些特征点可以不映射)。
服装层500还包括外笼,该外笼的特征点与服装层500的内笼的相应特征点间隔开,并连接到相应特征点。服装层500的外笼的特征点沿夹克的外表面轮廓/几何形状定义,或以其他方式定位夹克的外表面轮廓/几何形状,以便定义夹克的特征(例如,兜帽504、袖口506、直筒躯干508等)。
根据各种实施方式,在将服装层500适配到现有层(或化身身体)的外笼上的过程中,空间距离(例如,服装层500的内笼的特征点和服装层500的外笼的对应特征点之间的空间距离)保持恒定。这样,服装层500的内笼的特征点可以映射到身体笼400的特征点,以将夹克的内部“拟合”到化身的躯干和手臂上。
然后,在服装层500的内笼的特征点和服装层500的外笼的对应特征点之间的距离保持不变的情况下,夹克的外部轮廓也可以变形以匹配化身身体的形状,从而使得至少部分保持夹克的兜帽、袖口、直筒躯干、以及其他表面特征的视觉外观(图形表示),同时匹配如图5所示的化身身体的形状。这样,服装层500可以以任何适当的方式变形,以拟合化身身体(身体笼)的任何的任意形状/大小,例如高、矮、苗条、强壮、人形、动物、外星人等。
图6-示例外笼
图6示出了根据一些实施方式的用于形成外笼600的图5的服装层和身体笼400的各部分的示例。在一些实施方式中,可以(例如,响应于用户选择)在其他服装层上放置附加服装层。更具体地,图5的服装层500的外笼的特征点现在与身体笼400的特征点组合,从而产生由身体笼400的暴露部分的特征点和沿夹克的外表面的特征点组成的复合外笼600。
例如,夹克的暴露外表面602(由夹克的主体、兜帽、以及袖子形成)提供一组特征点,并且未被夹克覆盖的身体的暴露的腿部、手部、头部、以及部分胸部提供另一组特征点,并且这两组特征点(组合)提供外笼600的特征点。
图6中的外笼600中对应并定义夹克的外表面/形状的特征点可以是图5的服装层500的外笼的相同特征点。在一些实施方式中,与图5的夹克(服装层500)的外笼的特征点相比,不同的特征点和/或附加的特征点和/或更少的特征点可以用于图6中的外笼600中的夹克区域。
例如,如果外笼600上方的下一层服装需要更高的分辨率或更精确的拟合,则可以计算夹克区域包围的外笼600的附加特征点(与图5的服装层500的外笼相比)。类似地,如果外笼600上方的下一层服装需要较低的分辨率或精确度较低的拟合和/或由于其他考虑(例如通过尽可能使用较少的特征点来提高处理/带宽效率),则可以计算夹克区域包围的外笼600的特征点(与服装层500的外笼相比)。
在操作中,如果用户提供输入以在夹克(服装层500)和/或化身身体的其他部分上拟合附加的服装层(例如大衣或其他服装),则这种附加的服装层的内笼的特征点被映射到外笼600的对应特征点。因此,可以以类似于参考图5所描述的方式来执行变形。根据一些实施方式,径向基函数(radialbasis function,RBF)技术和/或其他类似插值技术可以用于使适配到下层服装或化身的身体部位上的一件服装变形。
因此,根据图5和图6的分层服装的示例,通过将化身身体的“外笼”(身体笼400)的特征点与第一层服装的“内笼”的特征点匹配,将第一层服装(服装层500)包裹在身体周围。这种匹配可以在笼的UV空间(例如,UV指坐标系系统)中进行,从而不必依赖于内笼和外笼之间精确匹配的特征点的数量。
例如,特征点可以是具有位置和纹理空间坐标的顶点。纹理空间坐标通常用范围[0,1]来表示,每个范围用于U,V坐标。纹理空间可以认为是顶点的“未包裹的(unwrapped)”归一化坐标空间。通过在UV空间中执行两组顶点的对应并且不使用这些顶点的位置,可以通过消除精确的顶点到顶点索引映射的硬性要求,在归一化空间中完成顶点到顶点的对应。
根据本文描述的技术,每个化身身体和服装项目因此与“内笼”和“外笼”相关联。在化身身体的情况下,内笼表示默认的“人体模型”(并且可以为不同的化身身体形状提供不同的人体模型),并且化身身体的“外笼”表示围绕化身身体形状的外壳。对于服装项目,“内笼”表示用于定义服装项目如何包裹在下面的身体周围(或包裹在已经拟合有先前服装层的身体周围)的内包络,而“外笼”表示当穿在化身身体上时,下一层服装包裹在该特定服装项目周围的方式。
根据各种实施方式,本文描述的各种笼在运行时间期间可以是不可见的。例如,在参与虚拟体验时,包括化身在虚拟体验的虚拟3D环境中穿行、在化身身体上放置服装、穿着服装、使化身动画化等时,笼的顶点和线段对于用户和3D环境的其他用户/观看者来说可以是不可见的。此外,在运行时间期间,化身和化身的变形的服装看起来没有笼,使得只有变形的服装、蒙皮、化身身体部位等的视觉网格对用户可见——实际上,化身上可以存在一个或多个笼,用于实现本文所述的目的,使服装变形、包围化身的身体部位和服装物品、改变化身身体等,但在运行时间期间对用户不可见。笼可以对用户可见(例如,诸如通过查看/编辑笼命令,在配置阶段等),使得用户可以在必要时查看和操作笼,以改变本文描述的化身身体、创建笼、或其他目的。
图7-两个身体笼之间的插值
图7示出了根据一些实施方式的用以获得新身体笼700的两个身体笼之间的插值的示例。更具体地,图7的示例插值可以在以下情况下执行:用户具有当前化身身体,并且用户希望将该当前化身身体改变/变换为虚拟体验、库等中存在的一些其他(目标)化身身体。在用户可以创建和编辑图形对象等的工作室(studio)或其他配置环境中的会话期间,可以在化身正在参与虚拟体验的运行过程中执行当前化身身体的插值和相应改变。
在图7的示例中,仅出于说明和解释的目的,用户的当前化身身体可以是具有图2的身体笼200的人形身体,并且用户可能希望将当前化身身体(或当前化身身体的一些部分)变换为目标化身身体。在图7的示例中,用户选择的目标化身身体可以是具有图3的身体笼300的几何化身身体。
图7所示的新化身身体具有身体笼700。新化身身体可以是从原始化身身体的一个或多个部分到目标化身身体的一个或多个部分的完全变换。图7示出了从原始化身身体的一个或多个部分到目标化身身体的一个或多个部分的完全变换和部分变换。
作为完全变换的示例,新化身身体的躯干702的形状已经变换,以完全匹配目标化身(具有身体笼300)的躯干的矩形形状——原始化身身体(具有身体笼200)的弯曲/锥形躯干不再存在于新化身身体中,并且已经完全形变,或以其他方式变换为矩形躯干702。
作为部分变换的示例,新化身身体的手臂704的形状是原始化身身体(具有身体笼200)的弯曲/锥形手臂与目标化身身体(具有身体笼300)的矩形手臂之间的混合体/混合物。例如,现在手臂704的形状更像矩形,类似身体笼300的手臂,但仍然保留身体笼200的手臂的一些弧度和锥度。
因此,完全变换可以是所有身体部位完全变换的身体变换,部分身体变换可以是一个或多个身体部位部分变换或不变换的身体变换。
新化身身体的身体笼700也表示部分变换,因为并非整个化身身体的每个部分都发生了形变。例如,只有躯干702和一只手臂704经历了变换,而新化身身体的其他部分(例如,头部、另一只手臂、腿等)的形状相对于原始化身身体保持不变。在各种实施方式中,化身身体的不同部分可以经历部分或全部变换,而其他部分不经历任何变换。在一些实施方式中,整个化身身体可以经历部分或全部变换。在一些实施方式中,使小于第一化身身体的整体的第一化身身体的部分形变包括使第一化身身体的该部分形变,以执行第一化身身体的该部分的部分变换。
新化身身体(具有身体笼700)的尺寸可以与原始化身身体(具有身体笼200)和/或目标化身身体(具有身体笼300)相同或不同。在图7的示例中,新化身身体(具有身体笼700)被缩小,使其尺寸小于原始化身身体和目标化身身体。
为了获得新化身身体(具有身体笼700),在一些实施方式中,可以执行一个或多个插值操作706。例如,可以在身体笼200和身体笼300之间执行线性插值或非线性插值。可以在对应于两个身体笼(身体笼200和身体笼300)的顶点或线段的值/坐标之间执行插值,以便获得新身体笼700的结果顶点/线段。
可选地,或附加地,新身体笼700的顶点/线段的值/坐标中的至少一些可以计算/生成为尚未从其他值中插值的新值。例如,如果要在化身身体的特定区域创建新身体笼700的新顶点/线段,并且两个身体笼200和300附近没有可以形成插值基础的顶点/线段,则可以执行此操作。
图7的示例对应于新化身身体(具有新身体笼)基于或相对于两个其他化身身体(具有相应的身体笼)生成的实施方式。在一些实施方式中,新化身身体可以以更自由形式的方式生成,不一定基于现有的目标化身身体作为参考。
图8-新身体笼的生成
图8示出了根据一些实施方式的生成新身体笼800的示例。仅出于说明和解释的目的,用户的当前化身身体可以是具有图2的身体笼200的人形身体,并且用户可能希望将当前化身身体(或当前化身身体的一些部分)变换为目标化身身体。
为了执行该变换,用户可以使用变换工具操作身体笼200的顶点和/或线段。例如,如800所示,用户可以点击并拖动手臂的顶点或线段到新位置。如802所示,用户可以点击并拖动躯干的顶点或线段到新位置。除了点击和拖动现有顶点/线段之外,在生成新化身身体的过程中,用户还可以使用变换工具删除或添加顶点/线段到笼,绘制/重绘笼的各部分等。
关于笼,如上文关于图2至图6所述,多个笼之间存在相互关系和依赖性。例如,身体笼包围(完全包围)化身身体(包括身体网格),第一服装物品的内笼映射到身体笼,外笼包围第一服装物品(包括第一服装物品的服装网格),第二服装物品的内笼映射到第一服装物品的外笼,外笼包围第二服装物品(包括第二服装物品的服装网格)等。
鉴于这种相互关系和依赖性,在一些实施方式中,至少一个笼的操作或其他改变/变换会引起一个或多个其他笼的自动且相应的改变/变换。例如,如果当前化身身体的身体笼发生改变(如图7和图8所示),从而改变了化身身体的形状,则如果化身身体穿着服装,一个或多个覆盖在其上的服装的相应笼也会自动改变/更新,从而以动态方式变形/适配服装,以匹配化身身体改变的形状。笼中的变化相应地又会引起网格、蒙皮、以及化身身体和/或其服装的其他视觉方面的适当变化。
在其他示例中,为了改变化身的形状或其他外观,可以在改变身体笼的同时可选地或附加地操作服装物品的笼。使用前文描述的戴圆形棒球帽的当前人形化身和具有锥形头部的目标外星人的示例,用户可以操作变换工具将棒球帽的外笼从圆形重塑为圆锥形。然后这种对外笼的重塑相应地将棒球帽的视觉外观从圆形改变为圆锥形,并且也改变了棒球帽的内笼和人形化身身体的头部的下层身体笼,从而使新化身身体现在具有锥形头部。
根据各种实施方式,可以在虚拟体验的运行时间期间执行化身身体(包括其服装)的形变或其他变换。在这样的实施方式中,在用户参与虚拟体验时,笼可能不一定可见。此外,用户可以在虚拟体验中选择目标化身或其他目标图形对象,并且客户端侧或服务器侧的虚拟体验引擎或其他相关组件可以以对用户透明的方式(例如,通过后台进程)执行适当的笼操作(如上文关于图6所示)。因此,用户能够在虚拟体验期间无缝查看化身身体的改变/变化的视觉外观,而无需实际查看被操作的笼本身。
图9-虚拟体验期间化身身体的变换
图9示出了如上文所解释的根据一些实施方式的化身参与虚拟体验900时化身身体的变换的示例。在902的虚拟体验900中,用户的当前化身904是人形,该人形的各个身体部位(例如,头部、手臂、腿部、躯干等)具有大致的几何/矩形形状。用户已经(例如,通过用鼠标光标点击或通过一些其他输入工具)选择了虚拟体验900中的另一化身作为目标化身906。
如果用户选择目标化身906,则在908发生当前/原始化身904到新(经改变的/改变中的)化身910的变换。在908,并且与原始化身904相比,新化身910具有与目标化身906的相应身体部位类似的更大的左臂、锥形的腰部、耸起的肩部等。在912,执行进一步的形变,使得新化身910进一步修改以更紧密地匹配具有下垂的头部的目标化身906。
图10-虚拟体验期间化身身体的变换
图10示出了根据一些实施方式的化身参与虚拟体验1000时化身身体的变换的另一示例。具体地,图10示出了用户可以选择多个化身作为化身的当前化身身体形变的目标。在1002,在虚拟体验1000中,用户的当前化身1004具有苗条体形/形状的外星人身体。第一目标化身1006是人形化身,并且具有健壮的躯干形状。第二目标化身1008是怪物,具有带角的下垂的怪物头部。
在1010,用户已经选择了第一目标化身1006,并且因此原始化身1004已经变换为新化身1012,新化身1012像第一目标化身1006一样具有健壮的躯干。在1014,用户已经选择了第二目标化身1008,并且因此新化身1012继续变换/形变,从而像第二目标化身1008一样,具有下垂的怪物头部,并且更矮。
图11-虚拟体验期间化身身体的变换
图11示出了根据一些实施方式的化身参与虚拟体验1100时化身身体的变换的另一示例。如前所述,可以改变化身身体的一部分(而不是改变整个化身身体),然后可以对与化身身体改变的部分相关联的服装、蒙皮、配饰等进行相应的改变。
在1102,在虚拟体验1100中,用户的当前化身1104具有人形头部,该人形头部具有鼻子、头发、嘴唇和口红、眼睛和睫毛等。在1106,用户已经选择了虚拟体验1100中的另一化身的头部,并且因此当前化身1104的头部开始从人形头部形变为新化身1108的不同头部形状(例如,动物状)。这种形变还影响鼻子、嘴唇、眼睛等的外观(例如,形状和大小)。
在1110,新化身1108的头部继续进一步形变为动物头部。因此,新化身1108中的头部、头发、鼻子、嘴唇、眼睛等有更明显的动物状的外观。
图12-配置环境中化身的变换
图12示出了根据一些实施方式的配置环境1200中的化身的变换的示例。配置环境1200可以是工作室或其他类型的环境,其中用户可以在虚拟体验的运行时环境之外配置化身。
因此,配置环境1200可以是辅助特征,该辅助特征与虚拟体验有关,但不在虚拟体验本身内。可选地,或附加地,配置环境可以与任何特定虚拟体验解耦,但是该配置环境的输出(包括化身和其他图形对象)可以使用并应用于虚拟体验。
在配置环境1200中,有多个可用的化身模型:用户的化身1202(bazooka)、第一目标化身1204(Model9)、以及第二目标化身1206(roxie)。在该示例中,用户的化身1202的化身身体在形状上像矮壮的外星人,并且在形式上像骨架。
用户已经选择目标化身1206作为目标化身。因此,用户的化身1202变换为新化身1208,新化身1208在配置环境1200中渲染。新化身1208虽然保留了原始化身1202的一些骨架状特征,但现在的形状更像人形,与目标化身1206相对应,并且更高。
根据各种实施方式,配置环境1200可以设有调整工具和/或其他类型的变换工具1210。例如,变换工具1210指示变换工具1210与“形变身体插件”对应,并提供指令“选择化身A然后选择B,以使A形变为B。该值是A将要形变为B的程度,当该值为0时,没有任何变化。当该值为1时,A将看起来像B。”
在图12的示例中,变换工具1210包括滑动条或其他类似工具(“形变值(MorphValue)”),以控制当前化身与目标化身之间的形变量(例如,形变值)。可以存在指示“当前变形头部(Current Deform Head)”的按钮和指示“应用形变和值(Apply Morph andValue)”的按钮
因此,新化身可以具有最小形变值0(例如,当前化身没有变化)、最大形变值(例如,新化身是到目标化身的完全变换)、以及最小形变值和最大形变值之间的任何其他形变值(例如,如图12所示,新化身是原始化身和目标化身之间的混合体)。
虽然在图12中未示出,但是如图2中所示,配置环境1200的一些实施方式使得用户能够出于改变化身身体的目的操作笼。可以在配置环境1200中提供各种变换工具,以使用户能够对笼的顶点等进行点击和拖动、绘制、删除、修改等。
图13-虚拟体验中的化身身体的分层服装
图13示出了根据一些实施方式的参与虚拟体验1300的化身的化身身体的分层服装的示例。在1302,用户的化身1304是从先前化身(例如,通过本文所述的技术)变换出的新化身,并且在身体笼(未示出)上穿着一些服装。化身1304的每个外层服装的内笼(未示出)已经变形,以便使每个外层服装符合/适配改变的/新的化身1304。
在虚拟体验1300中,化身1304跑向一系列其他服装物品中的一个服装物品(例如,外套1306)。当化身在1308穿上外套1306时,外套1306变形以适配并符合下面的服装层。运行虚拟体验1300的引擎和/或一些其他组件可以无缝执行外套的变形(例如,笼映射、笼变形等),使得从用户的角度无缝执行适配(例如,用户只需点击外套1306,外套1306就会自动适配到化身1304上)。
在前述实施方式及其示例中,如通过上文所示和描述的方式使原始化身身体的一个或多个部分形变,将原始化身身体改变为另一(新)化身身体。蒙皮/网格和原始化身身体穿着的任何服装层也会变形,以便相符地适配新化身身体。
在改变/更新几何形态(例如,化身身体、蒙皮、服装层等)之后,用户可以例如通过跑步、微笑、眨眼、挥动手臂等使化身动画化。接下来在图14至图17中提供实例。
图14至图17-化身的变换和动画化
图14至图17示出了根据一些实施方式的化身1400的变换和动画化的示例。图14至图17中的每一个示出了化身1400的头部,以及化身1400的三个不同版本。
在图14中,化身1400和其他三个化身尚未形变,因此其他三个化身与化身1400相同。图14中的化身1400无表情(例如,既不微笑也不皱眉)且睁大双眼,其他三个化身也具有相同的外观。
在图15中,化身1400以其原始形态(未形变形式)示出,以供参考,其他三个化身开始形变为不同的头部形状。化身1400也被动画化为正在微笑(嘴唇分开且牙齿可见)。在其他三个化身的动画中也可以看到相应的微笑。
在图16中,化身1400以其原始(未形变形式)示出,以供参考,其他三个化身继续形变为不同的头部形状,并具有与化身1400的微笑动画相对应的微笑动画。在图17中,化身1400被动画化为部分眨动单眼且用嘴唇傻笑,其他三个化身上也执行示出相同表情的动画。
根据各种实施方式,化身可以设有蒙皮,使得化身的网格与化身骨架的关节和骨骼绑定在一起。因此,如上文描述的图15至图17所示,在动画化过程中,化身的关节/骨骼的运动会引起相应的蒙皮变形。在一些实施方式中,化身的骨架可以是虚拟关节和虚拟骨骼组成的推断骨架。
根据各种实施方式,当化身身体的几何形态如上述示例所述发生改变时(例如,通过针对新化身改变手臂、腿部、躯干等的几何形态/形状),也会针对新化身更新骨架。如图15至图17所示,更新骨架(包括更新其关节和骨骼等)以及更新蒙皮确保新化身的动画效果准确。
在一些实施方式中,这种更新可以通过针对新化身身体对附接位置(例如,关节)进行插值来执行。这种插值的附接位置可以通过在原始化身身体的骨架的附接位置与目标化身身体的骨架的附接位置之间进行插值来获得。
在一些实施方式中,可以在原始化身身体的身体笼的顶点与目标化身身体的身体笼的顶点之间执行插值,以获得新化身身体的骨架的附接点。因此,当通过操作原始化身身体的身体笼使原始化身身体形变时,可以对原始化身身体的骨架执行类似的形变,以便重新定位骨架的关节和骨骼。
作为示例,身体笼通过包围化身身体的网格与化身身体的网格相关联。因此,身体笼近似于网格表示的身体部位的形状、尺寸、轮廓等。考虑到绑定(rig或rigging),化身的网格与化身骨架的关节和骨骼绑定,身体笼的变形引起相应网格的变形,相同或相似的变形(由于网格与骨架绑定)也会应用到骨架上。
在具有直接1:1顶点对应关系的一对笼的顶点之间执行插值时,插值的结果为化身身体的身体笼提供顶点。此外,原始化身身体的身体笼上可能存在与目标化身身体的身体笼上的任何顶点都没有对应关系的顶点,反之亦然。在这种情况下,可以使用在图形对象之间映射的UV对应技术或其他类型的技术来识别最近的顶点以用于插值。还可以执行对齐成对笼的坐标系,以进一步提升插值的精度。
图18-改变三维化身身体
图18是示出根据一些实施方式的改变三维(3D)化身身体的计算机实现的方法1800的流程图。为了简单起见,在执行操作的客户端设备的虚拟体验(virtualexperience,VE)的背景下描述方法1800中的各种操作。
进一步地,如下文参照图22所述,本文描述的方法1800和/或任何其他方法的一些操作可以全部或部分地由位于服务器的VE平台的VE引擎可选地或附加地执行。示例方法1800可以包括由一个或多个块(例如,块1802至块1806)示出的一个或多个操作。方法1800和/或本文描述的任何其他过程的各种块可以基于实施方式组合成更少的块、分成附加的块、用其他的块补充、和/或消除。
本文参考图2至图17和其他附图中所示的元件来阐述图18的方法1800。在一些实施方式中,方法1800的各操作可以以流水线顺序方式执行。在其他实施方式中,一些操作可以无序执行、并行执行等。
在框1802,识别要改变的第一化身身体。例如,当用户正在参与虚拟体验时或者当用户在诸如工作室的配置环境中时,第一化身身体可以是用户的当前化身身体。第一化身身体具有对应的第一身体笼。框1802之后可以是框1804。
在框1804,识别目标化身身体。例如,用户可以在虚拟体验中或在配置环境中识别目标化身身体。目标化身身体是用户可能希望用户的当前化身身体形变成的身体。目标化身身体具有对应的目标身体笼。框1804之后可以是框1806。
在框1806,执行第一化身身体的变换。例如,可以在第一身体笼和目标身体笼之间执行插值,以生成与第二化身身体相对应的第二身体笼。因此,第二化身身体可以是第一化身身体和目标化身身体之间的混合体,或者完全变换为目标化身身体。如何执行插值的附加细节参考图20进行讨论。
图19-改变三维化身身体
图19是示出根据一些实施方式的用于改变三维(3D)化身身体的另一计算机实现的方法1900的流程图。例如,方法1900可以用于化身身体的自由形式变换,而不必使用目标化身身体作为参考。
在框1902,识别要改变的第一化身身体。例如,当用户在诸如工作室的配置环境中时,第一化身身体可以是用户的当前化身身体。在一些实施方式中,用户的化身可以存在于跑步虚拟体验中,并且因此可以通过暂停虚拟体验,通过退出虚拟体验以进入配置环境,或通过在跑步虚拟体验本身中改变化身来改变化身。第一化身身体具有对应的第一身体笼。框1902之后可以是框1904。
在框1904,执行第一化身身体的变换。例如,可以通过操作第一身体笼(例如,重新定位第一身体笼的顶点/线段)以生成与第二化身身体相对应的第二身体笼来执行变换。第二身体笼可以用于提供第一化身身体到第二化身身体的变换。操作可以包括重新定位第一身体笼的各部分。如何执行变换的附加细节参考图20进行讨论。
图20-身体笼上变形的服装层
图20是示出根据一些实施方式的用于执行蒙皮形变的计算机实现的方法的流程图。图20是示出根据一些实施方式的用于改变三维(3D)化身身体的计算机实现的方法2000的流程图。例如,方法2000可以用于化身身体的自由形式变换,而不必使用目标化身身体作为参考。方法2000可以从框2002开始。
在框2002,计算骨骼的仿射校正。对于每个骨骼,使用线性代数计算最佳适配其受影响的点云的变形的3x4仿射变换。这可以是Dj项,Dj可以改变蒙皮计算,以更好地适配网格形状的变化。框2002之后可以是框2004。
在框2004,将仿射校正应用于骨骼变换。这种校正应用于蒙皮计算中的骨骼变换:框2004之后可以是框2006。
在框2006,通过骨架计算冒泡校正。框2006之后可以是框2008。
在框2008,将校正并入局部绑定变换中。冒泡和合并将校正合并到新的局部绑定变换LB′j中,该变换生成相同的结果:LB′j=Bj -1·Dj·Bj′·LBj。这是代数操作,使用原始LBS公式,去掉变换Dj并用产生相同结果的新绑定变换LB′j替换它。框2008之后可以是框2010。
在框2010,创建和/或发布新的蒙皮网格。创建只是意味着该蒙皮网格作为供本地用户查看的网格存在。发布意味着将该蒙皮网格推送到Roblox CDN,以便其他用户也可以看到或购买它。以这种方式使用新的蒙皮网格需要经过安全审核和其他流程。框2010之后可以是框2012。
在框2012,更新平移和旋转。FACS绑定包含绑定的每个姿势中每个关节的平移和旋转。形状更改后,需要更新这些值,以便姿势能继续与新形状配合使用。如关于图21所描述的,这种更新可以使用方法2100来执行。
图21-身体笼上变形的服装层
图21是示出用于执行面部动作编码系统(FACS)姿势形变的计算机实现的方法2100的流程图。方法2100可以从框2102开始。
关于FACS姿势形变,本FACS绑定包含许多姿势,并且每个姿势包括头部绑定中每个关节的局部变换Pj的集合。蒙皮形变技术更新它们的绑定变换LB′j,从而改变这些局部姿势变换的父空间。仿射校正变换Dj改变得到的Mj变换的平移,包括平移的方向和幅度,但仿射校正变换Dj不改变得到的变换Mj的旋转。为了进一步改善结果,每个姿势、每个关节的旋转rj,k也将被更新。在该过程中,也可以进一步微调每个姿势、每个关节的平移tj,k。这样的过程可以一次执行一个姿势。
在框2102,从原始头部网格计算变形的头部网格姿势。具体地,根据原始头部形状计算原始LBS变形网格姿势。姿势被定义为关节变换的集合。这些关节变换与诸如线性混合蒙皮技术的技术一起使用,以构建该姿势中的网格形状。框2102之后可以是框2104。
在框2104,将蒙皮加权点投影到最近点以生成新点。对于姿势中的每个关节,将关节的蒙皮加权点投影到姿势网格上最近点,从而提供一组新点。这些点表示原始网格上最接近该关节在该姿势中的目的地的位置。例如,当考虑微笑姿势时,嘴角会滑动到脸颊区域。了解脸颊如何重塑可能是有帮助的,从而可了解是否及如何对应调整微笑姿势。框2104之后可以是框2106。
在框2106,将仿射校正应用于新点以生成变换。可以使用(在框2004使用的)相同的3x4仿射适配函数,计算这些点如何在原始形状和修改的形状之间变换。框2106之后可以是框2108。
在框2108,提取变换的刚性组件。随后可以提取该变换的刚性组件。一些系统,包括一些刚体模拟系统,无法有效处理缩放和剪切,因此在向这些系统提供校正之前必须移除这些组件。框2108之后可以是框2110。
在框2110,基于提取的刚性组件微调平移和/或旋转。框2110之后可以是框2112。
在框2112,通过分解旋转矩阵并插入校正,计算欧拉角。为了最小化对欧拉插值的改变,对匹配该旋转的欧拉角进行最小改变。通过分解旋转矩阵并逐步插入校正来计算这些角度。然后(这显示如何将具有下标2的校正旋转结合到旋转计算中),然后x=x1+x2,y=y1+y2,以及z=z1+z2(这显示如何将来自校正矩阵(前一等式中的下标2)的欧拉角直接添加到原始旋转中,并产生相同的结果)。这显示欧拉旋转矩阵分解为单独的x、y、z旋转矩阵。此处大写字母是变换矩阵,小写字母是标量值。
图22-示例计算设备
图22是示出根据一些实施方式的可用于实现本文所描述的一个或多个特征的示例计算设备2200的框图。在一个示例中,计算设备2200可以用于实现计算机设备(例如,图1的102和/或110),并且执行本文描述的适当方法实施。计算设备2200可以是任何合适的计算机系统、服务器、或其他电子或硬件设备。例如,计算设备2200可以是大型计算机、台式计算机、工作站、便携式计算机、或电子设备(便携式设备、移动设备、蜂窝电话、智能电话、平板计算机、电视、电视机顶盒、个人数字助理(personal digital assistant,PDA)、媒体播放器、游戏设备、可穿戴设备等)。在一些实施方式中,计算设备2200包括处理器2202、存储器2204、输入/输出(I/O)接口2206、以及音频/视频输入/输出设备2214。
处理器2202可以是一个或多个处理器和/或处理电路,以执行程序代码并控制计算设备2200的基本操作。“处理器”包括处理数据、信号、或其他信息的任何合适的硬件和/或软件系统、机制、或组件。处理器可以包括具有通用中央处理单元(central processingunit,CPU)、多个处理单元、用于实现功能的专用电路或其他系统的系统。处理不必局限于特定的地理位置,也不具有时间限制。例如,处理器可以以“实时”、“离线”、“批处理模式”等方式执行其功能。处理的各个部分可以由不同的(或相同的)处理系统在不同时间和不同位置执行。计算机可以是与存储器通信的任何处理器。
存储器2204通常设置在计算设备2200中以供处理器2202访问,并且可以是任何合适的处理器可读存储介质,例如随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、电可擦除只读存储器(electrical erasable read-onlymemory,EEPROM)、闪存等,存储器2204适于存储供处理器执行的指令,并且与处理器2202分离和/或与处理器2202集成。存储器2204可以存储由处理器2202在计算设备2200上操作的软件,包括操作系统2208、虚拟体验应用2210、3D化身修改应用2212、以及其他应用(未示出)。在一些实施方式中,虚拟体验应用2210和/或3D化身修改应用2212可以包括使处理器2202能够执行本文描述的功能(或控制本文描述的功能)的指令,例如,关于图18至图21描述的方法中的一些或全部。
例如,虚拟体验应用2210可以包括3D化身修改应用2212,如本文所述,3D化身修改应用2212可以动态改变在线虚拟体验服务器(例如,102)内的3D化身。存储器2204中的软件元件可以替代地存储在任何其他合适的存储位置或计算机可读介质上。此外,存储器2204(和/或其他连接的存储设备)可以存储在本文描述的特征中使用的指令和数据。存储器2204和任何其他类型的存储(磁盘、光盘、磁带、或其他有形介质)可以认为是“存储区”或“存储设备”。
I/O接口2206可以提供使计算设备2200能够与其他系统和设备对接的功能。例如,网络通信设备、存储设备(例如,存储器和/或数据存储区120)、以及输入/输出设备可以通过I/O接口2206进行通信。在一些实施方式中,I/O接口可以连接到接口设备,该接口设备包括输入设备(键盘、定点设备、触摸屏、麦克风、相机、扫描仪等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
音频/视频输入/输出设备2214可以包括可用于接收用户输入的用户输入设备(例如,鼠标等)、可用于提供图形和/或视觉输出的显示设备(例如,屏幕、监视器等)、和/或组合的输入和显示设备。
为了便于说明,图22对处理器2202、存储器2204、I/O接口2206、以及操作系统2208、虚拟体验应用2210、和3D化身修改应用2212的软件框中的每一个示出了一个框。这些块可以表示一个或多个处理器或处理电路、操作系统、存储器、I/O接口、应用、和/或软件引擎。在其他实施方式中,计算设备2200可能不具有所示的所有组件,和/或可能具有其他元件,包括非本文所示的其他类型的元件,或除本文所示外还有其他类型的元件。虽然在线虚拟体验服务器102被描述为执行本文中一些实施方式中所述的操作,但在线虚拟体验服务器102或类似系统的任何合适的组件或组件组合,或与此类系统相关联的任何合适的处理器都可以执行所述操作。
用户设备也可以实现本文描述的特征和/或与本文描述的特征一起使用。示例用户设备可以是包括一些与计算设备2200相似的组件(例如处理器2202、存储器2204、和I/O接口2206)的计算机设备。可以在存储器中提供适用于客户端设备的操作系统、软件、以及应用并由处理器使用。用于客户端设备的I/O接口可以连接到网络通信设备,以及输入和输出设备,例如用于捕捉声音的麦克风、用于捕获图像或视频的相机、用于捕获用户输入的鼠标、用于识别用户手势的手势设备、用于检测用户输入的触摸屏、用于输出声音的音频扬声器设备、用于输出图像或视频的显示设备、或其他输出设备。例如,音频/视频输入/输出设备2214内的显示设备可以连接到(或包括在)计算设备2200,以显示如本文所述的预处理和后处理的图像,其中,这种显示设备可以包括任何合适的显示设备,例如LCD、LED、或等离子显示屏、CRT、电视、监视器、触摸屏、3D显示屏、投影仪、或其他视觉显示设备。一些实施方式可以提供音频输出设备,例如语音输出或阅读文本的合成音。
本文描述的一个或多个方法(例如,方法1800、1900、2000和2100)可以由能在计算机上执行的计算机程序指令或代码来实施。例如,代码可以由一个或多个数字处理器(例如,微处理器或其他处理电路)实施,并且可以存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,例如磁性、光学、电磁、或半导体存储介质,包括半导体或固态存储器、磁带、可移动计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、硬磁磁盘、光盘、固态存储驱动器等。程序指令还可以包含在电子信号中并作为该电子信号提供,例如以从服务器(例如,分布式系统和/或云计算系统)交付的软件即服务(software asa service,SaaS)的形式。或者,一种或多种方法可以用硬件(逻辑门等)或硬件和软件的组合来实现。示例硬件可以是可编程处理器(例如,现场可编程门阵列(field-programmablegate array,FPGA)、复杂可编程逻辑器件)、通用处理器、图形处理器、专用集成电路(application specific integrated circuit,ASIC)等。一种或多种方法可以作为在系统上运行的应用的一部分或组件来执行,或者作为与其他应用和操作系统一起运行的应用或软件来执行。
本文描述的一种或多种方法可以在能在任何类型的计算设备上运行的独立程序、在网络浏览器上运行的程序、在移动计算设备(例如,手机、智能手机、平板电脑、可穿戴设备(手表、臂章、首饰、头饰、护目镜、眼镜等)、笔记本电脑等)上执行的移动应用(“app”)中运行。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备并从服务器接收最终输出数据以用于输出(例如,用于显示)。在另一示例中,在移动计算设备上的移动应用(和/或其他应用)内执行所有计算。在另一示例中,可以在移动计算设备和一个或多个服务器设备之间拆分计算。
虽然已经针对其特定实施方式描述了说明书,但是这些特定实施方式仅仅用于说明而非限制。各示例中说明的概念可以应用于其他示例和实施方式。
如本领域技术人员已知的,本公开中描述的功能块、操作、特征、方法、设备、以及系统可以集成或划分到系统、设备、以及功能块的不同组合。可以使用任何合适的编程语言和编程技术来实现特定实施方式的例程。可以采用不同的编程技术,例如,面向过程式或面向对象式。例程可以在单个处理设备或多个处理器上执行。虽然可以按照特定顺序呈现步骤、操作、或计算,但是在不同的特定实施方式中可以改变顺序。在一些实施方式中,在本说明书中显示为顺序的多个步骤或操作可以同时执行。

Claims (20)

1.一种用于修改三维(3D)化身身体的计算机实现的方法,所述计算机实现的方法包括:
识别具有第一身体笼的第一化身身体;
识别具有目标身体笼的目标化身身体;以及
在所述第一身体笼和所述目标身体笼之间执行插值,以获得与第二化身身体相对应的第二身体笼,从而提供所述第一化身身体到所述第二化身身体的变换。
2.根据权利要求1所述的计算机实现的方法,其中,执行所述插值包括执行所述插值以生成与所述目标身体笼完全匹配的所述第二身体笼,从而提供完全变换。
3.根据权利要求1所述的计算机实现的方法,其中,执行所述插值包括将所述第一化身身体变换为所述第二化身身体,所述第二化身身体是所述第一化身身体与所述目标化身身体之间的混合体,从而提供部分变换。
4.根据权利要求1所述的计算机实现的方法,其中,执行所述插值包括使小于所述第一化身身体的整体的所述第一化身身体的一部分形变。
5.根据权利要求4所述的计算机实现的方法,其中,使小于所述第一化身身体的所述整体的所述第一化身身体的所述部分形变包括使所述第一化身身体的所述部分形变,以执行所述第一化身身体的所述部分的部分变换。
6.根据权利要求1所述的计算机实现的方法,其中,所述第一化身身体是虚拟体验的一部分,所述插值在所述化身参与所述虚拟体验时执行,并从所述虚拟体验中的多个目标化身身体中选择所述目标化身身体。
7.根据权利要求1所述的计算机实现的方法,其中,所述插值在配置环境中执行,并从所述配置环境中的库中的多个目标化身身体中选择所述目标化身身体。
8.根据权利要求7所述的计算机实现的方法,其中,所述配置环境包括变换工具,所述变换工具使得用户能够控制所述第一化身身体的所述变换的量,以获得所述第二化身身体,并且其中,所述插值基于所述变换的所述量执行。
9.根据权利要求1所述的计算机实现的方法,还包括:
识别所述第一化身身体的绑定,所述绑定包括识别所述第一化身身体的骨架和所述第一化身身体的蒙皮;
在执行所述插值之后,更新所述第一化身身体的所述绑定以对应所述第二身体笼;以及
通过移动更新的所述绑定的骨架并变形更新的所述绑定的蒙皮,使所述第一化身身体动画化。
10.根据权利要求9所述的计算机实现的方法,其中,移动更新的所述绑定的所述骨架并变形更新的所述绑定的所述蒙皮包括:基于确定受所述第一化身身体的所述骨架中的骨骼影响的更新的所述绑定的蒙皮的区域,重用来自所述第一化身身体的所述蒙皮的蒙皮权重。
11.一种用于修改三维(3D)化身身体的计算机实现的方法,所述计算机实现的方法包括:
识别具有相应第一身体笼的第一化身身体;以及
执行对所述第一身体笼的操作,以生成与第二化身身体相对应的第二身体笼,从而提供所述第一化身身体到所述第二化身身体的变换,其中,所述操作包括重新定位所述第一身体笼的各部分。
12.根据权利要求11所述的计算机实现的方法,其中,所述操作在配置环境中执行,并且其中,所述配置环境包括变换工具,所述变换工具使得用户能够控制所述第一身体笼的所述操作的方面,以获得所述第二身体笼,并且其中,所述操作基于所述操作的所述方面执行。
13.根据权利要求11所述的计算机实现的方法,还包括:
识别所述第一化身身体的绑定,所述绑定包括识别所述第一化身身体的骨架和所述第一化身身体的蒙皮;
在执行所述操作之后,更新所述第一化身身体的所述绑定以对应所述第二身体笼;以及
通过移动更新的所述绑定的骨架并变形更新的所述绑定的蒙皮,使所述第一化身身体动画化。
14.根据权利要求13所述的计算机实现的方法,其中,移动更新的所述绑定的所述骨架并变形更新的所述绑定的所述蒙皮包括:基于确定受所述第一化身身体的所述骨架中的骨骼影响的更新的所述绑定的蒙皮的区域,重用来自所述第一化身身体的所述蒙皮的蒙皮权重。
15.根据权利要求13所述的计算机实现的方法,其中,将所述第一化身身体变换为所述第二化身身体包括在所述第一身体笼和所述第二身体笼之间执行插值。
16.根据权利要求13所述的计算机实现的方法,其中,将所述第一化身身体变换为所述第二化身身体包括使小于所述第一化身身体的整体的所述第一化身身体的一部分形变。
17.一种系统,包括:
存储器,其上存储有指令;以及
处理设备,耦合到所述存储器,所述处理设备用于访问所述存储器并执行所述指令,其中,所述指令使所述处理设备执行包括以下的操作:
识别具有第一身体笼的第一化身身体;
识别具有目标身体笼的目标化身身体;以及
在所述第一身体笼和所述目标身体笼之间执行插值,以获得与第二化身身体相对应的第二身体笼,从而提供所述第一化身身体到所述第二化身身体的变换。
18.根据权利要求17所述的系统,其中,执行所述插值包括执行所述插值以生成与所述目标身体笼完全匹配的所述第二身体笼,从而提供完全变换。
19.根据权利要求17所述的系统,其中,执行所述插值包括将所述第一化身身体变换为所述第二化身身体,所述第二化身身体是所述第一化身身体与所述目标化身身体之间的混合体,从而提供部分变换。
20.根据权利要求17所述的系统,其中,执行所述插值包括使小于所述第一化身身体的整体的所述第一化身身体的一部分形变。
CN202480004666.6A 2023-08-14 2024-08-13 动态改变虚拟体验中的化身身体 Pending CN120188198A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202363532556P 2023-08-14 2023-08-14
US63/532,556 2023-08-14
PCT/US2024/042103 WO2025038632A1 (en) 2023-08-14 2024-08-13 Dynamically changing avatar bodies in a virtual experience

Publications (1)

Publication Number Publication Date
CN120188198A true CN120188198A (zh) 2025-06-20

Family

ID=92763045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202480004666.6A Pending CN120188198A (zh) 2023-08-14 2024-08-13 动态改变虚拟体验中的化身身体

Country Status (5)

Country Link
EP (1) EP4584754A1 (zh)
JP (1) JP2026501495A (zh)
KR (1) KR20250078549A (zh)
CN (1) CN120188198A (zh)
WO (1) WO2025038632A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120560518A (zh) * 2025-07-30 2025-08-29 杭州秋果计划科技有限公司 基于场景感知的数字人动态交互方法、装置及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11615601B2 (en) * 2021-03-15 2023-03-28 Roblox Corporation Layered clothing that conforms to an underlying body and/or clothing layer

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120560518A (zh) * 2025-07-30 2025-08-29 杭州秋果计划科技有限公司 基于场景感知的数字人动态交互方法、装置及设备

Also Published As

Publication number Publication date
KR20250078549A (ko) 2025-06-02
WO2025038632A1 (en) 2025-02-20
EP4584754A1 (en) 2025-07-16
JP2026501495A (ja) 2026-01-16

Similar Documents

Publication Publication Date Title
KR102374307B1 (ko) 애니메이팅된 캐릭터의 수정
US11645805B2 (en) Animated faces using texture manipulation
CN120188198A (zh) 动态改变虚拟体验中的化身身体
US20250148720A1 (en) Generation of three-dimensional meshes of virtual characters
US20250157152A1 (en) Automatic generation of avatar body models
US20250054257A1 (en) Automatic fitting and tailoring for stylized avatars
US12505635B2 (en) Determination and display of inverse kinematic poses of virtual characters in a virtual environment
US20250061673A1 (en) Normal-regularized conformal deformation for stylized three dimensional (3d) modeling
US20250299445A1 (en) Mesh retopology for improved animation of three-dimensional avatar heads
US20240378836A1 (en) Creation of variants of an animated avatar model using low-resolution cages
CN121336239A (zh) 自动蒙皮迁移与刚性自动蒙皮
WO2025226594A1 (en) Projecting radiance fields to mesh surfaces

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