Redirecting role parameters to simplify stack processing to develop different virtual environments
By selecting the role modifier and generating updated characterization data, and optimizing the role stack processing, the memory consumption and computing load problems of character animation in the 3D virtual environment are solved, the reuse of the role library and the unity of animation data are realized, and the application response ability and the accuracy of character movement are improved.
Patent Information
- Application Number
- CN202510161035.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-02-11
- Filing Date
- 2025-02-13
- Publication Date
- 2025-08-15
AI Technical Summary
When handling character animation in 3D virtual environments, the prior art has problems such as excessive memory consumption, insufficient processing bandwidth, weak real-time production response capabilities, and waste of resources and excessive computing load caused by changes in bone structure between characters. It is especially difficult to support real-time adjustment in complex environments.
By selecting the role modifier, identify available parameters, generate updated characterization data, and make roles appear transformed when rendering the user interface, optimize role stack processing with management servers and databases, reducing duplicate calculations and resource waste.
It realizes the reuse of role libraries and the unification of animation data, reduces computing overhead, improves application responsiveness and accuracy of character movement, saves production time and resources, simplifies processing delays and manually corrects errors.
Smart Images

Figure CN120495481A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the benefit of U.S. Provisional Application Serial No. 63 / 552,790, entitled “NATURAL LANGUAGE STACK-BASED TRAVERSAL MODEL,” filed on February 13, 2024. The subject matter of this related application is hereby incorporated herein by reference. Background Art Technical Field
[0003] Embodiments of the present disclosure relate generally to computer science, virtual environments, and complex software applications, and more particularly to retargeting character parameters to simplify stack processing, especially when processing virtual objects of different origins.
[0004] Description of related technologies
[0005] Computer-aided drawing applications require excessive resources from most any device that provides access to such applications, especially those responsible for creating and / or managing 3D virtual environments. For example For applications such as animation of humans, animals, and / or other objects in complex environments, excessive memory consumption can hamper performance and utility. Memory consumption and processing bandwidth can be particularly limiting in some instances where animators and technical artists store large numbers of variations of similar animations to accommodate only slight differences in character features, proportions, and / or structure. When the affected animation clips must be recreated or duplicated for each variation, the production pipeline can become cluttered with redundant data, further wasting available processing bandwidth and memory during critical design stages.
[0006] In some instances, character movement requires repeated modifications due to variations in bone structure between characters, which can waste significant resources. For example, developers may attempt to adapt existing motion to a character that doesn't align with a specific source skeleton, often requiring manual per-bone adjustments to the application. These per-frame calculations and manual edits can be particularly taxing on available resources when they involve complex characters. Such practices can be inefficient solutions because they involve frequent periods of limited processing bandwidth, slowing interactive playback and iterative refinement, ultimately hindering the responsiveness required for large-scale or real-time productions.
[0007] Crowd scenes can present significant technical hurdles because they inherently involve excessive geometry calculations. For example, characters with custom skeleton definitions can force the application to simultaneously resolve multiple character definition mismatches and hierarchy constraints. This parallel processing of individually defined skeletons can severely impact real-time engine performance and result in excessive rendering overhead. Scenes with hundreds or thousands of characters can therefore become particularly susceptible to stuttering, dropped frames, and increased render times.
[0008] In summary, many existing pipelines struggle to support real-time character adjustments, especially when faced with factors such as user-driven character rendering. Without an efficient way to handle different character definitions and / or sources, the system must repeatedly calculate per-bone transformations, for example, consuming significant computational resources and causing developer fatigue in the process. This can also force frequent asset re-baking or recreation, exacerbating inefficiencies in memory management and processing bandwidth.
[0009] As shown above, there is a need in the art for more effective techniques to solve different character definition problems in virtual animation environments. Summary of the Invention
[0010] One embodiment describes a method for redirecting character parameters to simplify stack processing of a 3D environment. According to some embodiments, the method includes the steps of: selecting a character modifier to be applied to representation data of a specific character associated with a virtual environment; determining that a specific parameter that is subject to modification when the character modifier is executed is not available for the specific character; determining that other representation data of a separate character includes an available parameter that can be modified according to the character modifier; generating updated representation data for the specific character that references the available parameter; modifying the updated representation data according to the character modifier; and causing the specific character to exhibit a transition according to the character modifier when the specific character is being rendered via at least one user interface.
[0011] Other embodiments of the present disclosure include, but are not limited to, one or more computer-readable media including instructions for performing one or more aspects of the disclosed technology and a computing device for performing one or more aspects of the disclosed technology.
[0012] One technical advantage of the disclosed techniques over existing techniques is that they provide an efficient system for retargeting representation data to unify instances of representation data for a virtual environment. Specifically, such retargeting facilitates the reuse of character libraries and other existing animation data, thereby saving production time and ensuring consistent results across scenes. For example, when modifying character poses using retargeted representation data, computational overhead can be reduced, thereby avoiding duplicate calculations that would otherwise be performed if these techniques were unavailable.
[0013] Additionally, once an instance of representation data has been at least temporarily redirected, applying role modifiers to specific parameters of the updated representation data eliminates disruptive workflows for designers. This modular approach to implementing role transitions reduces processing delays that might otherwise be experienced when modifying representation data without considering the content of the available representation data. Thus, the techniques detailed herein can reduce downtime for users while increasing available processing bandwidth at affected devices, at least compared to those users and devices employing existing approaches.
[0014] Yet another technical advantage is that redirection can reduce or simplify the computational load of application modules responsible for resolving relationships between objects in the virtual environment ( For example , when generating frame data or rendering animations). When the character stack is modified to include the retargeting operation, the CPU and GPU load can also be reserved for other downstream tasks involved in the design of the virtual environment. Designers can then focus more on creative design tasks and minimize the time spent manually correcting errors or inconsistencies in the viewport representation that can be applied via the design. Reducing the number of manual error corrections in this way can save power and computing resources across the enterprise, especially when several designers collaborate to create virtual environments with complex character interactions ( For example , crowd animation).
[0015] Furthermore, utilizing the disclosed techniques, increased application responsiveness and improved accuracy of character movement can be achieved compared to those achievable using existing techniques, thereby streamlining the 3D design process while conserving computing resources.
[0016] These technical advantages provide one or more technical advances over prior art approaches. BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The manner in which the above-described features of the various embodiments may be understood in detail in the more particular description of the inventive concept briefly described above, by reference to various embodiments, some of which are illustrated in the accompanying drawings. It should be noted, however, that the drawings illustrate only typical embodiments of the inventive concept and are therefore not to be considered limiting of the scope in any way, and that other equally effective embodiments may exist.
[0018] Figure 1 A software infrastructure configured to implement one or more aspects of various embodiments is shown.
[0019] Figure 2 According to various embodiments, Figure 1 A conceptual diagram of the architecture and information flow of the management server implementation.
[0020] Figure 3According to various embodiments, Figure 1 A conceptual diagram of redirecting characterizing data parameters within an endpoint device under the direction of a software application executed on the endpoint device.
[0021] Figure 4 Methods for redirecting representation data of characters in a virtual environment to efficiently apply modifications across a multi-character environment are presented according to various embodiments.
[0022] Figure 5 is achievable according to various implementation schemes Figure 1 A more detailed illustration of the computing device illustrating the functionality of the entities shown. DETAILED DESCRIPTION
[0023] In the following description, numerous specific details are set forth to provide a more thorough understanding of various embodiments. However, it will be apparent to one skilled in the art that the inventive concept can be practiced without one or more of these specific details.
[0024] System Overview
[0025] Figure 1 1 is a conceptual diagram of a system 100 configured to implement one or more aspects of various embodiments. As shown, the system 100 includes at least one endpoint device 102, at least one management server 106, at least one database 108, and optionally at least one trained model 110, each of which is available via a communication network 104. The communication network 104 can represent, for example, any technically feasible network or networks, including a wide area network (WAN) such as the Internet, a local area network (LAN), a Wi-Fi network, a cellular network, or a combination thereof.
[0026] The endpoint device 102 may represent a computing device ( For example , desktop computing devices, laptop computing devices, mobile computing devices, etc.). Figure 1 As shown, at least one software application 103 may be installed and executed on the endpoint device 102. The software application 103 may represent, for example, one or more of a design application, a design application plug-in, a web browser application, a web browser extension, a productivity application, etc. The software application 103 may interface with the management server 106 and / or a separate application to access the role pipeline 120 and the solver module 122, which may be managed by the management server 106 (and / or Figure 1 managed by other entities not shown in the figure).
[0027] The management server 106 can communicate with the management server 106 (and / or Figure 1The management server 106 may represent a computing device ( For example , rack servers, blade servers, tower servers, etc.). In some embodiments, database 108 may include at least one software application 103, one or more character pipelines 120 operating in association with software application 103, one or more solver modules 122 associated with software application 103, one or more frame data modules 124, and one or more viewport / UI modules 126 (as well as other information and / or modules associated with software application 103), details of which will be discussed below. Figures 2 to 4 Describe in more detail.
[0028] The user may use the software app 103 by interacting with the viewport / UI module 126 of the software application 103. The viewport / UI module 126 may facilitate user input (e.g., input for different virtual characters (i.e., equipment) to be included in the animation or virtual scene that the user is creating using the software application 103. For example , using voice-based input, text-based input, etc.). In some embodiments, the software application 103 can facilitate user selection of how each character will be modified at the character pipeline 120. When the user selects a particular character to be modified during animation playback, the software application 103 can determine whether the particular character is suitable for retargeting or whether it has already been associated with unified parameters (e.g., by activating a modifier stack or initializing one or more other operations). In some embodiments, character data can be exported (e.g., from local and / or non-local storage) to the software application 130 for use in creating animations and / or virtual scenes.
[0029] As further described herein, redirection may involve associating certain role parameters for a particular role with existing unified parameters. Alternatively or additionally, redirection may involve supplementing role data with unified parameters, at least when such existing parameters are not already associated with the particular role. During redirection, management server 106 may access database 108 and trained model 110 to leverage existing parameter data or models to efficiently redirect or supplement the parameters for the particular role. Alternatively or additionally, one or more heuristic processes may be utilized to redirect or supplement the parameters for the particular role, as further described herein.
[0030] As described above, the management server 106 can be configured to facilitate at least temporary unification of characters and / or their corresponding parameters in order to efficiently operate a character stack developed by a user via the endpoint device 102. By unifying certain character data used for character modification, the character stack can be processed more efficiently while also creating more accurate and consistent character transitions and movements across frames of associated animations or other rendered output. For example, a user can, via the interface of the endpoint device 102, create a character object ( For example , pedestrians in the crowd) select the modifier ( For example In response, the management server 106 may access the database 108 to determine any unified parameters to be modified by the selected modifier ( For example , bone labels, bone hierarchies, etc.). When such unified parameters are not already stored in association with the selected character, the management server 106 may identify available unified parameters for another character and redirect the selected character's existing parameters accordingly.
[0031] When the user selects a modifier for a particular character and the appropriate parameters ( For example , parameters subject to the selected modifier) are redirected, the character pipeline 120 can be attached to apply the modifier. The modifier can then be applied to the redirected parameters of a specific character to achieve the corresponding modification ( For example , causing a part of the character's body to rotate to look at a specific object). As a result of the modification, representation data may be generated to represent the modified pose of the specific character.
[0032] In some embodiments, the characterization data may be used by the solver module 122 to perform other calculations to determine and resolve issues that the modified character pose may have in the current scene or animation, as further described herein. The solver module 122 may perform calculations such as inverse kinematics ( For example ,use or other inverse kinematics tools at the management server 106 or other local or non-local device), collision detection, enforcing biomechanical constraints, and other tasks to ensure that a particular character exhibits realistic movement in the scene. The frame data module 124 can then receive any additional characterization data from the solver module 122 to generate any corresponding frame data and write it to the database 108. In some embodiments, and with confirmation from the user and / or other manual input from the user (for example, when relatively non-standard naming is employed), the characterization data can also be used to further train any trained models 110, as further described herein. Figures 2 to 4 A more detailed explanation of the functionality of the management server 106 and the software app 103 is provided.
[0033] It should be understood that Figure 1 The depicted endpoint devices 102, management server 106, database 108, and trained models 110 are illustrative, and variations and modifications are possible. The connection topology (including the number of processors and memories) may be modified as needed, and in some embodiments, Figure 1 One or more components shown in may not exist, or may be combined into fewer components. In addition, in some embodiments, Figure 1 One or more components shown may be implemented as virtualized resources in one or more virtual computing environments and / or cloud computing environments. Figure 1 One or more of the components shown may be implemented exclusively at the endpoint device 102, independent of the network 104, or independent of a connection to the endpoint device 102. Figure 1 The network topology shown may provide some or all of the components.
[0034] Actively redirects character parameters of the selected modifier
[0035] Figure 2 According to various embodiments, Figure 1 A conceptual diagram of the architecture and information flow implemented by the management server 106. Figure 1 The architecture provided in the view 200 of FIGURE 200 may include an application database 202 for storing and retrieving data associated with characters 204 and / or scene objects 206. When a user is interacting with an application (such as the software application 103), the user may provide user input 210 for selecting character parameters 212 and / or modifiers 214 for the character 204. When the user provides certain user selections 226, data associated with the character 204 (e.g., data representing how the character's skeleton will respond to collisions with different characters) may be stored in a corresponding application database 202 (such as the application database 103). Figure 1 The database shown is updated at ''library 108).
[0036] When a character is imported into a particular environment that a user is creating, the imported character may be represented by representation data 220 that is structurally and / or hierarchically different relative to the representation data 220 of other characters in the environment. This may also occur with original characters created via the software application 103. Thus, because the representation data 220 of each respective character of the environment may be frequently retrieved to apply modifiers and render frames, providing uniformity during the processing of such representation data 220 may optimize resource usage. For example, when a user selects a modifier 214 to be applied to a particular character 204 that has been imported from or otherwise created in a different application, the representation data 220 of that particular character may be at least temporarily redirected to achieve such uniformity. In some embodiments, importing or otherwise creating a character that has not yet been subject to redirection may cause the software application 103 to actively initiate the redirection process ( For example , via one or more plug-ins or other suitable modules).
[0037] In some embodiments, a user may access the GUI of the software application 103 to interact with the characterization data 220 for a particular role. The characterization data 220 may include parameters associated with the unified role definition or associated with the modifiers 214 to be applied to the particular role, and / or may reveal that such parameters are missing. When such parameters are not available or otherwise linked to a particular role, the role pipeline module 216 may be called to update the role stack 218 for the particular role 204. The role stack 218 may be updated to include tasks to be performed to modify the parameters and / or link the parameters to the definition of the particular role 204 ( example like , collision detection) or other operations. Actively attaching the character stack 218 in this manner can alleviate the delay when the user subsequently selects the modifier 214 to be applied to a particular character 204. When the modifier 214 is subsequently applied, the redirection can be performed according to the active character stack 218 operation, and the modifier 214 can be applied to the redirected character parameters. The resulting characterization data 220 ( For example , as a new pose, replacement pose, final pose, etc.) is written back to the appropriate application database 202 for that particular character 204.
[0038] In some embodiments, parameters for redirecting a character 204 can be implemented by referencing other characters 204 associated with the environment and / or otherwise available via the application database 202 or other network location. For example, a user can select a modifier 214 for a first character to cause the first character to avoid scene objects 206 ( For example, using the stepoverObject() modifier). In response, the software application 103 may determine whether an existing second character has undergone the same modification and / or is otherwise associated with any character parameters affected by the selected modifier 214. When the affected parameters are identified for the second character, the representation data 220 may be appended and / or otherwise modified to include or reference those parameters for implementing the selected modifier 214. This application operation may be performed according to the character pipeline of the first character and may optionally involve appending the operation to another character pipeline of the second character or otherwise retrieving parameter data from the application database 202.
[0039] In some embodiments, redirection may involve employing one or more heuristic processes and / or one or more trained machine learning models 208. For example, certain parameters of the second character that were previously affected by the modifier 214 may be processed to generate one or more embeddings that can be mapped to the latent space. Existing parameters of the first character may also be processed to generate other embeddings that can then be mapped to the latent space. A distance between the embeddings of the first character and the second character may then be determined, and optionally compared to a threshold. When the latent distance between the embeddings of certain parameters meets one or more thresholds, certain character parameters of the first character may be determined to correspond to parameters of the second character that are suitable for the selected modifier 214. The selected modifier 214 may then be executed to modify certain character parameters of the first character because those parameters exhibit a threshold similarity ( For example , “left_arm[]” and “left_arm_bone[]” have a threshold similarity).
[0040] In some instances, the existing parameters of the first character may not be available, or may otherwise be determined to have a threshold correlation with the affected parameters of the second character. In these cases, the characterization data 220 of the first character may be appended or otherwise modified to include or reference the parameters determined to be subject to the selected modifier 214 ( For example , lower limb hierarchical data, ankle parameters, etc.). In some embodiments, modifying the characterization data 220 in this manner may involve an automated process performed via a character pipeline for the first character, and / or manual input from a user. For example, in response to determining that the first character does not include certain parameters for implementing the selected modifier 214, the software application 103 may cause an interface of the computing device to render a notification to the user. The notification may solicit the user to modify the character definition of the first character using one or more application interfaces of the software application 103. For example, the user may manually provide type input, menu selection, and / or other input to cause the characterization data 220 of the first character to be modified to include or link to appropriate parameters for implementing the selected modifier 214 ( For example , new skeleton definition).
[0041] When the selected modifier 214 has been applied to the characterization data 220, the updated characterization data can be written to the database 202. In some instances, at least with respect to the initially retrieved characterization data 220 ( For example , initially representing an initial pose), this updated representation data may represent a subsequent or final pose of the affected character. The high-level solver module 222 may access these instances of the representation data 220 for the characters 204 in the scene to solve for any adjustments made to any of the characters 204, the scene objects 206, and / or other constraints of the scene. In some examples, the high-level solver module 222 may process instances of the representation data 220 from the application database 202 through the character pipeline 216 of the appropriate character 204. For example, the high-level solver module 222 may solve for a scenario in which the representation data 220 for the character 204 remains unchanged ( For example , a problem that can be evident in certain scenes where the lower skeleton responds to objects but the upper skeleton remains static).
[0042] In some embodiments, the high-level solver module 222 can communicate with the scene output / viewport 226 of the software application 226 architecture. Frame data generated by the frame data module 224 can also be used in the scene output / viewport 226, thereby allowing the user to visualize animations created based on the user input 210. In some embodiments, the frame data module 224 can receive data from the high-level solver module 222 to generate frame data that can be converted to other file formats. In some instances, the user can optionally interact with the viewport 226 to adjust the character 204, scene objects 206, and / or other data accessible via the software application 103. For example, the user can manipulate the position of the first character to bring the first character closer to a specific object or other obstacle in the virtual environment. Accordingly, the viewport 226 can communicate such modifications to the high-level solver module 222 and / or the character pipeline module 216 to implement any modifiers that may be related to repositioning, objects, or obstacles. When the modifier 214 associated with the obstacle or object is directed to modifying the updated characterization data 220 newly attached to the first character or the parameters referenced by the updated characterization data, the redirection process can be bypassed. Thus, the software application 103 can make real-time adjustments to the first character without duplicating code or other processes. This can save significant processing bandwidth and memory, especially for complex environments such as Figure 3 For example, role pipelines may be simplified over time for environments, software applications 103, and / or any other entity that regularly utilizes such software applications 103. Consequently, devices operating those role pipelines may achieve reduced power consumption, thereby allowing that power to be used for other power-intensive operations ( For example, further training model 208 and / or processing data using model 208).
[0043] Figure 3 Shown are various embodiments according to Figure 1 FIG300 is a conceptual diagram of a user interface associated with a software application 103 executed on one of the endpoint devices 102. Figure 3 As shown, characterization data 304 associated with a frame 318 may be received at the character stack 218 of the character pipeline module 216. The characterization data 304 may optionally be stored in association with one or more characters 320, which may be viewed via the scene output / viewport 226 of an application (such as the software application 103).
[0044] like Figure 3 As shown, a read 302 operation can be performed to retrieve certain characterization data 304, which can be subjected to modifiers 310 selected by a user and / or by the software application 103. In some embodiments, the read 302 operation can be performed to retrieve certain characterization data 304 without initially providing modifiers 310 in the corresponding stack. In some instances, when characterization data 304 is obtained from another application or environment, the software application 103 can proactively perform a redirection 306 to unify the corresponding imported character with other characters in the environment. As indicated by ellipsis 316, the software application 103 can implement multiple other character stacks and modules to facilitate sharing of characterization data between different characters.
[0045] when Figure 3 When the character stack 218 is appended to include at least the redirect 306 operation, redirected character data 308 may be generated. Redirecting the character data 304 in this manner may facilitate reuse of available animation libraries and improve the accuracy of the modifier 310 operation. For example, the modifier 310 operation may correspond to a "look-at()" modifier that may introduce constraints and / or outline character pose adjustments ( For example , the virtual person's head or other appendage movement limitations). These adjustments may be made to the redirected representation data 308 to represent a pose or movement consistent with the appropriate biological limitations of the corresponding character 320. Because the original representation data 304 may not include the appropriate parameters to be modified when executing the modifier 310 ( For example , representing creature constraints, skeletal hierarchies, etc.), and thus performing a redirection 306 operation. Accordingly, appropriate parameters may be at least temporarily included in or referenced by the redirected character data 308 to facilitate applying modifiers 310 to the appropriate referenced parameters. Thereafter, updated characterization data 312 may be generated to reflect the adjustments made to those parameters.
[0046] like Figure 3 As further shown, the updated characterization data 312 can be subjected to a write 314 operation to include the updated characterization data 312 in the environment or scenario being designed. In some embodiments, further processing can be performed on the redirected characterization data 308 and / or the updated characterization data 312 to solve problems that may be apparent to other modules of the software application 103. Nevertheless, the redirect 306 operation can ensure that further processing will be performed on the affected roles according to the unified system, as described in detail herein. The efficiencies achieved by these modular redirection techniques can include memory savings, CPU and GPU load reduction, and improved application responsiveness. These efficiencies can be further realized when changes in role definitions are unified across all role stacks, thereby reducing the number of inconsistencies that are apparent during downstream design tasks.
[0047] It should be noted that Figure 3 The diagrams shown are not intended to be limiting, and instances of representational data may be available at any level of granularity consistent with the scope of the present disclosure, along with any amount, type, form, etc. of UI elements, or may be modified to include any amount, type, form, etc. of UI elements.
[0048] Figure 4 A method 400 for redirecting characterization data parameters of a character to be included in a virtual environment is shown, according to various embodiments. Figure 4 As shown, the method begins at step 402 by selecting a character modifier ( For example , as above combined Figures 1 to 3 At step 404, the management server 106 determines that a particular parameter that is subject to modification when executing the role modifier is not available for the particular role ( For example , as above combined Figures 1 to 3 described above).
[0049] At step 406, the management server 106 determines that other characterization data of the individual character includes available parameters ( For example , as above combined Figures 1 to 3 At step 408, the management server 106 generates updated characterization data ( For example , as above combined Figures 1 to 3 described above).
[0050] At step 410, the management server 106 modifies the updated character data according to the character modifier. At step 412, the management server 106 causes the specific character to exhibit a transition based on the updated character data when the specific character is being rendered via at least one user interface. For example , as above combined Figures 1 to 3 described above).
[0051] Figure 5 is achievable according to various implementation schemes Figure 1 Detailed description of the computing device and the functionalities of the entities shown. This figure in no way limits or is intended to limit the scope of the various embodiments. In various implementations, system 500 can be an augmented reality, virtual reality, or mixed reality system or device, a personal computer, a video game console, a personal digital assistant, a mobile phone, a mobile device, or any other device suitable for practicing the various embodiments. Furthermore, in various embodiments, any combination of two or more systems 500 can be coupled together to practice one or more aspects of the various embodiments.
[0052] As shown, system 500 includes a central processing unit (CPU) 502 and system memory 504 that communicate via a bus path, which may include a memory bridge 505. CPU 502 includes one or more processing cores, and in operation, CPU 502 is the main processor of system 500 that controls and coordinates the operations of other system components. System memory 504 stores software applications and data for use by CPU 502. CPU 502 runs software applications and an optional operating system. It may be For example The memory bridge 505 of the north bridge chip is connected via a bus or other communication path ( For example , HyperTransport link) is connected to the I / O (input / output) bridge 507. It can be For example The I / O bridge 507 of the south bridge chip receives data from one or more user input devices 508 ( For example , keyboard, mouse, joystick, digitizing tablet, touchpad, touch screen, still or video camera, motion sensor and / or microphone) receives user input and forwards the input to CPU 502 via memory bridge 505.
[0053] The display processor 512 communicates via a bus or other communication path ( For example , PCI Express, Accelerated Graphics Port, or HyperTransport link) is coupled to the memory bridge 505; in one embodiment, the display processor 512 is a graphics subsystem including at least one graphics processing unit (GPU) and graphics memory. The graphics memory includes a display memory ( For example , frame buffer). Graphics memory may be integrated into the same device as the GPU, connected to the GPU as a separate device, and / or implemented within system memory 504.
[0054] The display processor 512 periodically delivers pixels to the display device 510 ( For example, screen or a conventional CRT, plasma, OLED, SED or LCD based monitor or television). Additionally, the display processor 512 may output the pixels to a film recorder suitable for reproducing the computer generated image on photographic film. The display processor 512 may provide an analog or digital signal to the display device 510. In various embodiments, the display device 510 may be displayed to one or more users via the display device 510. Figure 3 One or more of the various graphical user interfaces set forth in , and one or more users can input data to and receive visual output from those various graphical user interfaces.
[0055] A system disk 514 is also connected to the I / O bridge 507 and may be configured to store content and applications as well as data for use by the CPU 502 and the display processor 512. The system disk 514 provides non-volatile storage for applications and data and may include a fixed or removable hard disk drive, a flash memory device, and a CD-ROM, DVD-ROM, Blu-ray, HD-DVD, or other magnetic storage device, optical storage device, or solid-state storage device.
[0056] Switch 516 provides connections between I / O bridge 507 and other components such as network adapter 518 and various add-in cards 520 and 521. Network adapter 518 allows system 500 to communicate with other systems via an electronic communications network, and may include wired or wireless communications over local area networks and wide area networks such as the Internet.
[0057] Other components (not shown) including USB or other port connections, film recording devices, etc. may also be connected to the I / O bridge 507. For example, an audio processor may be used to generate analog or digital audio output from instructions and / or data provided by the CPU 502, system memory 504, or system disk 514. Figure 5 The communication paths interconnecting the various components in the device may be implemented using any suitable protocol, such as PCI (Peripheral Component Interconnect), PCI Express (PCI-E), AGP (Accelerated Graphics Port), HyperTransport, or any other bus or point-to-point communication protocol, and connections between different devices may use different protocols, as is known in the art.
[0058] In one embodiment, the display processor 512 includes circuits optimized for graphics and video processing, including, for example, video output circuitry, and constitutes a graphics processing unit (GPU). In another embodiment, the display processor 512 includes circuits optimized for general-purpose processing. In yet another embodiment, the display processor 512 may be integrated with one or more other system elements (such as the memory bridge 505, the CPU 502, and the I / O bridge 507) to form a system on a chip (SoC). In still further embodiments, the display processor 512 is omitted, and software executed by the CPU 502 performs the functions of the display processor 512.
[0059] Pixel data can be provided directly from the CPU 502 to the display processor 512. In some embodiments, instructions and / or data representing the scene are provided to a render farm or a set of server computers, each of which is similar to the system 500, via a network adapter 518 or a system disk 514. The render farm uses the provided instructions and / or data to generate one or more rendered images of the scene. These rendered images can be stored in a digital format on a computer-readable medium and optionally returned to the system 500 for display. Similarly, the stereoscopic image pairs processed by the display processor 512 can be output to other systems for display, stored in a system disk 514, or stored in a digital format on a computer-readable medium.
[0060] Alternatively, the CPU 502 provides data and / or instructions defining the desired output images to the display processor 512, which generates pixel data for one or more output images based on the data and / or instructions, including characterizing and / or adjusting the offset between the stereo image pairs. The data and / or instructions defining the desired output images may be stored in the system memory 504 or graphics memory within the display processor 512. In an embodiment, the display processor 512 includes 3D rendering capabilities for generating pixel data for output images based on instructions and data defining the geometry, lighting, shading, texturing, motion, and / or camera parameters of the scene. The display processor 512 may also include one or more programmable execution units capable of executing shader programs, tone mapping programs, and the like.
[0061] Furthermore, in other embodiments, the CPU 502 or the display processor 512 may be replaced or supplemented by any technically feasible form of processing device configured to process data and execute program code. Such a processing device may be, for example, a central processing unit (CPU), a graphics processing unit (GPU), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc. In various embodiments, any of the operations and / or functions described herein may be performed by the CPU 502, the display processor 512, or one or more other processing devices, or any combination of these different processors.
[0062] The CPU 502, render farm, and / or display processor 512 may employ any surface or volume rendering technique known in the art to create one or more rendered images based on the provided data and instructions, including rasterization, scanline rendering REYES or micropolygon rendering, ray casting, ray tracing, image-based rendering techniques, and / or combinations of these techniques and any other rendering or image processing techniques known in the art.
[0063] In other contemplated embodiments, system 500 may be a robot or robotic device and may include a CPU 502 and / or other processing unit or device and system memory 504. In such embodiments, system 500 may or may not include Figure 5 System memory 504 and / or other memory units or devices in system 500 may include instructions that, when executed, cause a robot or robotic device represented by system 500 to perform one or more operations, steps, tasks, etc.
[0064] It should be understood that the system shown herein is illustrative and that variations and modifications are possible. The connection topology, including the number and arrangement of bridges, may be modified as needed. For example, in some embodiments, the system memory 504 is connected to the CPU 502 directly rather than through a bridge, and other devices communicate with the system memory 504 via the memory bridge 505 and the CPU 502. In other alternative topologies, the display processor 512 is connected to the I / O bridge 507 or directly to the CPU 502 rather than being connected to the memory bridge 505. In other embodiments, the I / O bridge 507 and the memory bridge 505 may be integrated into a single chip. The specific components shown herein are optional; for example, any number of plug-in cards or peripheral devices may be supported. In some embodiments, the switch 516 is eliminated, and the network adapter 518 and plug-in cards 520, 521 are directly connected to the I / O bridge 507.
[0065] In summary, the disclosed technology provides a modular approach for applying character modifications to different groups of characters in an environment by facilitating parameter redirection. The redirection operation can be initiated by the system proactively and / or in response to user input to the system, such as when a user selects to apply a character modifier to a particular character. The selection of a character modifier can be performed by a user accessing an interface of a software application and identifying a particular adjustment to be made to a particular character. The character modifier can relate to, for example, the effects of a character's physical presence on the character's surroundings when the character is in a virtual environment (e.g., For example , adjust the pose of a specific character while riding in a vehicle (in traffic on a virtual highway).
[0066] Selection of a character modifier may initiate redirection of certain parameters for a particular character, such as those that may facilitate accurate portrayal of a particular character ( For example , restricting leg movement to the interior of the vehicle). Although such parameters may not be readily available for a particular role, the system may utilize one or more heuristics and / or machine learning models to determine another available role ( For example , another character in another vehicle within the virtual highway environment) is associated with such parameters. The automated operation may include identifying parameters of available characters whose data has been modified according to the selected character modifier. Alternatively or additionally, the operation may include comparing information from the selected character modifier with the specific character to determine whether certain parameters are not available in the characterization data for the specific character.
[0067] In some embodiments, when certain parameters are not available or referenced in the character data for a particular role, but are available for an individual role, the system may initiate a redirection operation. The redirected character data may then be generated to provide a link or reference between the available parameters for the individual role and the current parameters for the particular role. Alternatively or in addition, the parameters or other values ( For example , movement restrictions of the legs or other appendages of a virtual person in a virtual vehicle) are attached to the current representation data of a specific character to generate redirected representation data.
[0068] When the redirected representation data has been generated, the character modifier may be executed and the system may generate updated representation data. This updated representation data may then be utilized by other modules of the system and / or further processed to resolve any conflicts that the updated representation data may have with the virtual environment and / or virtual objects within the virtual environment. Such processing may involve the system soliciting further input from the user to resolve outstanding issues ( For example ,problems between a virtual human in a vehicle and a specific character), although such inputs may be rare when redirection has been performed for several characters in the virtual environment.
[0069] One technical advantage of the disclosed techniques over existing techniques is that they provide efficient, systematic techniques for retargeting representation data to unify instances of representation data for a virtual environment. Specifically, such retargeting facilitates the reuse of character libraries and other existing animation data, thereby saving production time and ensuring consistent results across scenes. For example, when modifying character poses using retargeted representation data, computational overhead can be reduced, thereby avoiding duplicate calculations that would otherwise be performed if these techniques were unavailable.
[0070] Additionally, once an instance of representation data has been at least temporarily redirected, applying role modifiers to specific parameters of the updated representation data eliminates disruptive workflows for designers. This modular approach to implementing role transitions reduces processing delays that might otherwise be experienced when modifying representation data without considering the content of the available representation data. Thus, the techniques detailed herein can reduce downtime for users while increasing available processing bandwidth at affected devices, at least compared to those users and devices employing existing approaches.
[0071] Yet another technical advantage is that redirection can reduce or simplify the computational load of application modules responsible for resolving relationships between objects in the virtual environment ( For example , when generating frame data or rendering animations). When the character stack is modified to include the retargeting operation, the CPU and GPU load can also be reserved for other downstream tasks involved in the design of the virtual environment. Designers can then focus more on creative design tasks and minimize the time spent manually correcting errors or inconsistencies in the viewport representation that can be applied via the design. Reducing the number of manual error corrections in this way can save power and computing resources across the enterprise, especially when several designers collaborate to create virtual environments with complex character interactions ( For example , crowd animation).
[0072] 1. In some embodiments, a computer-implemented method for applying character modifications to a character in a virtual environment includes: selecting a character modifier to be applied to representation data of a specific character associated with the virtual environment; determining that a specific parameter that is subject to modification when the character modifier is executed is not available for the specific character; determining that other representation data of a separate character includes available parameters that can be modified according to the character modifier; generating updated representation data for the specific character that references the available parameters; modifying the updated representation data according to the character modifier; and causing the specific character to exhibit a transformation according to the character modifier when the specific character is being rendered via at least one user interface.
[0073] 2. A computer-implemented method as described in clause 1, wherein: the character modifier corresponds to an application operation for modifying an initial pose of the specific character in the virtual environment, and the transition corresponds to the specific character transitioning from the initial pose to a final pose.
[0074] 3. The computer-implemented method of clause 1 further comprises processing the other characterization data using one or more trained machine learning models before determining that the other characterization data of the separate character includes the available parameters that can be modified according to the character modifier.
[0075] 4. The computer-implemented method of clause 1, wherein selecting the character modifier to apply to the characterization data of the particular character is performed in response to user input or in response to automated operation of an application that is providing access to the characterization data.
[0076] 5. The computer-implemented method of clause 1, further comprising, before generating the updated characterization data, modifying existing parameters of the characterization data to include content of or reference to the available parameters.
[0077] 6. The computer-implemented method of clause 5, wherein the particular character corresponds to a virtual person in the virtual environment, and the existing parameters characterize an appendage of the virtual person.
[0078] 7. The computer-implemented method of clause 6, further comprising generating frame data representing frames depicting the transition of the particular character between an initial pose and a final pose before causing the particular character to exhibit the transition in accordance with the character modifier.
[0079] 8. The computer-implemented method of clause 1, wherein generating the updated characterization data referencing the available parameters for the particular role comprises storing the available parameters within the characterization data or storing a reference to the available parameters within the characterization data.
[0080] 9. The computer-implemented method of clause 1, wherein determining that the particular parameter is unavailable for the particular character is performed before selecting the character modifier to apply to the characterization data.
[0081] 10. The computer-implemented method of clause 1, wherein the character modifier corresponds to a movement constraint for the particular character.
[0082] 11. In some embodiments, one or more non-transitory computer-readable media store instructions that, when executed by one or more processors, cause the one or more processors to redirect representation data of a character in a virtual environment by performing the following operations: selecting a character modifier to be applied to the representation data of a specific character associated with the virtual environment; determining that a specific parameter that is subject to modification when the character modifier is executed is not available for the specific character; determining that other representation data for a separate character includes available parameters that can be modified according to the character modifier; generating updated representation data for the specific character that references the available parameters; modifying the updated representation data according to the character modifier; and causing the specific character to exhibit a transition according to the character modifier when the specific character is being rendered via at least one user interface.
[0083] 12. One or more non-transitory computer-readable media as described in clause 11, wherein the character modifier corresponds to movement of the particular character relative to a scene object, the scene object being rendered with the particular character and the separate character via at least one user interface.
[0084] 13. One or more non-transitory computer-readable media as described in claim 11, wherein the operation further includes receiving user input identifying the character modifier for moving the particular character relative to scene objects in the virtual environment before selecting the character modifier of the representation data to be applied to the particular character.
[0085] 14. The one or more non-transitory computer-readable media of clause 11, wherein the representation data is imported from a separate application than an application that renders the one or more user interfaces.
[0086] 15. One or more non-transitory computer-readable media as described in claim 11, wherein the operation further includes processing the other characterization data using a trained machine learning model trained based on different instances of the characterization data before determining that the other characterization data of the separate character includes the available parameters that can be modified according to the character modifier.
[0087] 16. The one or more non-transitory computer-readable media of clause 11, wherein the operations further comprise, before generating the updated characterization data, modifying existing parameters of the characterization data to include content of or reference to the available parameters.
[0088] 17. The one or more non-transitory computer-readable media of clause 16, wherein the particular character corresponds to a virtual person in the virtual environment, and the existing parameters characterize an appendage of the virtual person.
[0089] 18. One or more non-transitory computer-readable media as described in claim 17, wherein the operation further includes generating frame data representing frames depicting the transition of the specific character between an initial pose and a final pose before causing the specific character to perform the transition according to the character modifier.
[0090] 19. The one or more non-transitory computer-readable media of clause 11, wherein generating updated characterization data referencing the available parameters for the particular role comprises storing the available parameters within the characterization data or storing a reference to the available parameters within the characterization data.
[0091] 20. In some embodiments, a computer system includes: one or more memories, the one or more memories including instructions; and one or more processors, the one or more processors coupled to the one or more memories and configured, when executing the instructions, to apply character modifications to a character in a virtual environment by performing the following operations: selecting a character modifier to be applied to representation data of a specific character associated with the virtual environment; determining that a specific parameter that is subject to modification when executing the character modifier is not available for the specific character; determining that other representation data of a separate character includes available parameters that can be modified according to the character modifier; generating updated representation data for the specific character that references the available parameters; modifying the updated representation data according to the character modifier; and causing the specific character to exhibit a transformation according to the character modifier when the specific character is being rendered via at least one user interface.
[0092] Any and all combinations of any of the claim elements of any of the claims and / or any elements described in this application, in any manner, are within the contemplated scope of this disclosure and protection.
[0093] The descriptions of the various embodiments have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments.
[0094] Aspects of the embodiments of the present invention may be embodied as systems, methods, or computer program products. Thus, aspects of the present disclosure may take the form of a complete hardware implementation, a complete software implementation (including firmware, resident software, microcode, etc.), or a combination of software and hardware implementations, all of which may be collectively referred to herein as "modules," "systems," or "computers." Additionally, any hardware and / or software technology, process, function, component, engine, module, or system described in the present disclosure may be implemented as a circuit or a group of circuits. Additionally, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer-readable media having computer-readable program code embodied thereon.
[0095] Any combination of one or more computer-readable media may be utilized. A computer-readable medium may be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of computer-readable storage media would include the following: an electrical connection with one or more wires, a portable computer floppy disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer-readable storage medium may be any tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device, or apparatus.
[0096] Aspects of the present disclosure are described above with reference to the flowchart illustrations and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It should be understood that each frame in the flowchart illustration and / or block diagram and the combination of frames in the flowchart illustration and / or block diagram can be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer or other programmable data processing device to produce a machine. The instructions enable the function / action specified in one or more frames of the flowchart and / or block diagram to be implemented when the processor of the computer or other programmable data processing device is executed. Such processors can be, but are not limited to, general-purpose processors, special-purpose processors, special-purpose processors or field programmable gate arrays.
[0097] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functions and operations of possible implementations of the systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each box in the flowchart or block diagram may represent a module, fragment or portion of a code, and the code includes one or more executable instructions for implementing the specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the box may not occur in the order indicated in the accompanying drawings. For example, two boxes shown in succession may actually be executed substantially simultaneously, or the boxes may sometimes be executed in reverse order, depending on the functionality involved. It should also be noted that each box in the block diagram and / or flowchart illustration and the combination of boxes in the block diagram and / or flowchart illustration can be implemented by a system based on special-purpose hardware that performs the specified function or action or a combination of special-purpose hardware and computer instructions.
[0098] The present invention has been described above with reference to specific embodiments. However, those skilled in the art will appreciate that various modifications and variations may be made thereto without departing from the broader spirit and scope of the invention as set forth in the appended claims. For example, and without limitation, although much of the description herein relates to a specific type of I / O device that can acquire data associated with an object of interest, those skilled in the art will appreciate that the systems and techniques described herein are applicable to other types of I / O devices. Accordingly, the foregoing description and accompanying drawings are to be regarded in an illustrative rather than a restrictive sense.
[0099] While the foregoing is directed to embodiments of the present disclosure, other and further embodiments of the disclosure may be devised without departing from the basic scope thereof, and the scope of the disclosure is determined by the claims that follow.
Claims
1. A computer-implemented method for applying a character modification to a character in a virtual environment, the method comprising: selecting a character modifier to be applied to representation data of a particular character associated with the virtual environment; determining that a particular parameter that is subject to modification when executing the character modifier is not available for the particular character; Other characterizing data determining an individual character include available parameters that can be modified according to said character modifiers; generating updated characterization data for the specific role that references the available parameters; modifying the updated representation data according to the character modifier; as well as The particular character is caused to exhibit a transition according to the character modifier while the particular character is being rendered via at least one user interface.
2. The computer-implemented method of claim 1 , wherein: The character modifier corresponds to an application operation for modifying an initial posture of the specific character in the virtual environment, and The transition corresponds to the particular character moving from the initial pose to a final pose.
3. The computer-implemented method of claim 1 , further comprising processing the other characterization data using one or more trained machine learning models before determining that the other characterization data for the individual character includes the available parameters that can be modified according to the character modifier.
4. The computer-implemented method of claim 1 , wherein selecting the character modifier to apply to the characterization data for the particular character is performed in response to user input or in response to automated operation of an application that is providing access to the characterization data. 5 . The computer-implemented method of claim 1 , further comprising, before generating the updated characterization data, modifying existing parameters of the characterization data to include content of or reference to the available parameters.
6. The computer-implemented method of claim 5, wherein the particular character corresponds to a virtual human in the virtual environment, and the existing parameters characterize an appendage of the virtual human.
7. The computer-implemented method of claim 6, further comprising generating frame data representing frames depicting the transition of the particular character between an initial pose and a final pose before causing the particular character to exhibit the transition in accordance with the character modifier.
8. The computer-implemented method of claim 1, wherein generating the updated characterization data referencing the available parameters for the particular role comprises storing the available parameters within the characterization data or storing a reference to the available parameters within the characterization data.
9. The computer-implemented method of claim 1, wherein determining that the particular parameter is unavailable for the particular character is performed before selecting the character modifier to apply to the characterization data.
10. The computer-implemented method of claim 1, wherein the character modifier corresponds to a movement constraint for the particular character.
11. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause the one or more processors to apply a character modification to a character in a virtual environment by: selecting a character modifier to be applied to representation data of a particular character associated with the virtual environment; determining that a particular parameter that is subject to modification when executing the character modifier is not available for the particular character; Other characterizing data determining an individual character include available parameters that can be modified according to said character modifiers; generating updated characterization data for the specific role that references the available parameters; modifying the updated representation data according to the character modifier; as well as The particular character is caused to exhibit a transition according to the character modifier while the particular character is being rendered via at least one user interface.
12. The one or more non-transitory computer-readable media of claim 11, wherein the character modifier corresponds to movement of the particular character relative to a scene object that is rendered with the particular character and the separate character via at least one user interface.
13. One or more non-transitory computer-readable media as described in claim 11, wherein the operation further includes receiving user input identifying the character modifier for moving the particular character relative to scene objects in the virtual environment before selecting the character modifier to be applied to the representation data of the particular character.
14. The one or more non-transitory computer-readable media of claim 11, wherein the representation data is imported from a separate application than an application that renders the at least one user interface.
15. One or more non-transitory computer-readable media as described in claim 11, wherein the operation further includes processing the other characterization data using a trained machine learning model trained based on different instances of characterization data before determining that the other characterization data for the separate character includes the available parameters that can be modified according to the character modifier.
16. The one or more non-transitory computer-readable media of claim 11, wherein the operations further comprise modifying existing parameters of the characterization data to include content of or reference to the available parameters before generating the updated characterization data.
17. The one or more non-transitory computer-readable media of claim 16, wherein the specific character corresponds to a virtual person in the virtual environment, and the existing parameters characterize an appendage of the virtual person.
18. One or more non-transitory computer-readable media as described in claim 17, wherein the operations further include generating frame data representing frames depicting the transition of the particular character between an initial pose and a final pose before causing the particular character to express the transition according to the character modifier.
19. The one or more non-transitory computer-readable media of claim 11, wherein generating updated characterization data referencing the available parameters for the particular role comprises storing the available parameters within the characterization data or storing a reference to the available parameters within the characterization data.
20. A computer system comprising: one or more memories comprising instructions; and One or more processors coupled to the one or more memories and configured, when executing the instructions, to apply the character modification to a character in the virtual environment by: selecting a character modifier to be applied to representation data of a particular character associated with the virtual environment; determining that a particular parameter that is subject to modification when executing the character modifier is not available for the particular character; Other characterizing data determining an individual character include available parameters that can be modified according to said character modifiers; generating updated characterization data for the specific role that references the available parameters; modifying the updated representation data according to the character modifier; and causing the particular character to exhibit a transition according to the character modifier while the particular character is being rendered via at least one user interface.