MDD Group Loader (Tag) (New - v2.6)

The MDD Group Loader Tag is a tag that can be used to either set up or modify multiple MDD Deformers - or MDD Point-Level Animations (PLA) from a single location. The tag itself should be added to a Null (or other parent) object, and can be found in the "Riptide Pro Tags" options by right-clicking on the parent object in the Object Manager...

Once you have added the tag, you can adjust the options in the Attribute Manager, as usual...

...before I get to the indiviual options, I'd like to go into a little more background about the intended use of the tag...

As implied above, this tag is really a 'helper object' that lets you either set up or modify the .mdd animation of multiple mesh objects from a single location - with either new or modified PLA or MDD Deformer. This plugin was created by request, so let me first describe what that request was, to help describe the functionality (not an exact quote)...

"Is it possible to batch import multiple point caches for multiple objects? For example: I've got a scene file with a character that consists of 20 meshes. Another artist creates the character animations in Maya and exports them as pointcache .mdd files. Instead of importing 20 .mdd files manually, I'd like to batch this action... ...I'm facing nearly 50 shots with multiple characters and they all consist of multiple parts/objects. Doing this by hand would take ages..."

...I agree - that would be a real pain of a workflow to have to deal with.

So... in order to automate the process, this new tag was needed, but in order to affect multiple MDD Deformers (and/or (re)Import multiple .mdd files), the plugin has to make some assumptions about the filenames... basically, the names of the .mdd files must match the names of the Cinema 4D objects that they will be applied to - this way, the plugin can simply adjust the folder/path for each mesh's .mdd file and swap out entire sets of them with a few clicks.

To further illustrate this concept, here is some more of the original request/suggestion...

=== Example Shot: Two different characters with different animations ===

Shot 01.c4d
|
|_Character_A (Null Object) \\ <<-- MDD Group Loader Tag goes here
|__Character_A_Body \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Body.mdd
|__Character_A_Eyes \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Eyes.mdd
|__Character_A_Hair_01 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Hair_01.mdd
|__Character_A_Hair_02 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Hair_02.mdd
|__Character_A_Hair_03 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Hair_03.mdd
|__Character_A_Hair_04 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Hair_04.mdd
|__Character_A_Shoe_L \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Shoe_L.mdd
|__Character_A_Shoe_R \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_A_Shoe_R.mdd
|
|_Character_B (Null Object) \\ <<-- MDD Group Loader Tag goes here
|__Character_B_Body \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Body.mdd
|__Character_B_Eyes \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Eyes.mdd
|__Character_B_Hair_01 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Hair_01.mdd
|__Character_B_Hair_02 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Hair_02.mdd
|__Character_B_Hair_03 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Hair_03.mdd
|__Character_B_Hair_04 \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Hair_04.mdd
|__Character_B_Shoe_L \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Shoe_L.mdd
|__Character_B_Shoe_R \\ Needs Pointcache --> Path: D:\Animation\Shot01\Characters\Character_B_Shoe_R.mdd

(This schema continues till Shot 50. In some Shots there are more than two charaters at the same time. But let's calculate it with only 2 characters per shot:

2 Characters per shot x 8 bodyparts = 16 Pointchaches to import by hand per shot
16 Pointcaches per shot x 50 shots = 800 .mdd pointcaches to import by hand(!)

...Each shot/scene would get it's own folder, and within that folder would be sub-folders for each character, which would contain the .mdd files for each body part of the character [actually, the setup shown above just shows a single "Characters" folder, with unique names (Character_A_xxx vs Character_B_xxx) used for the body parts of each character...]. So long as the names of the .mdd files match the names of the body parts, the MDD Group Loader Tag can simply 'update' the path part of the .mdd file name of the MDD Deformers on each of the body-part objects.

NOTE: Only the mesh objects* that are direct 'children' (not grand-children) of that parent Null object are affected [*actually, even though it's not been tested, all of the .mdd features are set up to also support Spline animation via .mdd files as well].

So, with all of the above in mind the various options are described below in more detail...

MDD File Path

Select a new folder/path to be used.

Animation Type

There are 2 options here...

Point Level Animation (PLA) - If this option is selected, then the "Import .mdd File" feature will be used, which will create (or potentially replace) Point Level Animation on each of the child mesh objects.

MDD Deformer - If this option is selected, then the plugin will basically just update the MDD Deformer objects on the child mesh objects. NOTE: any child mesh objects that do not already have a MDD Deformer attached, will get one created for it.

MDD Deformer Options

This section allows you to specify some of the other options of the MDD Deformer (see the MDD Deformer section for details). It is only available if the Animation Type is set to "MDD Deformer" (if using PLA, the .mdd Import dialog will open, instead).

Apply/Update/Refresh

Click this button to apply the current settings. Again, note that you can use this tag to initially create / set up .mdd animation, OR modify existing animation.

So, just as a final simple example/review, I have the following scene...

...a Null parent object with the MDD Group Loader Tag on it, with 2 child mesh objects ("beast100x3" and "beast100x4"). I can set up the MDD Group Loader Tag like so...

...then click on the Apply/Update/Refresh button and end up with...

...note that MDD Deformers were created for the child mesh objects and the (matching filename "beast100x3.mdd") .mdd file was automatically loaded from the specified path ("I:\Models\MilkShape Objects\freebeast" in this case).