Missed The Season 3 Premiere of AskGSG? Get the Full Schedule Here!

Xpresso Part II: Building a Picture Frame 32 Comments

A follow up to Intro To Xpresso. Here we create an Xpresso driven picture and frame. We get to do a little more math, explore the Range Mapper node, create more User Data, plus lot’s of little tips and tricks I use including making the content browser extra user full!

Watch Intro To Xpresso

Comment Rules

This is a friendly community. Please treat everyone with respect. We don't all have to agree, but we do have to be nice. Criticism is fine, but rude comments and name calling will be deleted. Use your real name and don't be spammy. Thanks for adding to the conversation.


  1. Really great one.
    Now using xpresso makes sense to me.
    Just a request: how can you import objects from content browser to your scene by double clicking them as Nick always do with his light kit pro stuff?
    Thanks a lot.

  2. Sascha

    Thank you Chris! I hope the next tutorial will be Xpresso too. 🙂

  3. Ian Digs

    Thanks for this awesome explanation of Expresso Chris. This is going to make my workflow so much easier. I especially liked the object browser piece at the end, that’s going to be so much help to me in future!

  4. the whole tutorial is perfect. I wish it was longer, i mean it.
    I liked the expresso interface and content browser tips very much.
    and a question; can we make an imagepicker user data for the material?
    keep up the good work. thanks Chris..

  5. Justin Manchester

    just out of curiosity bc i think it would be cool to do, is there any way to set up in xpresso the ability to call in outside data. lets say from a spreadsheet for example.

  6. Today again…
    I sit here – for over an hour – and painlessly learn – eagerly wanting more – of when “nothing”
    magically becomes something – beautiful.
    Almost sounds like a “Zen” saying for the tutorials on this site : ).

    So, Thank You to Nick and Chris … and others who have contributed their time & skills
    with tips and tricks – including comments!

  7. Null Personality

    Nice try, Chris, but I think I recognize the 3DBB, aka three-dimensional blackboard of Tennessee Tuxedo fame, when I see one. Expect a nasty letter from Phineas J. Whoopee in the near future.
    Other than that, thanks for de-fanging one of the most secretive aspects of C4D. Can’t wait for more.

  8. Thanks Chris !
    It’s really great that GSG now includes some Xpresso dedicated tuts!
    For anyone that’s interested in more Xpresso, you should definitely check Robert Leger’s blog
    It is mostly dedicated in Xpresso…

  9. Gokhan

    Awesome !!!
    Milluon Thanks Dear Chris,very useful tutorial,thanks for share my friend 😉

  10. Off topic but, since black Friday is coming up, are you gonna have a sale on the kits?

  11. Hey Chris, or anyone else, I’m doing an animation of a tank track and I was wondering how i would make it so that when I move the tank around in the viewport, forwards and backwards, that the tracks will move. Basically what I’m saying is that is there a way in Xpresso to make it so that when i push the tank backwards the tank track rolls backwards and when I move it forward the tank track goes forward? (I’m using a spline wrap so it would have to link to the “Offset”)

  12. CollinBishop

    I also think that it is great you are doing these tutorials. Keep it up…

  13. Steve

    Hi Chris,
    A little base knowledge of math is a great benefit when using C4D. It is not a witchcraft and it can be put to great use. So the weird number you get 57.296 in degrees translates to the 100% of 1radial because a full circle equals to 2 x pi radials =2×3.14…=6.283radials and this equals 360 degrees. 360/6.283 equals 57.296 No mystery there!
    Very clear and pleasant style.

  14. rovino

    Wow you’re on Tute 11 already? where did the time go? great example with Xpresso.. this was over an hour.. and that time flew by as well.. Thank you Chris.. Keep them coming!

  15. Cookey

    Thanks Chris, another superb tutorial. It’s all the practical little tricks and tips that allow you to see the logic behind some of the Cinema functions. Thanks to Nick too for pulling so many great resources together!

  16. Hey Chris!
    Awesome tut! 😀 looking forward to the next one!
    Just one question: Is it possible to connect a Custom-User-Interface-shader (Data-typ: Link / Interface: Shader) to an input of a material-channel via expresso? or does coding start here?
    …hope you get what I mean! ^^

    Cheers Fabian

    • Marc Pearson


      I just built one where you could specify the image with a user data field. Create a material and place an image in the color channel. Click and drag the small preview of the image from the Material Manager into your Xpresso editor. Connect your filename user data field to the “File” input of the material bitmap. You can also use the Bitmap Node linked to the same user data field to drive the height and width of the picture frame.
      Hope that helps!


      • matbdrd

        Great! But what happens if you duplicate your frame to have another one in the scene ? How can you get different frames with different images ?

  17. Renzo

    Great tutorial! Altough i’ve started to learn xpresso a little while back now (so I knew the basics covered here), but it’s still great to see the workflow and manurisms of a pro.

    A little tip for everyone; Try to open up the C4D presets. They contain a lot of xpresso to learn from, especially the character stuff. And maybe a suggestion for a future tutorial to include the userdata in the viewport! That helped me a lot when I’ve got to do a lot of keyframes on a single object.

  18. hi, i wonder if C4D xpresso nodes can show value ? i used spy node , but it can not update value or show wrong value..

  19. lamlaude

    Excellent Tutorial Chris.
    I think the reason you get half of the texture on the size parameters it’s because the calculating from the center where the axis is.
    Thanks for another great tut!

  20. Marc Pearson

    Great Tut Chris! I took it a step further and made the image texture drive the size of the frame instead of having manual sliders 🙂 Definitely saving this! Thanks again and keep up the good work!

  21. Husse

    Thank’s for the Xpresso tuts! This second one was actually easier to follow than the intro I think!

  22. I really interested in the use of zpresso to enhance my knoledge of cinema4d,
    there is something that it seems pretty complicated: how can I transform degrees into position data?
    I think the range mapper is the right guy to do that, but again, how?


  23. Berczi

    Great tutorial, thanks! I’ve got a question:

    If I set up a default value for a property and I click to the little arrows of input field with the right mouse button, the actual value doesn’t change into the default value. Is it possible to set it up?



Leave a Reply

Comment Rules

This is a friendly community. Please treat everyone with respect. We don't all have to agree, but we do have to be nice. Criticism is fine, but rude comments and name calling will be deleted. Use your real name and don't be spammy. Thanks for adding to the conversation.