Auto-rig Pro [3.47 - Released for Blender 2.8]

Looking for some idea:

The goal is to have my daz characters rigged with autorig pro for easy unreal export.
There are many tools and workflow for this, but none of them are perfect.
Anyway: daz characters have very good weigth paint/boneplacement already, so I’d like to keep that somehow. Especially the matching weigth paint on character and clothes is a plus.

First thing I tried was to generate an autorig rig and then replace the weigth paint from the original daz character. It kinda worked actually, the problem is that weigth painting and boneplacement must match or it won’t be perfect. So using the daz rig as reference I can move the ref-rig’s bones in edit mode… it takes a bit time, but the result is usable.

Next I thought: I have the original daz armature… there are addons which convert that to rigify metarig, and the metarig is very similar to the autorig’s refrig. So I tried to replace this refrig with a modified metarig. (renaming bones, deleting and copying necessary other bones). It worked somehow, but as it was expected the bone rolls are also important and who knows what else…
maybe a better approach would be to just use the metarig as reference and adjust the ref-rig in edit mode. I’m sure a script can be made for that but I can’t code too well…

Any help/ idea is appreciated… maybe a built in support could be given for daz an other characters (makehuman, mb lab, iclone etc) at some point.

Thank you for your answer, I really appreciate it.

I tried everything after reading your reply, but it seem like my CPU is bottlenecking with my character after all. At most I could get 24 FPS but since I’m exporting my animations for Unreal I really needed them to be playbacked at 30 FPS.

The reason I removed my post was that I rigged another character just to make sure, except this one is low poly, and it works like a charm. So I concluded my PC isn’t able to handle the high poly character – I just didn’t expect to get an answer so fast haha

Hi @lucky
I am trying to export to gltf by swapping FBX export command

bpy.ops.arp_export_scene.fbx(filepath=…)

with

bpy.ops.export_scene.gltf(filepath=self.filepath, export_selected=True, export_format='GLTF_SEPARATE')

and selecting Unreal -> Humanoid (with root motion checked) in export panel.

I have around 7 animations on my character but only one is exported. It seems gltf exports multiple animations only if pushed as NLA strips. I have already pushed animations into the NLA strip on the main rig but it seems it should also be pushed on humanoid rig also upon export?

Can you please help.
Regards

It seems gltf exports multiple animations only if pushed as NLA strips.

Yes, absolutely. Gltf has a different system to export actions.
Sorry but Gltf won’t be officially supported in ARP before a few months, i’ve been in touch with its developer and there are a few concerns that must be addressed first. Ideally I’d like to support the same level of features as the Fbx export, and it’s unfortunately not possible currently.

1 Like

Just wanted to give it a try to see if I can solve this. Maybe this can be solved by pushing actions at NLA strip after baking them in #Humanoid Export.


# Bake Actions?             
                if context.scene.arp_bake_actions and len(bpy.data.actions) > 0:
                    _bake_all(self.armature_name, "rig_humanoid", self)

I am not familiar with Blender API so not sure how to put them as NLA strip. Going to investigate more on this.
Meanwhile, will appreciate any help :slightly_smiling_face:

Ok, solved it :slightly_smiling_face:

I added this snippet after _bake_all method, it pushes humanoid actions into NLA so they can be exported by Gltf add on.

                    rig = bpy.data.objects['rig_humanoid']
                    # bpy.context.scene.objects.active = rig  //removed in  blender 2.8!
                    bpy.context.view_layer.objects.active = rig
                    rig.animation_data_create()
                    for action in bpy.data.actions:
                        if action.name.startswith("h_"): 
                            rig.animation_data.action = bpy.data.actions[action.name]
                            bpy.context.area.type = 'DOPESHEET_EDITOR'
                            bpy.context.space_data.mode = 'ACTION'
                            bpy.ops.action.push_down()

@lucky in the new version you have added an action for auto A-Pose, can you please add an action for auto T-Pose also?

@Ali-RS Great if you have found a workaround for this, and thanks for sharing it!
Honestly I haven’t investigated this specific NLA/Actions problem yet with GLTF export. I’m very willing to support this format with ARP though, but the developer of the GLTF export addon advised me to wait for the next version, he’s currently making a lot of improvement to it. This way, it should be possible to make it compliant with the various export options of ARP such as selective action export, animated shape keys for multiple actions which is not yet supported.

1 Like

Yes, I see. I hope they can fix those issues soon.

Note, I mean from any arbitrary pose to T-Pose. Because sometimes models I get are in an arbitrary pose.

