Manipulate MoGraph Clones using XPresso?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 21/05/2010 at 08:28, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   11.5 
    Platform:   Windows  ;   
    Language(s) :   C.O.F.F.E.E  ;   XPRESSO  ;

    ---------
    I need to manipulate individual Clones based on calculations and input values inside of XPresso.
    With Motion Graphics Data it is possible to select clones to extract data, but I haven't found a way to actually feed data back to a particular clone.

    I also tried a Coffee-Effector but it could not use the XPresso data and also a C.O.F.F.E.E. node in XPresso apparently can only be used to calculate things but cannot receive an Object or Instance directly.



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 26/05/2010 at 02:21, xxxxxxxx wrote:

    Currently you only have access to the individual clones within the COFFEE effector.

    cheers,
    Matthias



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 27/05/2010 at 06:48, xxxxxxxx wrote:

    With the COFFEE Effector I can manipulate the clones, but the Cloner is not updated automatically.
    Only if I disable and re-enable the Effector, the Scene gets updated.
    However, if I scrub through the Timeline from end to start, it updates for whatever reason.

    Below is a sample that pulls data from UserData and modifies the scale of the clones.

    main(doc,op)
    {
         var o = doc->FindObject("BarChart");
         
         var arr = new(array,5);
         arr[0] = o#ID_USERDATA:1;
         arr[1] = o#ID_USERDATA:2;
         arr[2] = o#ID_USERDATA:3;
         arr[3] = o#ID_USERDATA:4;
         arr[4] = o#ID_USERDATA:5;
         var md = GeGetMoData(op);
         if (!md) return 1.0;
         var index = md->GetCurrentIndex();
         switch (md->GetBlendID())
         {
              case ID_MG_BASEEFFECTOR_SCALE:
                   println(arr[index]);
                   md->SetDirty();
                   return arr[index]-1;
                   break;
              default: return 1.0; break;
         }
         return 1.0;
    }

    Is it possible to upload a sample scene?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 27/05/2010 at 07:31, xxxxxxxx wrote:

    It seems that the document is only evaluated at frame 0.

    cheers,
    Matthias



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 27/05/2010 at 09:05, xxxxxxxx wrote:

    Is this a bug or a feature?
    Maybe I should cross-post it at Bug Reports?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 27/05/2010 at 09:24, xxxxxxxx wrote:

    Originally posted by xxxxxxxx

    Maybe I should cross-post it at Bug Reports?

    No need, I will forward the issue. It looks like a bug to me.

    cheers,
    Matthias



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 09/07/2010 at 03:17, xxxxxxxx wrote:

    Was it confirmed as a bug and is there more information about when it might get fixed?
    Apparently it was not fixed with the 11.523 update

    Regards,
    Gerhard



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 09/07/2010 at 05:36, xxxxxxxx wrote:

    FYI, played again with this setup, it works if you put the user data on the effector, if that helps.

    So it seems the problem is reading the user data from external objects.

    cheers,
    Matthias



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 11/07/2010 at 13:38, xxxxxxxx wrote:

    Great, thanks a lot, this tip saved me a lot of manual work!

    Cheers,
    Gerhard


Log in to reply