Comments (8)
The animation shows one application of the predicted rigs. What we did is applying some automatic motion retargeting technique to transfer the motion from a reference animation to the predicted rigs. The correspondences here between two sets of joints are manually assigned.
from rignet.
thanks
from rignet.
from rignet.
OK. As stated in our paper, the evaluation of skinning weights is performed using ground-truth skeletons, so that the error from skeleton prediction doesn't influence this part.
To evaluate skinning weights, you first run
python run_skinning -e --resume="checkpoints/skinnet/model_best.pth.tar" --checkpoint="checkpoints/skinnet" --train_folder='DATASET_DIR/train/' --val_folder='DATASET_DIR/val/' --test_folder='DATASET_DIR/test/' --info_folder='DATASET_DIR/rig_info_remesh/'
It will output the skinning results in results/skinnet folder.
Then you can evaluate it with this script
Note that the skinnet is updated a few weeks ago. You can try the latest skinnet model, which can be downloaded from the same link as before.
from rignet.
from rignet.
For each model loaded into Maya, I randomly picked three joints (excluding the root joint), added a random rotation to these three joints, and saved the deformed mesh to disk. After this I compared the vertices displacement in python. So the poses are not the same. They are all randomly generated.
Some functions you may be interested (used in mayapy):
Get all joints as a dictionary:
def getJointDict(root):
joint_pos = {}
this_level = [root]
while this_level:
next_level = []
for p_node in this_level:
jpos = cmds.xform( p_node, query=True, translation=True, worldSpace=True )
joint_pos[p_node] = {}
joint_pos[p_node]['pos'] = jpos
joint_pos[p_node]['ch'] = []
ch_list = cmds.listRelatives(p_node, children=True, type='joint')
pa_list = cmds.listRelatives(p_node, parent=True, type='joint')
if ch_list is not None:
joint_pos[p_node]['ch'] += ch_list
next_level += ch_list
if pa_list is not None:
joint_pos[p_node]['pa'] = pa_list[0]
else:
joint_pos[p_node]['pa'] = 'None'
this_level = next_level
return joint_pos
Rotate a joint:
cmds.rotate(angles[0], angles[1], angles[2], rot_joint, ws=True, r=True)
from rignet.
from rignet.
Thank you. I appreciate it.
from rignet.
Related Issues (20)
- Is it possible to process asymmetrical model? HOT 5
- OSError problem HOT 2
- run_joint_pretrain issue on macos
- How to reduce/eliminate the "randomness" of the predicted skeleton? HOT 4
- Is it possible to run without any cuda because I haven't cuda in my machine HOT 1
- Is it possible to generating fixed joints with certain topology? HOT 3
- 可以提供colab版吗?
- Running RigNet in python3.9 and get Aborted HOT 11
- the issue on Dataset Directory variable (DATASET_DIR) for training
- Imcomplete skeleton
- The link of the dataset has been removed. HOT 3
- Data licensing HOT 1
- Code to compute metrics is missing HOT 5
- Can we do rig on custom SMPL ?
- Bad skinning/weights issue HOT 3
- Running `quick_start.py` Error HOT 1
- Compared to NeuroSkinning, regarding the skin of clothing parts
- std::bad_alloc Error
- Why normalize? HOT 1
- trained_models not working HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rignet.