Want to remap a bvh walk animation (from Mixamo) to my character, problem is character foot is not fixed in place while walking:

See this video :

As you can see in the video characters foot is moving while on the ground where as it is fixed in bvh rig.

I am using mixamo_fk.bmap preset for remaping. @lucky am I doing something wrong probably?

Here is the .blend file: https://drive.google.com/file/d/1C-PlhB0gMv-s8jCCR45eosvQEcXd_ohj/view?usp=sharing

and BVH file: Standing_Walk_Right.bvh (56.3 KB)

I am using latest version of the addon and blender 2.8
Appreciate any help :slightly_smiling_face:

Hmm, I opened a fresh character and re-rigged it with the smart tool, and remapped BVH animation on it and this time remapping works just fine.

My previous character was rigged with the old version of the addon in blender 2.7 and has been updated to the new version using this update button provided by ARP:

@lucky maybe there is an issue with armature update option?

To convert your DAZ rig, you might like to contribute to my little copyrig project. The code is pretty dumb. Look at the MHDefault class. It’s more or less a typing exercise…
@lucky It would be way nicer if Auto Rig Pro had a plugin interface to create a ref rig. With that users could supply rig support for any rig. Just an interface to register a converter with a convert function that produces a dictionary of ref bones. So you you don’t have to maintain support for a ton of rigs…

Yes this is doable, this may be added in a next release.

1 Like

It seems you use FK mode, which leads to slidings. For fixed, stable feet, it’s best to use IK mode as shown in this video.

1 Like

Hi! I’m not exactly sure to understand the meaning of “an interface to create a ref rig”, but there are plans to add user defined limbs and armature presets. Practically, this means users should be able to save new armature presets like the built-in humanoid/dog/horses, and this should allow to save custom limbs as well (the “Add Limbs” menu). However custom limbs won’t be able to work with reference bones, this requires programmable instructions.

Sorry, it was late. :wink:
Right now, when you have a rigged character from one of the character generators out there, and you want this character with an auto rig pro rig - maybe just because it is awesome - you delete the old rig and create a new one with ARP. So let’s say, some ppl are lazy, so their first thought is: “Wouldn’t it be: great, if the rig generation process in ARP could somehow magically make use of the rig, that already exists in my character? Replace somehow the old rig with the ARP rig - or at least preposition the bones in the ARP ref rig?”
The latter is, what my plugin does: it just takes every bone in a make human rig that has a somewhat similar bone in the ARP ref rig and places the bones in the ref rig accordingly. This works pretty ok and helps especially with annoying stuff like finger placement. But it does that in a pretty inconvenient way. It would be way nicer if there was a button to do this in ARP itself. Something like “create from input rig” or something.
As there are a couple of tools to create said characters and for whatever reason they all create a different rig it would be very much a maintaining hell.
So why not have a plugin for a plugin? Just give us an interface where one can register a converter for MyInsaneRig to a ARP (ref) rig and we could have a shiny button inside ARP and you won’t have to maintain loads of rig types. The interface is most likely a base class with a function to detect a known rig so you know which converter to call and a converter that could maybe output a (partial) ARP ref rig definition as dictionary, that you can then use to place these bones in your ref rig.
The partial rig part is crucial as some rigs just have a lot less bones that your ref reg and others have bones that differ so much from your rig that they can’t be converted reliably.
I hope, this makes the idea a little bit clearer…

I think it could work almost like the already implemented remap feature. We could create a bone mapping and then the mapped ref rig bones would be positioned according to the source rig. if there is a different structure then some manual editing still would be required.

As a next step the objects vertex groups could be renamed to match the ARP convention.

I did these steps manually… I mean positioned the ref-rig to match my imported mesh’s original armature. After renaming the appropriate vertex groups it worked well… except I did not do this manual refining of the fingers, but used the arp auto detection… which was not 100% compatible with the original weigth painting so the finger deformation is not perfect. Having the option to automaticly align the refrig to alread existing rig could save quite a lot of work.
Then we could sa that ARP has native support to rerig Daz, Iclone, makehuman etc characters once the presets are made.

2 Likes

Is there a resource for BVH files nowadays since Mixamo stopped allowing downloads?

Ok, so as far as I understand, it’s about quickly generating a rig based on simple existing rig/bones.
This is a pretty neat idea and I’ve received many requests for this. I know this is a popular demand.
I may work on it at some point, it’s duly noted. But this is a rather important amount of work to make it properly and there are a few other waiting features on my todo list to complete first.

Just tried here, Mixamo animations are still downloadable. Maybe a temporary issue?