Adding to Cart…
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.You currently have no notifications.
Licensing Agreement | Terms of Service | Privacy Policy | EULA
© 2024 Daz Productions Inc. All Rights Reserved.
Comments
Here's a vote for the plugin version.
I hear that. They do have different prices for different counties on the page, but I'll keep looking at options for a cloud conversion or plugin solution, as either of those would be acessible for everyone.
UE5's animation capabilities using Control Rig are not as good as Maya - yet. They are certainly getting there and because of the functionality exposed by Control Rigs and Blueprints they have some advantages over Maya already. IMHO, the game changers would be animation layers in Sequencer and an intuitive constraints system - using the Control Rig in UE for animation would then be getting much closer to MotionBuilder (which is what I use for my animation editing and is actually better for animation than Maya in a number of ways.)
That said, the DTL system need more than just animation functionality to do the conversion. It needs functionality from one of the following:
1) Python in Maya (already working)
2) Python in Blender (under investigation)
3) The Daz SDK (integration into exisiting bridges)
This highlights the advantage of a cloud based solution - the Maya system that is already up and running could be automated in the cloud, so users would not have to do anything other than upload the files exported from Daz and then download the converted fbx an hour or two later. It's by far the simplest solution but would not be free.
I hear that. It would be great if I can find a workable way to do this, but there are challenges that I'm still working on finding solutions to.
You are doing a great job. I would like to know the approximate release date. Also, is it possible to support the project through patreon or other means? I can't wait for the release.
I'd prefer the Python in Maya option if Python in Blender option is not available, for me the other options are not very attractive.
The cloud solution is good if it's not too expensive. Wouldn't upload my custom made characters but store bought characters are fine to be uploaded :)
Python in Maya or Blender also gives users total control of Daz assets, compared to importing the assets from Daz, for example adding additional bones to the characters, rigging them with advanced controls, integrating animations from different sources etc., whereas importing assets from Daz would have limited options, unless UE5 becomes good enough to edit the assets.
Integrating with the DazToUnreal plugin in its current state couldn't make it a competent Daz to Unreal bridge, because various bugs with it which are hard to solve, the geografts are not merged and often placed at wrong location, bone orientations don't match the UE5 conventions which also mess the physics assets axes for ragdoll settings. The bone orientations with DazToUnreal either break the animations it imports from Daz or break the Control Rig it creates. However I didn't dig into DazToUnreal source code, maybe DazToUnreal can be fixed and is easy to integrate with, that would provide an effortless bridge for hobbyists.
Diffeomorphic imports Daz assets perfectly into Blender, then the assets can be exported to UE5 with correct bone orientations and geograft morphs, and copy the materials from DazToUnreal bridge. This method worked for me quite well with working geografts and original Daz JCMs baked into the animations as morph target tracks. Would like the custom JCMs integrated into Control Rigs for ragdolls and other physics simulations and DTL would be very useful for that.
Thanks :-)
I wish I could give a firm release date, but as things stand I just don't know. I want to make sure this gets out there in a usable, reliable form and is acessible for the largest range of users - there are a number discussions taking place and options to be explored.
@catmaster Thank you so much for your detailed response.
Cloud conversion service
You're not the first person to express concern about uploading custom made characters - are there any assurances I could give so you felt your work was safe if you were to do so? I'd be happy to write some end-user protection guarantees into the EULA.
Pipeline optimisation
My system produces a single fbx file with all the joint names, rotation orders and orientations made compatible for UE. Any geografts are merged perfectly and the linear JCMs (and other morphs) are applied on the combined mesh. From what you say, I'm assuming that importing this fbx into Blender (or any other suitable application) would greatly simplify the pipeline you describe and provide a convenient starting point for any extra work like adding additonal bones, rigging with more advanced controls and integrating animations - would that be correct?
Animation
I hear what you say about baking the application of JCMs into the animations vs applying them in realtime in UE. Since I developed DTL for full body tracking of an avatar in VR, realtime application of JCMs has always been the only option for me. As you say, realtime application of JCMs is also the only solution for ragdoll effects and other techniques like realtime animation blending. Since we now have PoseDrivers that can do this very efficiently I believe realtime application is the best way forward.
About the cloud service there needs to be some data protection as we don't want the store bought characters being downloaded by unauthorized users or bots, because the EULAs of Daz store and Renderotica, Renderosity etc. state that users have to secure and encrypt the bought assets to make sure they can't be extracted or redistributed.
Blender or other equivalent is often used as asset processing hub to integrate different resources with Diffeomorphic to import from Daz and using Blender asset library, also there are plugins like Animation Layers, AutoRig Pro, Quick Rig, Uefy etc. which are equivalent to Maya and MotionBuilder. These pugins often have their own FBX exporters to send to game engines but their exporters can't export other rigs they don't support. For FBX files the Blender's build-in FBX exporter is the preferred method.
It'd be nice if the FBX from the DTL system can be exported to UE5 from Blender, with correct bone axes for the physics assets e.g. the constraints angular limits have the local bone X axis as primary bone axis which is perpendicular to twist motion. It doesn't need to match the mannequin's axes, attached image showing the Daz character FBX exported from Blender with correct bone axes.
The baked JCMs are not as useful as realtime application of JCMs, it's a lazy method to skip modifying the nodes in UE5 for G8 skeleton. The realtime application from the DTL system is the best if it can provide asset components or engine plugins to easily integrate with exsiting projects.
My current plan is that the user would be given a security key / password when they upload their file for conversion. A dedicated virtual machine would then be created and the conversion would take place. After the user has downloaded their converted figure (using the password / security key) the virtual machine would be destroyed, wiping all traces of the asset. At this point, the only remaining copies of the original and converted assets would be in the user's posession. As a creator myself, the protection of user's assets is a very high priority.
I would imagine it would be possible to chain this fbx pipeline together nicely: Daz -> DTL -> Blender -> UE
Given that there is an already functional Daz -> Blender -> UE pipeline, I'm fairly confident that inserting DTL would not be problematic and would give Blender users all the benefits of DTL. I'm away from my office at the moment, but I will test this pipeline at some point very soon. You mention that the preferred method for exporting the fbx from Blender is via bult-in fbx exporter. I'd really appreciate it if you could let me know the optimal fbx export settings, as I'm not very familair with Blender.
In it's current form, DTL exactly matches all joint names, rotation orders and orientations to match UE. Whilst I found other orientations can be made to work in UE, when it comes to tasks like quickly and easily converting Control Rigs I have found that exact matching is the best option (see: https://youtu.be/cNz8W0G41rA)
Attached the export and import settings for SKM and for animations, the settings work for UE5.1 and Blender3.3, may not work for earlier versions because they updated their FBX importers and exporters.
The original Daz JCMs are not enough to solve the problem of game engines not supporting DQS, for example the flat knees when crouching are still present after baking in the original Daz JCMs, it seems the JCMs are designed for DQS not for game engine skinning, but anyway applying the original JCMs is still much better than without using that.
I researched a bunch of Unreal engine games, and found they all have the same skinning problem because of the engine not supporting DQS. Other game engines seem to have the same problem, guess players are used to this until recently they start to desire higher animation quality. DTL system and the benefited Daz characters would be much higher quality than most other game characters.
How do you fix JCM shapekeys and could you please tell the general idea? Thank you!
Attached the export and import settings for SKM and for animations, the settings work for UE5.1 and Blender3.3, may not work for earlier versions because they updated their FBX importers and exporters.
It seems the baked morph curves are stored with the meshes not with the skeleton in FBX, to export animations with morph curves, the FBX needs to export both armature and meshes, updated the attached images with corrected export and import settings to export animations with morph curves.
https://www.daz3d.com/forums/discussion/596666/modify-daz-character-rig-for-unreal-skeleton#latest
This thread discusses two different approaches, converting G8 to UE4 skeleton vs Rigging G8 and preserving original deform bones.
If using Epic skeletons the characters need custom JCMs which would be provided by DTL plugin.
If using the original Daz JCMs the G8 skeleton needs to be preserved.
Using Diffeomorphic to convert morph drivers to shape keys during retargeting process, Diffeomorphic can bake JCM morph curves into retargeted animations. For this to work it needs to retarget animations to G8 skeleton using AutoRig Pro, G8 deform bones are needed for Diffeomorphic to generate JCM curves.
The original Daz JCMs are designed for DQS and they're not enough to fully solve the skinning problem for game engines, in order to make the original Daz JCMs work without DQS, they can be re-sculptured using the Blender plugin Pose Shape Keys: https://studio.blender.org/training/blender-studio-rigging-tools/pose-shape-keys/
The JCM morphs shown in the attached images are the original Daz JCMs, they're not enough to solve the skinning problem like the flat knees or the distorted shoulders during extreme motions, after the JCMs are re-sculptured the skin deform would be much better.
i'm not fan of baking jcm into animations, because it's means which they only work "on that animation" and the same process must be applied do all animations, which is much better a realtime by using the jcm as morphs as they are supposed to be which means which they can be used into any animation at any time since they are made at run time this is why most peoples don't use stuffs like updrape(cloth pluging) to simulate cloth physics because they are "not real time" and pre made in some cases can look not "realistic than realtime physic based stuffs.
for me i would keep then as morphs rater than "baked into animations", because again in some cases they could not look 'natural" or realistic as in "realtime based" can be.
Both pre-made and realtime solutions have their uses in my opinion, for example the Unreal cloth simulation doesn't work well with changing morphs, the simulated outfits will clip with the morphing body, in this case using plugins like uDraper could be better solution.
When DTL plugin comes out it would provide an easy solution to control custom made JCMs for epic skeletons, before that the working solution seems to be baking JCMs into all animations, the process using Diffeomorphic and AutoRig Pro is automatic and doesn't take too long to process hundreds of animations.
---------------------------------------------------------------------------------
The uDraper plugin doesn't support packaged games yet, this plugin is used for rendering purpose. It doesn't bake simulation into animations, instead it's realtime simulation and looks better than Unreal engine built-in cloth simulation.
when talking about udrape was more like a exemple,the problem with collision in real time is because the "collision capsules" still don't have a way to "adjust the size with the morphs" like for exemple a "breast morph it will increase the "mesh size" the "collision capsule will remain the "same" size, we need a way to be able to "resize the capsule along the "morph, like when using the breast morph to get it "big it also would make the collision capsule big, that would fixe this issue.
yeah prerendered have it's strengts, but for me i still prefer realtime because normally it make the physic look more natural like not all times the "boob" will bounc in the same way when running or a cloack, it can react in new ways in each animation and you don't need to bake it on "each animation" which is a extra work which i would prefer to not do lol.
Thanks for the reply, I've changed my method to use post processing animation BP to drive some custom made JCMs, updated new method to the thread in the Blender discussion https://www.daz3d.com/forums/discussion/596666/modify-daz-character-rig-for-unreal-skeleton#latest, and the skinning problem has been solved for any custom made character :)
It's quite difficult for me to re-sculpture a few important JCMs for example the shoulders and the knees, with original Daz JCMs for other correction morphs. I need to complete my project according to schedule and have to use such method. The DTL plugin would provide much better results and more features.
Absolutely - that (and difficulties animating fingers in UE) is what prompted me to start work on DTL in the first place - using the DQ based JCMs in a linear skinning engine does not cut it
The fbx with all the embedded JCMs that DTL creates could be used for other games engines. The joint renaming scheme / dictionary is in a text file, so it would be straightforward to adapt it for other games engine's joint naming schemes
Hi - please see here for a technical overview of how I solved the linear JCM issue:
@catmaster - Initial tests with the Daz -> DTL -> Blender -> UE pipeline have been promising - I have got a converted DTL character into Blender, complete with all morphs showing up as shapekeys. I'm currently working on the final touches to the rigid follower / embedded mesh export for all DTL figures, after which I'll do a full test of the pipeline. So far so good!
Thanks for the feedback - it seems we're all in agreement about realtime JCM application being the best way forward
Applying UE's cloth solution to mesh segments does stop any morphs (including JCMs) from working on that mesh segment, which is a huge limitation.
I've experimented a lot with uDraper and it works fine with DTL characters when morphs and JCMs are applied.
The ultimate solution for simulated cloth (i.e. dForce) would probably involve alembic export of a comprehensive range of motion from Daz and UE's machine learning technology. It would be quite time / processing intensive and would probably best be implemented as a cloud based service. It's something I'd like to look into once DTL has been launched...
Unreal has python too, have you looked into creating a plugin in unreal directly? could be sold on the market place
From an admittedly brief look, UE's python modelling, rigging and skinning capabilities have a long way to go before they will be able to do all the operations that the Maya script does. AFAIK, UE doesn't have any functionality for low level joint adjustment (orientation, rotation order) or any blendshape target (aka morph, shapekey) creation / editing.
@dave_0aa47f5a80 how to sample the DQS to shapekeys? I have tried some methods, but it doesn't have good perfermance.
aa thanks, we will have to wait for an unreal 5.10 hahaha.So I also prefer maya version.
@dave_0aa47f5a80
If I have a geograft that adds bones, will those bones and their weights be preserved?
Also, you mention that you can combine materials during the conversion process. Can you bake it down to 1 or 2 materials total?
Thanks!
Yes -- l have tested DTL with a number of geografts, both with and without additional joints. UE updates the skeleton with the additional joints on upload. Figures with and without the additional joints can still use the same skeleton in the same project in UE; animations, control rigs, anim blueprints etc can all be shared.
DTL merges materials that use the same UVs - for example, face / eye sockets / lips / ears. It's a configurable option. The combined material slots work well with the materials exported by DTU or created using our custom skin material base. Further merging / optimisation would be possible using some sort of texture atlasing plugin, but we have not tested that yet.
The short answer is with many months of trial and error! In terms of performance during conversion, DTL takes a few minutes to convert a SubD 0 figure to an hour and a half for a SubD 1 figure with clothes and accessories. DTL completely rebuilds the skeleton and morph set - this takes time. In terms of performance at runtime, I find using UE's PoseDrivers to drive the JCMs is super efficient and gives really good performance.
Bone Driven Controller node in Unreal is bugged because it doesn't support linear mapping from bone rotation angle range e.g. 0-90 to morph target alpha e.g. 0-1, its settings always make non-linear results with or without using curves. DTU bridge fixed the C++ code of this node and made the Daz Morph Driver node which is used in Genesis8JCMPostProcess. The bridge and other plugins can't be used in UE5.1 preview as UE5.1 preview can't compile the C++ classes it creates.
Pose Driver node is more complex, hopefully this node isn't bugged. Would DTL plugin use the vanilla Pose Driver node, or create additional engine plugin with modified source?