CN113658308B - Method and system for multiplexing actions of roles of different body types - Google Patents

Method and system for multiplexing actions of roles of different body types Download PDF

Info

Publication number
CN113658308B
CN113658308B CN202110981147.3A CN202110981147A CN113658308B CN 113658308 B CN113658308 B CN 113658308B CN 202110981147 A CN202110981147 A CN 202110981147A CN 113658308 B CN113658308 B CN 113658308B
Authority
CN
China
Prior art keywords
character
role
skeleton node
component
skeleton
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110981147.3A
Other languages
Chinese (zh)
Other versions
CN113658308A (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.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN202110981147.3A priority Critical patent/CN113658308B/en
Publication of CN113658308A publication Critical patent/CN113658308A/en
Application granted granted Critical
Publication of CN113658308B publication Critical patent/CN113658308B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/403D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • A63F13/57Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game
    • A63F13/577Simulating properties, behaviour or motion of objects in the game world, e.g. computing tyre load in a car race game using determination of contact between game characters or objects, e.g. to avoid collision between virtual racing cars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images
    • A63F2300/6607Methods for processing data by generating or executing the game program for rendering three dimensional images for animating game characters, e.g. skeleton kinematics

Abstract

The invention provides a method and a system for multiplexing role actions of different body types, wherein the method generates a role component collision body set and a role muscle space which are jointed with a role model based on the identification of role data: inputting the character data, and generating a character component collision body set attached to the character model according to the character data by the collision body management module; generating a role muscle space according to the role data through a muscle space module; detecting a collision condition of the character components in the collision body management module through the collision body detection module; the method comprises the steps that a reverse motion module is used for calculating a target position of a skeleton node of a role component in a collision body detection module, and a muscle space module is used for updating data of a role muscle space according to the calculated target position of the skeleton node of the role component; the muscle space module drives the character to perform skeleton node movement, and the action gesture adapting to the body type of the current character is presented, so that the action of the character can be attached to the body type of the current character while each frame played retains the original art effect.

Description

Method and system for multiplexing actions of roles of different body types
Technical Field
The invention relates to the technical field of role action multiplexing, in particular to a method and a system for multiplexing role actions of different body types.
Background
In the prior art, the performance effect of the action resources is limited, the action resources are optimized only according to the characteristic requirements, and the action resources cannot be directly multiplexed on roles of different body types.
Disclosure of Invention
In order to overcome the above problems, an object of the present invention is to provide a method capable of generating character actions by recognizing character data, which can more fit the body shape of a current character while maintaining the original art effect for each frame played.
The invention is realized by adopting the following scheme: a method of multiplexing different body type character actions, the method generating a set of character component collimators and character muscle spaces fitting a character model based on identification of character data:
inputting the character data, and generating a character component collision body set attached to the character model according to the character data by the collision body management module;
generating a role muscle space according to the role data through a muscle space module, inputting action resources of the role, and playing the role action gesture of the current frame;
detecting the collision condition of the character components in the collision body management module through the collision body detection module, and calculating the target positions of the skeleton nodes of the character components;
the method comprises the steps that a reverse motion module is used for calculating a target position of a skeleton node of a role component in a collision body detection module, and a muscle space module is used for updating data of a role muscle space according to the calculated target position of the skeleton node of the role component;
The muscle space module is used for driving the character to move the skeleton node, presenting the action gesture adapting to the current character body type, judging whether the action of the character is finished, if yes, stopping, otherwise, entering the next frame, and playing the action gesture of the current frame, so that the character action can be jointed with the body type of the current character while each frame played retains the original art effect.
Further, the collision body management module generates a role component collision body set attached to the role model according to the role data, specifically: s11, inputting character data, reading character skeleton nodes, judging whether a character skeleton node queue is empty, and if yes, completing character component collision body set generation; if not, reading a skeleton node from the skeleton node queue of the role; step S12, judging whether the read skeleton node is a role component skeleton node, if so, acquiring the associated component skeleton node information of the role component skeleton node, and adding all the role associated component skeleton nodes into a role associated component skeleton node queue; if not, judging whether other role skeleton nodes exist in the role skeleton node queue; step S13, judging whether other role skeleton nodes exist in the role skeleton node queue, if yes, reading one skeleton node from the role skeleton node queue, and if not, completing the generation of a role component collision body set; step S14, judging whether a skeleton node queue of the role-related component is empty, if yes, entering step S13, otherwise, reading a skeleton node of the role-related component from the skeleton node queue of the role-related component; step S15, acquiring vertex and vertex weight data associated in the role skin data by the role skeleton node and the role association component skeleton node, adding the vertex and vertex weight data into a vertex data queue, and deleting vertex data smaller than the reservation weight of the corresponding role skeleton node type from the vertex data queue; s16, deleting scattered invalid vertex data from a vertex data queue, creating a collision body of a collision body type corresponding to a role skeleton node, and calculating and setting the center position of the collision body based on the role skeleton node and the role related component skeleton node data; step S17, calculating and setting the size of a collision body and other collision body parameters based on the vertex data array, adding the created collision body into a role component collision body set, judging whether other role related component skeleton nodes exist in the role related component skeleton node array, if yes, entering step S14, otherwise, entering step S13.
Further, the muscle space module drives the skeletal nodes of the roles to move to present the action gesture matched with the current body type, and the action gesture is specifically as follows: s21, inputting muscle space data, reading bone node data in a current rotation angle queue of a bone node, and adding the bone node data into the bone node queue; step S22, judging whether a skeleton node queue is empty, if yes, completing action gesture presentation, stopping, if no, reading a skeleton node from the skeleton node queue, rotating the current skeleton node to a recorded current rotation angle, rotating all sub-component skeleton node positions of the current skeleton node to the current rotation angle around the current skeleton node position, changing all sub-component skeleton node positions of the current skeleton node, changing the bound skin vertex positions, changing the skin vertex positions, and changing the role model grid drawing; step S23, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S22, otherwise, completing action gesture presentation and stopping.
Further, the muscle space module generates a role muscle space according to the role data, specifically: s31, inputting character data, creating a default character muscle space instance, reading character skeleton node information, and adding all character skeleton nodes into a skeleton node queue; step S32, judging whether a skeleton node queue is empty, if yes, completing role muscle space generation, and if not, reading a role skeleton node from the skeleton node queue; step S33, judging whether the character skeleton node is a character component skeleton node, if yes, acquiring a rotatable range of the character component skeleton node, adding character component skeleton node information and the rotatable range thereof into a component skeleton node queue of a character muscle space, and if not, judging whether other skeleton nodes exist in the skeleton node queue; step S34, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S32, and if not, completing the generation of the role muscle space.
Further, the muscle space module updates muscle space data according to the target position of the skeletal node, specifically: s41, inputting target position data of the role skeleton nodes, reading the role skeleton node data, and adding all the role skeleton nodes into a skeleton node queue; step S42, judging whether a skeleton node queue is empty, if yes, completing the updating of the space data of the role muscles, and if not, reading a role skeleton node from the skeleton node queue; step S43, judging whether the role skeleton node is a role component skeleton node, if yes, acquiring a father skeleton node related to the role component skeleton node, otherwise, marking the current role skeleton node as processed, and removing the current skeleton node from a skeleton node queue; step S44, judging whether the father skeleton node is in a skeleton node queue, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if not, judging whether the father skeleton node has more than one directly-related child component skeleton node; step S45, judging whether a skeleton node queue of a role exists or not, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if no, completing the updating of the muscle space data of the role; step S46, judging whether the father skeleton node has more than one directly-related child component skeleton node, if yes, entering into step S43, otherwise, calculating the rotation angle required by the rotation transfer of the role skeleton node towards the target position through the father skeleton node, and reading the rotatable range recorded in the component skeleton node queue by the father skeleton node; step S47, judging whether the rotation angle is in a rotatable range, if yes, rotating the parent skeleton node by a corresponding rotation angle, recording the rotation angle of the parent skeleton node into a current rotation angle queue of the skeleton node, entering step S43, and if not, obtaining the closest rotation angle in the rotatable range, and rotating the parent skeleton node by the corresponding rotation angle.
Further, the collision body detection module detects the collision condition of the character component and calculates the target position of the skeleton node of the character component, specifically: step S51, inputting the character data of the playing action gesture, reading the character component information, and adding all character components into a character component queue; step S52, judging whether the character component queue is empty, if yes, completing target position calculation of the skeleton node of the character component, and if not, judging whether the collision body aggregate data of the character component of the previous frame is empty; step S53, judging whether the collision body set data of the previous frame of character components is empty, if yes, recording the collision body set data of the current character components as the collision body set data of the previous frame of character components, finishing the calculation of the target positions of skeleton nodes of the character components, and if not, reading one character component from a character component queue; step S54, acquiring collision body collection data of the character component, and sequentially adding a collision body array from a root collision body to a tail collision body; step S55, judging whether the collision body queue is empty, if yes, judging whether other character components exist in the character component queue, and if not, reading a collision body from the collision body queue; step S56, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording the current character component collision body set data as the previous frame of character component collision body set data; step S57, collision detection is carried out on the collision body and collision bodies of non-current character components in the collision body set data of the character components of the previous frame one by one; step S58, judging whether a collision body set is generated, if so, moving the end node associated with the current collision body to the position of the previous frame until no collision is generated, recording the target position of the end node associated with the current collision body as the position of the current end node, otherwise, recording the target position of the end node associated with the current collision body as the position of the current end node; step S59, judging whether other collision bodies exist in the collision body array, if yes, reading one collision body from the collision body array, and if not, judging whether other character components exist in the character component array.
Further, the reverse motion module calculates the target position of the associated bone node, specifically: step S61, inputting the character data of the playing action gesture and the target position of the skeleton node of the character component, reading the character component information, and adding all the character components into a character component queue; step S62, judging whether a character component queue is empty, if yes, finishing the calculation of the target positions of the related skeleton nodes, and if not, judging whether the target position set data of the skeleton nodes of the character component of the previous frame is empty; step S63, judging whether the target position set data of the skeleton node of the previous frame of the role component is empty, if yes, recording the target position set data of the skeleton node of the role component as the target position set data of the skeleton node of the previous frame of the role component, completing the calculation of the target position of the associated skeleton node, if not, reading one role component from a role component queue, recording the action execution proportion of the current role component as 100%, acquiring the skeleton node data of the role component, and sequentially adding the skeleton node queue from the tail end skeleton node to the root skeleton node; step S64, judging whether a skeleton node queue is empty, if yes, judging whether other character components exist in the character component queue, if not, reading a skeleton node from the skeleton node queue, acquiring the current position, the target position and the last frame position of the skeleton node, and calculating the proportion from the last frame position to the current position of the target position; step S65, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording that the target position set data of the skeleton node of the character component is the target position set data of the skeleton node of the character component of the previous frame; step S66, judging whether the current proportion is smaller than the action execution proportion of the current character component, if yes, updating the action execution proportion of the current character component to the current proportion, otherwise, moving the target position to the action execution proportion of the current character component from the previous frame position; step S67, judging whether other skeleton nodes exist in the skeleton node queue, if so, reading one skeleton node from the skeleton node queue, and if not, judging whether other character components exist in the character component queue.
The invention also provides a system for multiplexing the actions of roles of different body types, wherein the system is provided with the collision body management module, the collision detection module, the reverse movement module and the muscle space module;
inputting the character data, and generating a character component collision body set attached to the character model according to the character data by the collision body management module;
generating a role muscle space according to the role data through a muscle space module, inputting action resources of the role, and playing the role action gesture of the current frame;
detecting the collision condition of the character components in the collision body management module through the collision body detection module, and calculating the target positions of the skeleton nodes of the character components;
the method comprises the steps that a reverse motion module is used for calculating a target position of a skeleton node of a role component in a collision body detection module, and a muscle space module is used for updating data of a role muscle space according to the calculated target position of the skeleton node of the role component;
the muscle space module is used for driving the character to move the skeleton node, presenting the action gesture adapting to the current character body type, judging whether the action of the character is finished, if yes, stopping, otherwise, entering the next frame, and playing the action gesture of the current frame, so that the character action can be jointed with the body type of the current character while each frame played retains the original art effect.
Further, the muscle space module drives the skeletal nodes of the roles to move to present the action gesture matched with the current body type, and the action gesture is specifically as follows: s21, inputting muscle space data, reading bone node data in a current rotation angle queue of a bone node, and adding the bone node data into the bone node queue; step S22, judging whether a skeleton node queue is empty, if yes, completing action gesture presentation, stopping, if no, reading a skeleton node from the skeleton node queue, rotating the current skeleton node to a recorded current rotation angle, rotating all sub-component skeleton node positions of the current skeleton node to the current rotation angle around the current skeleton node position, changing all sub-component skeleton node positions of the current skeleton node, changing the bound skin vertex positions, changing the skin vertex positions, and changing the role model grid drawing; step S23, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S22, otherwise, completing action gesture presentation and stopping.
Further, the collision body detection module detects the collision condition of the character component and calculates the target position of the skeleton node of the character component, specifically: step S51, inputting the character data of the playing action gesture, reading the character component information, and adding all character components into a character component queue; step S52, judging whether the character component queue is empty, if yes, completing target position calculation of the skeleton node of the character component, and if not, judging whether the collision body aggregate data of the character component of the previous frame is empty; step S53, judging whether the collision body set data of the previous frame of character components is empty, if yes, recording the collision body set data of the current character components as the collision body set data of the previous frame of character components, finishing the calculation of the target positions of skeleton nodes of the character components, and if not, reading one character component from a character component queue; step S54, acquiring collision body collection data of the character component, and sequentially adding a collision body array from a root collision body to a tail collision body; step S55, judging whether the collision body queue is empty, if yes, judging whether other character components exist in the character component queue, and if not, reading a collision body from the collision body queue; step S56, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording the current character component collision body set data as the previous frame of character component collision body set data; step S57, collision detection is carried out on the collision body and collision bodies of non-current character components in the collision body set data of the character components of the previous frame one by one; step S58, judging whether a collision body set is generated, if so, moving the end node associated with the current collision body to the position of the previous frame until no collision is generated, recording the target position of the end node associated with the current collision body as the position of the current end node, otherwise, recording the target position of the end node associated with the current collision body as the position of the current end node; step S59, judging whether other collision bodies exist in the collision body array, if yes, reading one collision body from the collision body array, and if not, judging whether other character components exist in the character component array.
Further, the reverse motion module calculates the target position of the associated bone node, specifically: the reverse motion module calculates the target position of the associated skeleton node, specifically: step S61, inputting the character data of the playing action gesture and the target position of the skeleton node of the character component, reading the character component information, and adding all the character components into a character component queue; step S62, judging whether a character component queue is empty, if yes, finishing the calculation of the target positions of the related skeleton nodes, and if not, judging whether the target position set data of the skeleton nodes of the character component of the previous frame is empty; step S63, judging whether the target position set data of the skeleton node of the previous frame of the role component is empty, if yes, recording the target position set data of the skeleton node of the role component as the target position set data of the skeleton node of the previous frame of the role component, completing the calculation of the target position of the associated skeleton node, if not, reading one role component from a role component queue, recording the action execution proportion of the current role component as 100%, acquiring the skeleton node data of the role component, and sequentially adding the skeleton node queue from the tail end skeleton node to the root skeleton node; step S64, judging whether a skeleton node queue is empty, if yes, judging whether other character components exist in the character component queue, if not, reading a skeleton node from the skeleton node queue, acquiring the current position, the target position and the last frame position of the skeleton node, and calculating the proportion from the last frame position to the current position of the target position; step S65, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording that the target position set data of the skeleton node of the character component is the target position set data of the skeleton node of the character component of the previous frame; step S66, judging whether the current proportion is smaller than the action execution proportion of the current character component, if yes, updating the action execution proportion of the current character component to the current proportion, otherwise, moving the target position to the action execution proportion of the current character component from the previous frame position; step S67, judging whether other skeleton nodes exist in the skeleton node queue, if so, reading one skeleton node from the skeleton node queue, and if not, judging whether other character components exist in the character component queue.
The invention has the beneficial effects that: according to the invention, the collision body and the muscle space of the character are generated, and when the action is played, collision detection, reverse motion calculation and muscle space updating action gestures are used, so that the 3D character action can be more fit with the body shape of the current character while each frame played retains the original artistic effect; according to the method, the action resources are multiplexed in the action playing process of the roles with different body types by dynamically updating the action gestures, so that the 3D role action production consumption is reduced, the development period of relevant projects of the 3D role actions is shortened, and the development progress is accelerated.
Drawings
FIG. 1 is a schematic flow chart of the method of the present invention.
FIG. 2 is a schematic diagram of a character component collider set that is capable of generating a fitted character model based on character data by a collider management module according to an embodiment of the invention.
FIG. 3 is a schematic diagram of a muscle space module driving movement of skeletal nodes of a character to assume an action posture that adapts to a current body shape in accordance with an embodiment of the present invention.
Fig. 4 is a schematic diagram of a muscle space module for generating a character muscle space from character data in accordance with an embodiment of the invention.
FIG. 5 is a schematic diagram of a muscle space module according to an embodiment of the present invention updating muscle space data based on skeletal node target locations.
FIG. 6 is a schematic diagram of a collision detection module for detecting a collision of a character component to calculate a target position of a skeletal node of the character component in accordance with an embodiment of the invention.
FIG. 7 is a schematic diagram of a reverse motion module calculating a target location of an associated skeletal node in accordance with an embodiment of the present invention.
Detailed Description
The invention is further described below with reference to the accompanying drawings.
Referring to fig. 1, a method for multiplexing character actions of different body types according to the present invention generates a character component collision volume set and a character muscle space fitting a character model based on identification of character data:
inputting the character data, and generating a character component collision body set attached to the character model according to the character data by the collision body management module;
generating a role muscle space according to the role data through a muscle space module, inputting action resources of the role, and playing the role action gesture of the current frame;
detecting the collision condition of the character components in the collision body management module through the collision body detection module, and calculating the target positions of the skeleton nodes of the character components;
the method comprises the steps that a reverse motion module is used for calculating a target position of a skeleton node of a role component in a collision body detection module, and a muscle space module is used for updating data of a role muscle space according to the calculated target position of the skeleton node of the role component;
The muscle space module is used for driving the character to move the skeleton node, presenting the action gesture adapting to the current character body type, judging whether the action of the character is finished, if yes, stopping, otherwise, entering the next frame, and playing the action gesture of the current frame, so that the character action can be jointed with the body type of the current character while each frame played retains the original art effect.
The invention is further illustrated by the following examples:
referring to fig. 1, the present invention generates a character component collision body set and a character muscle space for fitting a character model by identifying character data, and when each frame of action of a character is played, a collision detection module detects a collision condition of a character component, calculates a target position of a component skeleton node, and a reverse motion module calculates an associated skeleton node target position.
The definition of character data in the present invention includes, but is not limited to, character model mesh data, character skin data, character skeleton node data, and the like.
The definition of character components in this invention includes, but is not limited to, head, body, left hand, right hand, left foot, right foot, etc.
The definition of a collision body in the present invention includes, but is not limited to, a spherical collision body, a cylindrical collision body, a rectangular parallelepiped collision body, and the like.
The definition of a character skeleton node in the invention is a node which can drive the model vertex to change on a character, and one character component comprises a plurality of character skeleton nodes.
The definition of the muscle space in the invention is a set of the range of the rotational movement area of all skeletal nodes of the 3D character, and the rotational movement of each skeleton in the range of the corresponding rotational movement area accords with the movement rule of the muscles of the character.
The definition of the action gesture in the invention is the expression state of the 3D character in one frame when playing the action resource, and the number of frames contained in one action resource is the same as the number of action gestures contained in the action resource.
The method is suitable for action playing processes of all three-dimensional (3D) characters, including but not limited to action playing processes of 3D characters in games, action playing processes of 3D characters in AR and VR applications, and action playing processes of 3D characters in other application programs.
The covering of the covering vertex position refers to a technology of binding a surface grid of the 3D model with a bone vertex;
The bound skin is a 3D model surface grid bound by bone vertexes in the skin technology;
the bound skin vertexes refer to vertexes of the 3D model surface grid on the bound skin;
the binding skin vertex position refers to the binding skin vertex position;
for example: adding a skeleton for the cube, wherein six faces of the cube are the skins bound by the skeleton, vertexes on the six faces are bound skin vertexes, and positions of the bound skin vertexes are bound skin vertex positions.
Wherein:
1) Collision body management module
The module realizes the function of automatically generating a character component collision body set attached to the character model based on the character data, identifies the character data, and selects a character component collision body set to which each character component is adapted.
The definition of the adapted collision body type is a basic collision body type that enables the collision body to conform more to the character model without affecting the character collision detection effect, and the basic collision body type includes, but is not limited to, a spherical collision body, a cylindrical collision body, a rectangular parallelepiped collision body, and the like.
2) Muscle space module
The module comprises three functions of generating a role muscle space, updating muscle space data according to a target position of a skeleton node, and driving the skeleton node to move so as to present an action gesture adapting to the current body type, so that the whole life cycle of generating, updating and applying the data from the muscle space is realized, and the skeleton node is driven to move so as to present the action gesture on the basis of conforming to the movement rule of the role muscle.
3) Collision detection module
The module achieves the function of calculating the target position of the skeletal node of the component by detecting the collision situation of the collision body in the set of collision bodies of the diagonal components (generated in the collision body management module).
4) Reverse motion module
The module implements the function of calculating a target position of the associated bone node from the component bone node target position calculated in the collision detection module.
Referring to fig. 2, the collision body management module generates a collision body set of character components attached to the character model according to the character data, specifically: s11, inputting character data, reading character skeleton nodes, judging whether a character skeleton node queue is empty, and if yes, completing character component collision body set generation; if not, reading a skeleton node from the skeleton node queue of the role; step S12, judging whether the read skeleton node is a role component skeleton node, if so, acquiring the associated component skeleton node information of the role component skeleton node, and adding all the role associated component skeleton nodes into a role associated component skeleton node queue; if not, judging whether other role skeleton nodes exist in the role skeleton node queue; step S13, judging whether other role skeleton nodes exist in the role skeleton node queue, if yes, reading one skeleton node from the role skeleton node queue, and if not, completing the generation of a role component collision body set; step S14, judging whether a skeleton node queue of the role-related component is empty, if yes, entering step S13, otherwise, reading a skeleton node of the role-related component from the skeleton node queue of the role-related component; step S15, acquiring vertex and vertex weight data associated in the role skin data by the role skeleton node and the role association component skeleton node, adding the vertex and vertex weight data into a vertex data queue, and deleting vertex data smaller than the reservation weight of the corresponding role skeleton node type from the vertex data queue; s16, deleting scattered invalid vertex data from a vertex data queue, creating a collision body of a collision body type corresponding to a role skeleton node, and calculating and setting the center position of the collision body based on the role skeleton node and the role related component skeleton node data; step S17, calculating and setting the size of a collision body and other collision body parameters based on the vertex data array, adding the created collision body into a role component collision body set, judging whether other role related component skeleton nodes exist in the role related component skeleton node array, if yes, entering step S14, otherwise, entering step S13.
Referring to fig. 3, the muscle space module drives the skeletal nodes of the character to move to present an action gesture adapted to the current body type, specifically: s21, inputting muscle space data, reading bone node data in a current rotation angle queue of a bone node, and adding the bone node data into the bone node queue; step S22, judging whether a skeleton node queue is empty, if yes, completing action gesture presentation, stopping, if no, reading a skeleton node from the skeleton node queue, rotating the current skeleton node to a recorded current rotation angle, rotating all sub-component skeleton node positions of the current skeleton node to the current rotation angle around the current skeleton node position, changing all sub-component skeleton node positions of the current skeleton node, changing the bound skin vertex positions, changing the skin vertex positions, and changing the role model grid drawing; step S23, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S22, otherwise, completing action gesture presentation and stopping.
Referring to fig. 4, the muscle space module generates a role muscle space according to the role data, specifically: s31, inputting character data, creating a default character muscle space instance, reading character skeleton node information, and adding all character skeleton nodes into a skeleton node queue; step S32, judging whether a skeleton node queue is empty, if yes, completing role muscle space generation, and if not, reading a role skeleton node from the skeleton node queue; step S33, judging whether the character skeleton node is a character component skeleton node, if yes, acquiring a rotatable range of the character component skeleton node, adding character component skeleton node information and the rotatable range thereof into a component skeleton node queue of a character muscle space, and if not, judging whether other skeleton nodes exist in the skeleton node queue; step S34, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S32, and if not, completing the generation of the role muscle space.
Referring to fig. 5, the muscular space module updates muscular space data according to a target position of a skeletal node, specifically: s41, inputting target position data of the role skeleton nodes, reading the role skeleton node data, and adding all the role skeleton nodes into a skeleton node queue; step S42, judging whether a skeleton node queue is empty, if yes, completing the updating of the space data of the role muscles, and if not, reading a role skeleton node from the skeleton node queue; step S43, judging whether the role skeleton node is a role component skeleton node, if yes, acquiring a father skeleton node related to the role component skeleton node, otherwise, marking the current role skeleton node as processed, and removing the current skeleton node from a skeleton node queue; step S44, judging whether the father skeleton node is in a skeleton node queue, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if not, judging whether the father skeleton node has more than one directly-related child component skeleton node; step S45, judging whether a skeleton node queue of a role exists or not, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if no, completing the updating of the muscle space data of the role; step S46, judging whether the father skeleton node has more than one directly-related child component skeleton node, if yes, entering into step S43, otherwise, calculating the rotation angle required by the rotation transfer of the role skeleton node towards the target position through the father skeleton node, and reading the rotatable range recorded in the component skeleton node queue by the father skeleton node; step S47, judging whether the rotation angle is in a rotatable range, if yes, rotating the parent skeleton node by a corresponding rotation angle, recording the rotation angle of the parent skeleton node into a current rotation angle queue of the skeleton node, entering step S43, and if not, obtaining the closest rotation angle in the rotatable range, and rotating the parent skeleton node by the corresponding rotation angle.
Referring to fig. 6, the collision body detection module detects the collision condition of the character component and calculates the target position of the skeletal node of the character component, specifically: step S51, inputting the character data of the playing action gesture, reading the character component information, and adding all character components into a character component queue; step S52, judging whether the character component queue is empty, if yes, completing target position calculation of the skeleton node of the character component, and if not, judging whether the collision body aggregate data of the character component of the previous frame is empty; step S53, judging whether the collision body set data of the previous frame of character components is empty, if yes, recording the collision body set data of the current character components as the collision body set data of the previous frame of character components, finishing the calculation of the target positions of skeleton nodes of the character components, and if not, reading one character component from a character component queue; step S54, acquiring collision body collection data of the character component, and sequentially adding a collision body array from a root collision body to a tail collision body; step S55, judging whether the collision body queue is empty, if yes, judging whether other character components exist in the character component queue, and if not, reading a collision body from the collision body queue; step S56, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording the current character component collision body set data as the previous frame of character component collision body set data; step S57, collision detection is carried out on the collision body and collision bodies of non-current character components in the collision body set data of the character components of the previous frame one by one; step S58, judging whether a collision body set is generated, if so, moving the end node associated with the current collision body to the position of the previous frame until no collision is generated, recording the target position of the end node associated with the current collision body as the position of the current end node, otherwise, recording the target position of the end node associated with the current collision body as the position of the current end node; step S59, judging whether other collision bodies exist in the collision body array, if yes, reading one collision body from the collision body array, and if not, judging whether other character components exist in the character component array.
Referring to fig. 7, the reverse motion module calculates a target position of the associated bone node, specifically: step S61, inputting the character data of the playing action gesture and the target position of the skeleton node of the character component, reading the character component information, and adding all the character components into a character component queue; step S62, judging whether a character component queue is empty, if yes, finishing the calculation of the target positions of the related skeleton nodes, and if not, judging whether the target position set data of the skeleton nodes of the character component of the previous frame is empty; step S63, judging whether the target position set data of the skeleton node of the previous frame of the role component is empty, if yes, recording the target position set data of the skeleton node of the role component as the target position set data of the skeleton node of the previous frame of the role component, completing the calculation of the target position of the associated skeleton node, if not, reading one role component from a role component queue, recording the action execution proportion of the current role component as 100%, acquiring the skeleton node data of the role component, and sequentially adding the skeleton node queue from the tail end skeleton node to the root skeleton node; step S64, judging whether a skeleton node queue is empty, if yes, judging whether other character components exist in the character component queue, if not, reading a skeleton node from the skeleton node queue, acquiring the current position, the target position and the last frame position of the skeleton node, and calculating the proportion from the last frame position to the current position of the target position; step S65, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording that the target position set data of the skeleton node of the character component is the target position set data of the skeleton node of the character component of the previous frame; step S66, judging whether the current proportion is smaller than the action execution proportion of the current character component, if yes, updating the action execution proportion of the current character component to the current proportion, otherwise, moving the target position to the action execution proportion of the current character component from the previous frame position; step S67, judging whether other skeleton nodes exist in the skeleton node queue, if so, reading one skeleton node from the skeleton node queue, and if not, judging whether other character components exist in the character component queue.
In a word, the method and the device can be applied to action playing processes of all body type 3D roles. Different from the conventional 3D character action playing, the method and the device generate the character collision body and the muscle space, and when the action is played, the collision detection, the reverse motion calculation and the muscle space are used for updating the action gesture, so that the 3D character action can be more fit with the body type of the current character while each frame of the playing keeps the original artistic effect. The invention solves the problem that 3D role action resources cannot be reused in roles of different body types.
The foregoing description is only of the preferred embodiments of the invention, and all changes and modifications that come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.

