University of Southern CaliforniaUSC
USC ICT TwitterUSC ICT FacebookUSC ICT YouTube

Autorigging my own skeleton from ASF | Automatic Rigging and Reshaping | Forum

Avatar

Please consider registering
guest

sp_LogInOut Log In sp_Registration Register sp_MemberList Members

Register | Lost password?
Advanced Search

— Forum Scope —




— Match —





— Forum Options —





Minimum search word length is 3 characters - maximum search word length is 84 characters

sp_Feed Topic RSS sp_TopicIcon
Autorigging my own skeleton from ASF
May 27, 2016
2:36 am
Avatar
New Member
Members
Forum Posts: 2
Member Since:
May 27, 2016
sp_UserOfflineSmall Offline

Hi,

I am new to smart body so I appologize if this question is stupid.

I have a set of human meshes in OBJ format and I want to animate them using mocap data from ASF/AMC files.

That involves first fitting the skeleton in the ASF file into my meshes. Can this be done with SmartBody? I followed the autorigging tutorial but the procedure always seems to create it's own new skeleton. I'd like to be able to use the ASF skeleton and just embed it into the meshes (and compute the skinning weights). Then I want to apply the AMC files to make the mesh deform accordingly.

Is there an easy way to do this?

Thank you.

Cheers,

Radek

May 31, 2016
3:53 pm
Avatar
Admin
Forum Posts: 983
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

There are a couple of ways to do this:

1) You could use the Autorigger and Reshaper tool and replace the file in the rigs/ folder called SmartBodyRig.dae and replace the joints and skinning information with ones that match your .asf structure. Then when you autorig, it will match your asf.

 

2) You could retarget the .amc data onto the existing character that uses the SmartBody skeleton. For this, you need to joint map the motions to the SmartBody standard and create a retarget instance (in the manual). 

 

Ari

June 1, 2016
5:02 pm
Avatar
New Member
Members
Forum Posts: 2
Member Since:
May 27, 2016
sp_UserOfflineSmall Offline

Thanks for the tips, Ari.

Creating a Collada file usable for the Autorigger and Reshaper from ASF/AMC seems like a lot of work ... or is there any convenient converter?

I went with the second option. I used the Autorigger and Reshaper to rig a skeleton into my mesh and then used zebra2-map.py mapping to enable SmartBody animations.

I also noticed one thing: when I apply the autorigging procedure from described in the manual (manually or using the script), the exported .dae file is somehow corrupted. I can read the skeleton from it but not the the actual mesh with the skinning weights. (This is why I used the Autorigger and Reshaper since the .dae it exports works just fine using the same code snippet)

character = scene.createCharacter('character', '')
skeleton = scene.createSkeleton('testAutoRig.dae') # works
character.setSkeleton(skeleton) # works
character.setStringAttribute('deformableMesh', 'testAutoRig.dae') # doesn't work, the loaded mesh has 0 vertices

How do I actually load the deformable mesh autorigged with sbgui properly?

I have one more question ... now that I have an animated character, I would like to export several meshes from a given motion sequence, possibly also with additional information, like the skeleton joints/bones positions/speeds. Is there an easy way to do that? Any advice would be largely appreciated. 

Thanks you,

Radek

June 8, 2016
2:53 pm
Avatar
Admin
Forum Posts: 983
Member Since:
December 1, 2011
sp_UserOfflineSmall Offline

Unfortunately, I don't have a convenient converter for the autorigger - it's a research project and we improve it as it suits our needs. If the software was commercialized, this would be a good addition.

 

I'll have to look at that problem; you're saying that the .dae exported from SmartBody isn't valid.

Regarding your mesh export, you are saying that you want to output the deformed mesh according to the mesh (say, a series of meshes that represent the animation)? 

 

The easiest way to do that would be to tap into the state of the mesh at every frame and export the position of the vertices  (but this requires coding). A character has a DeformableMesh, which contains a group of Models, each of which has a vertex list.

 

Seems like this would be a good feature ("dump the mesh at this moment to a file...")

 

Ari