Carrara Plugin Development

13

Comments

  • MistaraMistara Posts: 38,675

    aww where da vids go?

  • Samuel S.Samuel S. Posts: 322

    Thanks all; All 7 Carrara SDK/Plugin videos are on YouTube.

  • mindsongmindsong Posts: 1,702

    thank you for doing the videos *and* putting them up (back up)!

    --ms

  • HeadwaxHeadwax Posts: 10,013

    yes thank you!!

  • Bunyip02Bunyip02 Posts: 8,712

    Thanks as well !!!! yes

  • Samuel S.Samuel S. Posts: 322

    Thanks All!

  • DiomedeDiomede Posts: 15,188

    Thank you, I Samuel.

  • I can't code i have really bad ADHD and while i can do little bits of programing and seem to have a mind that works well with the idea of programing the act of actually typing code my brain will not allow (it would be awesomif there were a visual way to do it maby node based) Nee ways I have wanted a renaming plugin for carrara for ages I love the duplication ability in carrara but it keeps the same name for all the items and there are many time when adding sequntial numbers to these duplacates would be very useful to me.

    I mentioned the renamer idea to Sparowhawk and hemade it for me in a day its now available in the laboratory section of his site

  • Working off the Carrara samples is the best way to start.  I like to have an empty project template for each of the main plugin types.  Scene commands are some of the simplest of plugins so that means I can knock something functional like the Rename plugin up in more like an hour than a day - most of the time is taken setting up the different version builds (if they are supported) and on the Macintosh.  It would be good to know how to get things done more quickly for the Macintosh builds, I could do with a tutorial on that myself.

    The Rename plugin works on the current selection with options to search for a specific name, or to change all the selection, and then to change the name or add an index.  To get it made quickly I didn't add the Undo or Redo for the command so I'll come back and add those in.

    Another simple plugin I uploaded to my Laboratory is the Measure command which is a small time saver to return the distance between two selected objects.

  • apparently Nvidia PhysX gone open source

  • WendyLuvsCatzWendyLuvsCatz Posts: 38,311

    Plugins heart

    so many but want more please yes

    really really want textured view in hair room 

    or better use Hair in assemble room like one can vertex modeling 

    Be nice if one could control guides on hair better to follow other meshes could use transmapped hairs as guides to follow and if using hair caps can see where lying with the figure and clothing it is wearing instead of constantly switching between 

  • MistaraMistara Posts: 38,675

    would be kewl to quickly save a hand pose with a one or two click.

    every bone from the hand down the heirarchy. and swap symmetry between hands.

    the fencric swap leg feature doesn't seem to work on genesis.  his leg shakes a lil, like he's trying.
    one guess is the separating leg twist from leg bend. is actually 2 separate bones nowadays.

  • MistaraMistara Posts: 38,675

    would it be feasible for a script to find unwelded verts and ask it to weld to it's nearest neighbor?

    Thanks 

  • Mystarra said:

    would be kewl to quickly save a hand pose with a one or two click.

    every bone from the hand down the heirarchy. and swap symmetry between hands.

    the fencric swap leg feature doesn't seem to work on genesis.  his leg shakes a lil, like he's trying.
    one guess is the separating leg twist from leg bend. is actually 2 separate bones nowadays.

    I had been working on a plugin that saves poses from any selected bone down but hit a big wall when it comes to the pose controls on the Genesis figures (Arms Front-Back etc).  I couldn't figure out how to read them in and the duf files need to have these or the pose will come out wrong if pose controls were used.  The changes made to Genesis figures were not included in the SDK.  There were never any additional header information files for Carrara 8.5.   I haven't given up on it yet but I didn't want to use a possible time consuming and clumsy work around.

  • SileneUKSileneUK Posts: 1,975
    Mystarra said:

    would be kewl to quickly save a hand pose with a one or two click.

    every bone from the hand down the heirarchy. and swap symmetry between hands.

    the fencric swap leg feature doesn't seem to work on genesis.  his leg shakes a lil, like he's trying.
    one guess is the separating leg twist from leg bend. is actually 2 separate bones nowadays.

    I had been working on a plugin that saves poses from any selected bone down but hit a big wall when it comes to the pose controls on the Genesis figures (Arms Front-Back etc).  I couldn't figure out how to read them in and the duf files need to have these or the pose will come out wrong if pose controls were used.  The changes made to Genesis figures were not included in the SDK.  There were never any additional header information files for Carrara 8.5.   I haven't given up on it yet but I didn't want to use a possible time consuming and clumsy work around.

    Guess having a morph saver based on the ACTOR tree (vs NLA deep-sea pose clip diving) in Carrara is too much of an ask?  I guess it's some how going to be connected to the process of  creating morph content in DS which PA's do for sale, or those who are clever can do for themselves or to share.  Of course it's needed for Genesis and you say no SDK support for genesis for Carrara?

    frown  Silene

  • There are changes to Genesis at the higher level so there isn't full SDK support.  Bones and morphs and animation data is all pretty much stored the same just arranged differently.  With older figures you make a simple call to GetFigureDataComponent() or GetActorDataComponent() and you know you have a figure.  With Genesis these calls do not return those components.  However the important content of those components is also hidden.

    Bones (joints) can be easily accessed to read in the rotations for a pose.  Getting into the vertex model has access to all of the morphs but the list of useable morphs and control dials you see in the Parameters tab on the figure is different.  If you bring in a Genesis figure and open up the key frames in the sequencer tray you can expand out a long list of Parameters including Hidden, Pose Controls with all the body part groups.  The problem is that these are the display names and the internal morphs names are what is needed to save the pose file.  Getting the information on the internal names is what I couldn't find to complete the pose file.  The only work around I could see was a time consuming and clumsy manually put together list of translations.

    It was working on my Quicksave plugin that led me to attempt to make a pose exporter.  The current open version of Quicksave goes through all of those key frames in the sequencer and saves the parameters.  My own alpha version of a pose exporter works but can't do the pose controls for these reasons and is incomplete.  Well, that is where I am stuck but somebody else might have figured it out.  

  • Persona Non GrataPersona Non Grata Posts: 1,365
    edited March 2021

    .

    Post edited by Persona Non Grata on
  • Every thing you can see under the Instances list of your Scene has an I3DShTreeElement class which has the functions (or methods) such as GetFigureDataComponent().  This 'tree' is usually the starting place for getting down into the animation data, transforms, all the simple parameters and into the master object using the SDK classes.  In the case of a figure from there you can get into the Vertex Modeler itself and from there into the morph areas however the IMorphArea class only returns one name and the pose control morphs work the joints and not the actual morphs.

    If you look at a figure in DAZ studio and click on the settings for any morph you'll see loads of information and at the top or the dialog the Name: and the Label:  Carrara displays the Label but doesn't give the 'internal' Name which is the one that is needed.  Click on the settings for a morph in Carrara and there is very little information, only the one name and the range settings.  I can only assume that when the figures are loaded into Carrara that information is somehow translated and effectivly hidden from the vertex modeler but controlled with the parameter sliders.  I've gone in poking around as deep as I could but haven't found a way to directly link up the Parameters with that internal name or get the internal name from the parameter.

    If I had a long loaded or coded in list for all the parameters on all the figures the correct internal name could be found as the exhaustive work around.  For example taking the first pose for Genesis 2 ,which is control Arms Front-Back, in Carrara the name is "Arms Front-Back".  Look at the morph setting in DAZ Studio and the (internal) Name is "CTRLArmsFrntBck" and the Label is "Arms Front-Back".  The duf pose file needs to have "CTRLArmsFrntBck" for that pose control to work.

  • MistaraMistara Posts: 38,675
    edited June 2019

    Think not using pose controls in animating a good habit. When things work unepected very harder to track down the problrm. 

    Specially with new hd.  The slaved jcms could make wonky distortions

    Post edited by Mistara on
  • MistaraMistara Posts: 38,675

    Every thing you can see under the Instances list of your Scene has an I3DShTreeElement class which has the functions (or methods) such as GetFigureDataComponent().  This 'tree' is usually the starting place for getting down into the animation data, transforms, all the simple parameters and into the master object using the SDK classes.  In the case of a figure from there you can get into the Vertex Modeler itself and from there into the morph areas however the IMorphArea class only returns one name and the pose control morphs work the joints and not the actual morphs.

    If you look at a figure in DAZ studio and click on the settings for any morph you'll see loads of information and at the top or the dialog the Name: and the Label:  Carrara displays the Label but doesn't give the 'internal' Name which is the one that is needed.  Click on the settings for a morph in Carrara and there is very little information, only the one name and the range settings.  I can only assume that when the figures are loaded into Carrara that information is somehow translated and effectivly hidden from the vertex modeler but controlled with the parameter sliders.  I've gone in poking around as deep as I could but haven't found a way to directly link up the Parameters with that internal name or get the internal name from the parameter.

    If I had a long loaded or coded in list for all the parameters on all the figures the correct internal name could be found as the exhaustive work around.  For example taking the first pose for Genesis 2 ,which is control Arms Front-Back, in Carrara the name is "Arms Front-Back".  Look at the morph setting in DAZ Studio and the (internal) Name is "CTRLArmsFrntBck" and the Label is "Arms Front-Back".  The duf pose file needs to have "CTRLArmsFrntBck" for that pose control to work.

    Pose control for fingers fist.

    looks like they prefix the name with a "p"

    the formulas are the bones slaved to the control.

    pose contril fist.JPG
    733 x 420 - 69K
  • I've put up a beta version of the Pose Export command into my Laboratory which you can download to try out.  There is some more explanation in my Laboratory Notes on how to use the plugin.  It saves figure poses in .duf format which you can then use in your Carrara content folder in the browser.  You can save arm, leg or hand poses by selecting those specific parts.  Otherwise select the figure parent group for a full body pose.  It saves a .png icon using the current rendering camera view.

    I had planned to make this a much better plugin and release it through DAZ but I've hit so many brick walls that may never happen.  Better to share something that might be useful rather than nothing.  As discussed above I can't get into the pose control information with the SDK - nor the morphs either to do expressions.  It works with the Genesis 1 and 2 figures that are supported in Carrara 8.5 and should work with most of the earlier DAZ human figures.  I hard coded in the bone names which can vary from one figure to the next but are consistently named in the pose files.  If other figures have bone names that I missed they could be added.  This was a similar issue to the 'internal' morph names but with bones it was easy to make a translation table.

    I was able to add in a list of detected runtime folders to make it quicker to get to your content but this didn't work on the Mac version.

  • Bunyip02Bunyip02 Posts: 8,712

    Thanks !!!

  • 3drendero3drendero Posts: 2,027
    Thanks.
  • 3drendero3drendero Posts: 2,027
    Thanks.
  • MistaraMistara Posts: 38,675
    edited August 2019

    AWESOMWNESS!!

    Thank Yoo

     

    would it sound too ungrateful to request a arm/leg swap

    would make walk cycles incredigly easier.

     

    Post edited by Mistara on
  • Fenric did a symmetry plugin back in the day.  Is that no longer available or doesn't work with Genesis ?

    If not I can do that as a plugin too if it would only need to search by names to find bones with a matching prefix of l or r, left or right etc as opposite names and swap or copy their rotations etc.  If it was to be applied to arms and legs and the user made the selection first it would be a simpler plugin than having to search for specific names.

  • HeadwaxHeadwax Posts: 10,013

    thanks so much @Sparrowhawke3D

  • WendyLuvsCatzWendyLuvsCatz Posts: 38,311

    a fractal video, I wonder if ray marching could be used with replicators, trees and terrains as also copies of the same thing

    I know we need raytracing for 3D models but to proceedurally render huge foliaged environments a marching ray tracer would be awesome

  • MistaraMistara Posts: 38,675

    Fenric did a symmetry plugin back in the day.  Is that no longer available or doesn't work with Genesis ?

    If not I can do that as a plugin too if it would only need to search by names to find bones with a matching prefix of l or r, left or right etc as opposite names and swap or copy their rotations etc.  If it was to be applied to arms and legs and the user made the selection first it would be a simpler plugin than having to search for specific names.

    sadly fenric script doesnt work on genesis

    i see the leg tremble like it wants to move

    needin a walk cycle for howler

    smiley

  • WendyLuvsCatzWendyLuvsCatz Posts: 38,311

    there is a plugin called DAZ studio that will do symmetry 

Sign In or Register to comment.