Claims (6)

1. A method for multiplexing actions of roles of different body types is characterized in that: the method generates a set of character component collider and character muscle spaces that fit the character model based on the identification of the character data:
inputting the character data, and generating a character component collision body set attached to the character model according to the character data by the collision body management module;
generating a role muscle space according to the role data through a muscle space module, inputting action resources of the role, and playing the role action gesture of the current frame;
Detecting the collision condition of the character components in the collision body management module through the collision body detection module, and calculating the target positions of the skeleton nodes of the character components;
the method comprises the steps that a reverse motion module is used for calculating a target position of a skeleton node of a role component in a collision body detection module, and a muscle space module is used for updating data of a role muscle space according to the calculated target position of the skeleton node of the role component;
the muscle space module is used for driving the character to move the skeleton node, presenting the action gesture adapting to the current character body type, judging whether the action of the character is finished, if yes, stopping, otherwise, entering the next frame, and playing the action gesture of the current frame, so that the character action can be jointed with the body type of the current character while each frame played retains the original art effect;
the collision body management module generates a role component collision body set attached to the role model according to the role data, specifically: s11, inputting character data, reading character skeleton nodes, judging whether a character skeleton node queue is empty, and if yes, completing character component collision body set generation; if not, reading a skeleton node from the skeleton node queue of the role; step S12, judging whether the read skeleton node is a role component skeleton node, if so, acquiring the associated component skeleton node information of the role component skeleton node, and adding all the role associated component skeleton nodes into a role associated component skeleton node queue; if not, judging whether other role skeleton nodes exist in the role skeleton node queue; step S13, judging whether other role skeleton nodes exist in the role skeleton node queue, if yes, reading one skeleton node from the role skeleton node queue, and if not, completing the generation of a role component collision body set; step S14, judging whether a skeleton node queue of the role-related component is empty, if yes, entering step S13, otherwise, reading a skeleton node of the role-related component from the skeleton node queue of the role-related component; step S15, acquiring vertex and vertex weight data associated in the role skin data by the role skeleton node and the role association component skeleton node, adding the vertex and vertex weight data into a vertex data queue, and deleting vertex data smaller than the reservation weight of the corresponding role skeleton node type from the vertex data queue; s16, deleting scattered invalid vertex data from a vertex data queue, creating a collision body of a collision body type corresponding to a role skeleton node, and calculating and setting the center position of the collision body based on the role skeleton node and the role related component skeleton node data; step S17, calculating and setting the size of a collision body and other collision body parameters based on the vertex data queue, adding the created collision body into a role component collision body set, judging whether other role related component skeleton nodes exist in the role related component skeleton node queue, if yes, entering step S14, otherwise, entering step S13;
The muscle space module drives the skeletal nodes of the roles to move so as to present the action gesture matched with the current body type, and the action gesture is specifically as follows: s21, inputting muscle space data, reading bone node data in a current rotation angle queue of a bone node, and adding the bone node data into the bone node queue; step S22, judging whether a skeleton node queue is empty, if yes, completing action gesture presentation, stopping, if no, reading a skeleton node from the skeleton node queue, rotating the current skeleton node to a recorded current rotation angle, rotating all sub-component skeleton node positions of the current skeleton node to the current rotation angle around the current skeleton node position, changing all sub-component skeleton node positions of the current skeleton node, changing the bound skin vertex positions, changing the skin vertex positions, and changing the role model grid drawing; step S23, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S22, if not, completing action gesture presentation, and stopping;
the muscle space module generates a role muscle space according to the role data, specifically: s31, inputting character data, creating a default character muscle space instance, reading character skeleton node information, and adding all character skeleton nodes into a skeleton node queue; step S32, judging whether a skeleton node queue is empty, if yes, completing role muscle space generation, and if not, reading a role skeleton node from the skeleton node queue; step S33, judging whether the character skeleton node is a character component skeleton node, if yes, acquiring a rotatable range of the character component skeleton node, adding character component skeleton node information and the rotatable range thereof into a component skeleton node queue of a character muscle space, and if not, judging whether other skeleton nodes exist in the skeleton node queue; step S34, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S32, and if not, completing the generation of the role muscle space;
The muscle space module updates muscle space data according to the target position of the skeleton node, and specifically comprises the following steps: s41, inputting target position data of the role skeleton nodes, reading the role skeleton node data, and adding all the role skeleton nodes into a skeleton node queue; step S42, judging whether a skeleton node queue is empty, if yes, completing the updating of the space data of the role muscles, and if not, reading a role skeleton node from the skeleton node queue; step S43, judging whether the role skeleton node is a role component skeleton node, if yes, acquiring a father skeleton node related to the role component skeleton node, otherwise, marking the current role skeleton node as processed, and removing the current skeleton node from a skeleton node queue; step S44, judging whether the father skeleton node is in a skeleton node queue, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if not, judging whether the father skeleton node has more than one directly-related child component skeleton node; step S45, judging whether a skeleton node queue of a role exists or not, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if no, completing the updating of the muscle space data of the role; step S46, judging whether the father skeleton node has more than one directly-related child component skeleton node, if yes, entering into step S43, otherwise, calculating the rotation angle required by the rotation transfer of the role skeleton node towards the target position through the father skeleton node, and reading the rotatable range recorded in the component skeleton node queue by the father skeleton node; step S47, judging whether the rotation angle is in a rotatable range, if yes, rotating the parent skeleton node by a corresponding rotation angle, recording the rotation angle of the parent skeleton node into a current rotation angle queue of the skeleton node, entering step S43, and if not, obtaining the closest rotation angle in the rotatable range, and rotating the parent skeleton node by the corresponding rotation angle.
2. A method for multiplexing character actions of different body types according to claim 1, wherein: the collision body detection module detects the collision condition of the character component and calculates the target position of the skeleton node of the character component, specifically: step S51, inputting the character data of the playing action gesture, reading the character component information, and adding all character components into a character component queue; step S52, judging whether the character component queue is empty, if yes, completing target position calculation of the skeleton node of the character component, and if not, judging whether the collision body aggregate data of the character component of the previous frame is empty; step S53, judging whether the collision body set data of the previous frame of character components is empty, if yes, recording the collision body set data of the current character components as the collision body set data of the previous frame of character components, finishing the calculation of the target positions of skeleton nodes of the character components, and if not, reading one character component from a character component queue; step S54, acquiring collision body collection data of the character component, and sequentially adding a collision body array from a root collision body to a tail collision body; step S55, judging whether the collision body queue is empty, if yes, judging whether other character components exist in the character component queue, and if not, reading a collision body from the collision body queue; step S56, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording the current character component collision body set data as the previous frame of character component collision body set data; step S57, collision detection is carried out on the collision body and collision bodies of non-current character components in the collision body set data of the character components of the previous frame one by one; step S58, judging whether a collision body set is generated, if so, moving the end node associated with the current collision body to the position of the previous frame until no collision is generated, recording the target position of the end node associated with the current collision body as the position of the current end node, otherwise, recording the target position of the end node associated with the current collision body as the position of the current end node; step S59, judging whether other collision bodies exist in the collision body array, if yes, reading one collision body from the collision body array, and if not, judging whether other character components exist in the character component array.
3. A method for multiplexing character actions of different body types according to claim 1, wherein: the reverse motion module calculates the target position of the associated skeleton node, specifically: step S61, inputting the character data of the playing action gesture and the target position of the skeleton node of the character component, reading the character component information, and adding all the character components into a character component queue; step S62, judging whether a character component queue is empty, if yes, finishing the calculation of the target positions of the related skeleton nodes, and if not, judging whether the target position set data of the skeleton nodes of the character component of the previous frame is empty; step S63, judging whether the target position set data of the skeleton node of the previous frame of the role component is empty, if yes, recording the target position set data of the skeleton node of the role component as the target position set data of the skeleton node of the previous frame of the role component, completing the calculation of the target position of the associated skeleton node, if not, reading one role component from a role component queue, recording the action execution proportion of the current role component as 100%, acquiring the skeleton node data of the role component, and sequentially adding the skeleton node queue from the tail end skeleton node to the root skeleton node; step S64, judging whether a skeleton node queue is empty, if yes, judging whether other character components exist in the character component queue, if not, reading a skeleton node from the skeleton node queue, acquiring the current position, the target position and the last frame position of the skeleton node, and calculating the proportion from the last frame position to the current position of the target position; step S65, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording that the target position set data of the skeleton node of the character component is the target position set data of the skeleton node of the character component of the previous frame; step S66, judging whether the current proportion is smaller than the action execution proportion of the current character component, if yes, updating the action execution proportion of the current character component to the current proportion, otherwise, moving the target position to the action execution proportion of the current character component from the previous frame position; step S67, judging whether other skeleton nodes exist in the skeleton node queue, if so, reading one skeleton node from the skeleton node queue, and if not, judging whether other character components exist in the character component queue.
4. A system for multiplexing actions of roles of different body types, characterized in that: the system is equipped with a collision body management module, a collision body detection module, a reverse motion module, and a muscle space module according to claim 1;
inputting the character data, and generating a character component collision body set attached to the character model according to the character data by the collision body management module;
generating a role muscle space according to the role data through a muscle space module, inputting action resources of the role, and playing the role action gesture of the current frame;
detecting the collision condition of the character components in the collision body management module through the collision body detection module, and calculating the target positions of the skeleton nodes of the character components;
the method comprises the steps that a reverse motion module is used for calculating a target position of a skeleton node of a role component in a collision body detection module, and a muscle space module is used for updating data of a role muscle space according to the calculated target position of the skeleton node of the role component;
the muscle space module is used for driving the character to move the skeleton node, presenting the action gesture adapting to the current character body type, judging whether the action of the character is finished, if yes, stopping, otherwise, entering the next frame, and playing the action gesture of the current frame, so that the character action can be jointed with the body type of the current character while each frame played retains the original art effect;
The collision body management module generates a role component collision body set attached to the role model according to the role data, specifically: s11, inputting character data, reading character skeleton nodes, judging whether a character skeleton node queue is empty, and if yes, completing character component collision body set generation; if not, reading a skeleton node from the skeleton node queue of the role; step S12, judging whether the read skeleton node is a role component skeleton node, if so, acquiring the associated component skeleton node information of the role component skeleton node, and adding all the role associated component skeleton nodes into a role associated component skeleton node queue; if not, judging whether other role skeleton nodes exist in the role skeleton node queue; step S13, judging whether other role skeleton nodes exist in the role skeleton node queue, if yes, reading one skeleton node from the role skeleton node queue, and if not, completing the generation of a role component collision body set; step S14, judging whether a skeleton node queue of the role-related component is empty, if yes, entering step S13, otherwise, reading a skeleton node of the role-related component from the skeleton node queue of the role-related component; step S15, acquiring vertex and vertex weight data associated in the role skin data by the role skeleton node and the role association component skeleton node, adding the vertex and vertex weight data into a vertex data queue, and deleting vertex data smaller than the reservation weight of the corresponding role skeleton node type from the vertex data queue; s16, deleting scattered invalid vertex data from a vertex data queue, creating a collision body of a collision body type corresponding to a role skeleton node, and calculating and setting the center position of the collision body based on the role skeleton node and the role related component skeleton node data; step S17, calculating and setting the size of a collision body and other collision body parameters based on the vertex data queue, adding the created collision body into a role component collision body set, judging whether other role related component skeleton nodes exist in the role related component skeleton node queue, if yes, entering step S14, otherwise, entering step S13;
The muscle space module drives the skeletal nodes of the roles to move so as to present the action gesture matched with the current body type, and the action gesture is specifically as follows: s21, inputting muscle space data, reading bone node data in a current rotation angle queue of a bone node, and adding the bone node data into the bone node queue; step S22, judging whether a skeleton node queue is empty, if yes, completing action gesture presentation, stopping, if no, reading a skeleton node from the skeleton node queue, rotating the current skeleton node to a recorded current rotation angle, rotating all sub-component skeleton node positions of the current skeleton node to the current rotation angle around the current skeleton node position, changing all sub-component skeleton node positions of the current skeleton node, changing the bound skin vertex positions, changing the skin vertex positions, and changing the role model grid drawing; step S23, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S22, if not, completing action gesture presentation, and stopping;
the muscle space module generates a role muscle space according to the role data, specifically: s31, inputting character data, creating a default character muscle space instance, reading character skeleton node information, and adding all character skeleton nodes into a skeleton node queue; step S32, judging whether a skeleton node queue is empty, if yes, completing role muscle space generation, and if not, reading a role skeleton node from the skeleton node queue; step S33, judging whether the character skeleton node is a character component skeleton node, if yes, acquiring a rotatable range of the character component skeleton node, adding character component skeleton node information and the rotatable range thereof into a component skeleton node queue of a character muscle space, and if not, judging whether other skeleton nodes exist in the skeleton node queue; step S34, judging whether other skeleton nodes exist in the skeleton node queue, if yes, entering step S32, and if not, completing the generation of the role muscle space;
The muscle space module updates muscle space data according to the target position of the skeleton node, and specifically comprises the following steps: s41, inputting target position data of the role skeleton nodes, reading the role skeleton node data, and adding all the role skeleton nodes into a skeleton node queue; step S42, judging whether a skeleton node queue is empty, if yes, completing the updating of the space data of the role muscles, and if not, reading a role skeleton node from the skeleton node queue; step S43, judging whether the role skeleton node is a role component skeleton node, if yes, acquiring a father skeleton node related to the role component skeleton node, otherwise, marking the current role skeleton node as processed, and removing the current skeleton node from a skeleton node queue; step S44, judging whether the father skeleton node is in a skeleton node queue, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if not, judging whether the father skeleton node has more than one directly-related child component skeleton node; step S45, judging whether a skeleton node queue of a role exists or not, if yes, moving the skeleton node of the current role to the last position of the skeleton node queue, and if no, completing the updating of the muscle space data of the role; step S46, judging whether the father skeleton node has more than one directly-related child component skeleton node, if yes, entering into step S43, otherwise, calculating the rotation angle required by the rotation transfer of the role skeleton node towards the target position through the father skeleton node, and reading the rotatable range recorded in the component skeleton node queue by the father skeleton node; step S47, judging whether the rotation angle is in a rotatable range, if yes, rotating the parent skeleton node by a corresponding rotation angle, recording the rotation angle of the parent skeleton node into a current rotation angle queue of the skeleton node, entering step S43, and if not, obtaining the closest rotation angle in the rotatable range, and rotating the parent skeleton node by the corresponding rotation angle.
5. The system for multiplexing actions of roles of different sizes according to claim 4, wherein: the collision body detection module detects the collision condition of the character component and calculates the target position of the skeleton node of the character component, specifically: step S51, inputting the character data of the playing action gesture, reading the character component information, and adding all character components into a character component queue; step S52, judging whether the character component queue is empty, if yes, completing target position calculation of the skeleton node of the character component, and if not, judging whether the collision body aggregate data of the character component of the previous frame is empty; step S53, judging whether the collision body set data of the previous frame of character components is empty, if yes, recording the collision body set data of the current character components as the collision body set data of the previous frame of character components, finishing the calculation of the target positions of skeleton nodes of the character components, and if not, reading one character component from a character component queue; step S54, acquiring collision body collection data of the character component, and sequentially adding a collision body array from a root collision body to a tail collision body; step S55, judging whether the collision body queue is empty, if yes, judging whether other character components exist in the character component queue, and if not, reading a collision body from the collision body queue; step S56, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording the current character component collision body set data as the previous frame of character component collision body set data; step S57, collision detection is carried out on the collision body and collision bodies of non-current character components in the collision body set data of the character components of the previous frame one by one; step S58, judging whether a collision body set is generated, if so, moving the end node associated with the current collision body to the position of the previous frame until no collision is generated, recording the target position of the end node associated with the current collision body as the position of the current end node, otherwise, recording the target position of the end node associated with the current collision body as the position of the current end node; step S59, judging whether other collision bodies exist in the collision body array, if yes, reading one collision body from the collision body array, and if not, judging whether other character components exist in the character component array.
6. The system for multiplexing actions of roles of different sizes according to claim 4, wherein: the reverse motion module calculates the target position of the associated skeleton node, specifically: step S61, inputting the character data of the playing action gesture and the target position of the skeleton node of the character component, reading the character component information, and adding all the character components into a character component queue; step S62, judging whether a character component queue is empty, if yes, finishing the calculation of the target positions of the related skeleton nodes, and if not, judging whether the target position set data of the skeleton nodes of the character component of the previous frame is empty; step S63, judging whether the target position set data of the skeleton node of the previous frame of the role component is empty, if yes, recording the target position set data of the skeleton node of the role component as the target position set data of the skeleton node of the previous frame of the role component, completing the calculation of the target position of the associated skeleton node, if not, reading one role component from a role component queue, recording the action execution proportion of the current role component as 100%, acquiring the skeleton node data of the role component, and sequentially adding the skeleton node queue from the tail end skeleton node to the root skeleton node; step S64, judging whether a skeleton node queue is empty, if yes, judging whether other character components exist in the character component queue, if not, reading a skeleton node from the skeleton node queue, acquiring the current position, the target position and the last frame position of the skeleton node, and calculating the proportion from the last frame position to the current position of the target position; step S65, judging whether other character components exist in the character component queue, if yes, reading one character component from the character component queue, and if not, recording that the target position set data of the skeleton node of the character component is the target position set data of the skeleton node of the character component of the previous frame; step S66, judging whether the current proportion is smaller than the action execution proportion of the current character component, if yes, updating the action execution proportion of the current character component to the current proportion, otherwise, moving the target position to the action execution proportion of the current character component from the previous frame position; step S67, judging whether other skeleton nodes exist in the skeleton node queue, if so, reading one skeleton node from the skeleton node queue, and if not, judging whether other character components exist in the character component queue.
CN202110981147.3A 2021-08-25 2021-08-25 Method and system for multiplexing actions of roles of different body types Active CN113658308B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110981147.3A CN113658308B (en) 2021-08-25 2021-08-25 Method and system for multiplexing actions of roles of different body types

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110981147.3A CN113658308B (en) 2021-08-25 2021-08-25 Method and system for multiplexing actions of roles of different body types

Publications (2)

Publication Number Publication Date
CN113658308A CN113658308A (en) 2021-11-16
CN113658308B true CN113658308B (en) 2024-01-05

Family

ID=78481985

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110981147.3A Active CN113658308B (en) 2021-08-25 2021-08-25 Method and system for multiplexing actions of roles of different body types

Country Status (1)

Country Link
CN (1) CN113658308B (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102273166A (en) * 2008-10-31 2011-12-07 高通股份有限公司 Wake-up trigger for implementation of target actions
CN103927779A (en) * 2013-12-30 2014-07-16 华侨大学 Method for generating two-dimensional animation on basis of configuration
CN104599309A (en) * 2015-01-09 2015-05-06 北京科艺有容科技有限责任公司 Expression generation method for three-dimensional cartoon character based on element expression

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI585600B (en) * 2016-12-02 2017-06-01 亞洲大學 CBR-based Negotiation RBAC Method for Enhancing Ubiquitous Resources Management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102273166A (en) * 2008-10-31 2011-12-07 高通股份有限公司 Wake-up trigger for implementation of target actions
CN103927779A (en) * 2013-12-30 2014-07-16 华侨大学 Method for generating two-dimensional animation on basis of configuration
CN104599309A (en) * 2015-01-09 2015-05-06 北京科艺有容科技有限责任公司 Expression generation method for three-dimensional cartoon character based on element expression

Also Published As

Publication number Publication date
CN113658308A (en) 2021-11-16

Similar Documents

Publication Publication Date Title
US10783690B2 (en) Image regularization and retargeting system
CN1294541C (en) Method and system using data-driven model for monocular face tracking
US11379996B2 (en) Deformable object tracking
Bailey et al. Fast and deep deformation approximations
WO2021143261A1 (en) Animation implementation method and apparatus, electronic device, and storage medium
CN1138231C (en) Image generation apparatus, its method, game machine and recording medium
CN102141838B (en) Visual based identitiy tracking
US9251618B2 (en) Skin and flesh simulation using finite elements, biphasic materials, and rest state retargeting
CN111260764B (en) Method, device and storage medium for making animation
CN103020085B (en) A kind of implementation method of personal style calligraphy dynamic word-base and application thereof
CN111028317B (en) Animation generation method, device and equipment for virtual object and storage medium
CN110675475A (en) Face model generation method, device, equipment and storage medium
WO2008116426A1 (en) Controlling method of role animation and system thereof
CN107862387B (en) Method and apparatus for training supervised machine learning models
CN115346262A (en) Method, device and equipment for determining expression driving parameters and storage medium
CN113658308B (en) Method and system for multiplexing actions of roles of different body types
US7173625B2 (en) Three-dimensional animation system and method using evolutionary computation
CN110415322A (en) The generation method and device of the action command of virtual objects model
CN101512603A (en) FACS solving in motion capture
US20240037826A9 (en) Image Regularization and Retargeting System
CN113781612B (en) Action resource style conversion method and system
Cai et al. Immersive interactive virtual fish swarm simulation based on infrared sensors
Sobota et al. On building an object-oriented parallel virtual reality system
TWI808787B (en) Methods of automatically classifying transition motions
US20220319088A1 (en) Facial capture artificial intelligence for training models

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant