python, motion graphic expansion

#1 much learning python extend cinema 4D motion graph possibilities? low, intermediate, high, extreme


Programming will always increase what you can already do. I do a lot of motion graphics and I have created my own tools using python and xpresso (mostly pie / bar / line graphs and also animated maps)


I agree with luis, learning a bit of programming can greatly increase your artistic freedom and allows you to be more specific in your designs instead of creating variations and combinations of the effects that the high level features provide you with. There are some great free online resources to learn, e.g. the coursera classes or the video lectures of Daniel Shiffman.
To get a glimpse of what is possible you could also start with exploring the formula effector (or formula Field in R20). The few variables exposed in there already allow quite a few custom effects without having to worry much about syntax. There is a formula section the appendix of C4Ds help with a list of all the operators you can use:


If you can’t do any coding at all then you’re easily missing out on 1/3 of any application’s full potential. Not Just C4D.
In fact. Since the computer has now become the single biggest tool in everyone’s life. If you can’t do any coding at all then you should consider yourself severely handicapped. And you might as well become Amish.
The days of hiding from code and inventing things like xpresso to make things “code-less” so you can stay code ignorant are over.
If you can’t code at all. You’re basically a helpless baby in the world. And you’ll be even more helpless in the future.

Everyone needs to know how to code at least a little bit now. And IMHO you should all be helping each other with that more than you are.
It’s no longer acceptable to not learn coding just because you don’t like it. In this modern world it’s not an option any more. It’s now as important as eating and exercising.
You don’t need to be an engineer level coder. But you at least need to know how to write basic scripts and how to use SDKs.
This is why IMHO this crap of selling every little thing you code has got to stop. And the source code should ALWAYS be included an anything you give away. Even if it’s free.



Just to add, Xpresso isnt the only nodal interface. 3dsmax has its own, Houdini itself is like a big nodal interface (vex node), Ross Xpression, Unreal and Unity (through plugin) they also have a nodal interface to make code easier.

Sure it helps to know code snippets, but In my opinion Xpresso is a great tool in C4D, and a must, considering is hard to select objects using python - because I believe C4D doesnt store individual names like Ross Xpression does - I can change my entire hierarchy and Xpresso wont give a damn, while on the other hand I would have broken python if I do such a thing.

Also, Xpresso is not just a starting point to code, it have some underappreciated time saving nodes like Range mapper in C4d, wich can replace all these in Houdini: fit, fit01, fit11, fit10, clamp, radtoDeg, degtoRad.

Anyway, I love using xpresso, im not a fan of the interface and the spiderweb it can create, but at least now I know, hopefully in R21 or R22 we can have a better nodal interface in xpresso like the material system, because Xpresso is one of those hidden gems in C4D.

To Angel7animation, a couple of nodes in Xpresso are compare / condition, wich are like IF / THEN in any coding language. You can use it in a lot of ways, for example, if you are animating a “launch nuclear bomb button”, you can do something as simple as “if the botton is pressed (driven by the scale of the button), the material goes bright red, a door closes, and a light begins rotating and flickering”, this can help you because any time you need to change the moment your character is pressing the button, you dont need to move extra keys, thus saving yourself a lot of time.


Hyperbole much?

You may not like visual coders like XPresso or Visual Logic, but even if you DO know how to code they’re still valuable tools, and much easier to figure out what’s wrong by tracing a node path than scanning lines of code looking for a double space, or an errant period.


That’s kinda silly. Xpresso is no more “hiding the code” than Python is. Unless you’re coding in machine language you are always working in a higher level than what the computer actually understands (even assembler, which I happen to know a little, is not machine language). Python is actually closer to Xpresso than to C, for example, as you don’t have to bother with pointers or memory management.


Totally agree with you as I’m a fan of Xpresso too. The editor is not the best, the logic nodes are unnecessary complicated but it’s very powerful, useful and works beautifully together with Python.
Cinema 4D’s implementation of Python is really bad in comparison to Maya. As you noted, it is really hard to select objects (and other basic things) with Python. But when you use Xpresso together with a Python node everything comes together and we get a very powerful system that is useful for artists with only a limited knowledge of programming.


The majority of presenters at SIGGRAPH — and the majority of those succeeding professionally with C4d — write little or no Python of their own.

I have no doubt it expands the tool set and opens up more custom options…and is worth learning. But let’s keep it real.


It certainly doesnÂ’t hurt to know how to code but ideally if weÂ’re doing it right it shouldnÂ’t be a prerequisite to getting the job done. However the reason I learned how to code was simply because the tools and workflows I needed didnÂ’t exist, if you find yourself in that situation and youÂ’ve exhausted the alternatives then itÂ’s a great time to pick it up, thereÂ’s no better way to learn than with a goal and purpose in mind.


LOL. The replies to what I wrote are EXACTLY what I expected. So predictable it hurts from the laughing. :wink:
Except of course for Anders. Because he figured out, just like I did, that the most important thing about coding is NOT about making money.
It’s about not being a completely helpless, clueless, babe in the woods with the single most important tool most people use on a daily basis.

It doesn’t matter if you like or hate specific code less GUIs. That’s personal taste. And everyone has different tastes. That’s a different subject.
And yes, you (Joe Public) will probably always need to rely on other people to code the really big complex stuff for you. That’s not what I’m talking about either.
But…If you look around and see what’s happening. Most applications these days (even word processors) come with some sort of SDK of some kind. That is used to extend the application.
This trend has exploded in the last decade. And I see no reason why it will not continue to grow.
If you can’t code at all. IMHO you are in big, BIG trouble. You’re handicapped.
You might be able to barely skate your way through things right now by burying you head in the sand about it. But that’s changing rapidly and you’re only hurting yourself by ignoring it.

The answer is not to stick your head in the sand and pretend this doesn’t exist (like some people are doing here).
The answer is to accept it as a fact of modern life. And to help each other deal with it.
It’s not really that hard. It’s just explained very badly in most cases. And if you don’t believe me just go to YouTube and look at all of the (insert politically correct term for moron here) doing coding videos.
I’m not mocking those people. I love those people because they prove what I’ve always said:
Anyone (and I do mean anyone) can do it. At least good enough to use it for making simple things like scripts and plugins. You just have to be willing help each other out the same way you all help each other out with Mograph, rigging, modeling, etc. problems.

The people that will fight you the most on this are:
-The people that are too lazy and stubborn to learn it
-The people that want to keep treating you like an ATM and charge you for every little piece of code they write
These kinds of people are toxic and do not have your best interests at heart. Stay away from these people.

IMHO. You cannot ignore the elephant in the room anymore. You MUST learn basic coding. Basic…as in scripts and plugins. And not just in C4D, But in general.
It’s not optional anymore. Or at least it’s quickly becoming not optional.
I’m not asking you to like it. Just that you NEED learn how to do it at least at some basic level. Because at some point you WILL need it. I guarantee it.
And don’t let anyone charge you for help either. Don’t pay for a single coding course until you first learn the basics for free.
These people that charge you for lessons on the basics are not doing it to help you. They’re doing it to lighten your wallet. You’re just an ATM machine to them.
If you want to go deeper into it. Then…go ahead and maybe pay for more advanced lessons if you want…But only after you learn the basics for free.

-Or -
You can just call me “ridiculous” and go back to sticking your heads in the sand while the world passes you by. And uses you as a mindless ATM machine.
It’s up to you.



I never said people shouldn’t learn coding.

What part of my reply were you were laughing at?


^Oops. I didn’t mean to include you into that crowd luis. Sorry about that.
You’ve always been polite and helpful here from what I’ve seen.
Sorry If I stepped on your toes there. It wasn’t intentional.



First off, this is one strange thread given the opening posters single line post…

I find ScottA’s last couple of posts looking at things in absolutes, when in the creative arts, there really isn’t any and particularly when it come to software and what you need to know or must know in that way.

I mean if you are talking about code itself, it is a series of binary numbers, do you need to know what that series of binary numbers are, no because they are represented as characters and numbers, whilst the language is based upon a series of characters and formed as data which is recalled by the computer and executed. And as we all know, the purpose is to allow one to use what we call as programs. We simply don’t need to know any of that underlying code or how in which the computer is able to process that data for the purpose in which a program which it is created and, is designed to perform. The most important thing is what one is able to to do with the program or tool created as I’ll call it to produce the finished product… and that’s what matters most. There is no single way to get there, and because you don’t know something, it doesn’t mean the way you do something, is any less than the way in which someone else does something, if the end result is the same, because one simply can’t know everything, but even if we did, we would never ever be able to retain it all in our heads…

Sure, before one does B, they need to understand A to get to B, but that’s not an absolute, if one knows how to get from A to C and bypassing B altogether…does that make anyone less capable ? I don’t think so…

Many programs today put locks on how you can use and interact with them…whilst others are more open to do so, to allow the accessibility…If there is any path to take whether that involves any programming or scripting or not, the end result can almost always be performed by other means anyway.

For me 10, 11, 12 years ago, I was learning Pascal, HTML/CSS, PHP, Actionscript at Uni over a 3 year period…but to day, it’s really not been much use to me…so really it’s not going to have made much difference if I had not learned it… In the past few months I’ve deconstructed the scripting for a VST interface and modified it’s code and graphical layout/design… I could have chosen not to touch the scripting at all, but I did, not because I had to, but because I wanted to, in the remit of the accessibility I was granted.

Anyway… that’s my take on some of what’s been posted here…


One has so many hours in a day. I say: Learn the skills that best assist your work and are in alignment with your aptitude and goals. That might be color theory, principles of animation, composition, programming, etc.

IÂ’ve learned some JS and C sharp and plan to learn some more. Maybe at some point IÂ’ll learn Python. Maybe not. IÂ’ll target new skills as they are in alignment w/my life.

There is a lot of fundamentalist thinking by someone in this thread…complete with harsh black/whites, day-of-judgment notions, blame, self-righteous elitism, etc. And this is a recurring pattern. I’m going to ignore and move along. Done here.


I’m not trying to change your opinion here.
But what I would like to ask you to do is just think about what I wrote for a little while:

“But…If you look around and see what’s happening. Most applications these days (even word processors) come with some sort of SDK of some
kind. That is used to extend the application.
This trend has exploded in the last decade. And I see no reason why it will not continue to grow.
If you can’t code at all. IMHO you are in big, BIG trouble. You’re handicapped.
You might be able to barely skate your way through things right now by burying you head in the sand about it. But that’s changing rapidly and you’re only hurting yourself by ignoring it.”

I’ve never quoted myself before. :wink:

If someone you truly wanted to succeed asked you how important is to learn to code for the purpose being able to extend the applications they use. Can you honestly look them in the eyes and tell them that it really does not matter?
I’m not going to judge you and call you nasty names if your answer is yes. We just don’t agree on this subject.
But IMHO. Things have changed a lot since the old days. And in my opinion there has been a very big increase in SDKs being touted as a key feature of most applications these days. Not just 3D apps.
Five or maybe even ten years ago I myself would probably have said it isn’t really something that is very important to learn.
But IMHO. The landscape has changed(changing). And IMHO it’s no longer proper advice to tell people it doesn’t really matter.

The last thing I can say to anyone that doesn’t think this code stuff is important is this.
The next time you open one of your apps (not just C4D) and say to yourself: “I wish X would happen when Y occurs”. Ask someone if that is possible to do using the app’s SDK.
If the answer you get is yes. Then you’ve just proved to yourself this code stuff IS important. It IS worth learning. And it’s not good advice to tell other people it’s not important.



Sorry Scott, I can’t agree with a single word you’ve written. Your entire post comes across like something you’d find on /r/gatekeeping on reddit.

Programming/scripting is a useful skill, it allows you to do tasks which would be difficult, slow or impossible with out it. But the hyperbole of “you’re just a helpless baby in the world” is both insulting to the vast majority of readers here and massively inaccurate.

The majority of computer artists (PS/AE/3D) will never even come close to learning half the power of half the tools they have available to them. Given all the other tasks an illustrator, artist or animator typically has in a day, most power of the apps they use tends to go untapped. Some people (I would count myself here) strive to learn as much about their apps as they possibly can, but between all the different programs and the pace with which they get developed, that is a significant chunk of a person’s day to invest in trying to stay current with technology.

A small number of people will ever learn how to control objects mathematically via xpresso.
Fewer people will learn how to control these apps via basic math/code snippets
Even less people will begin writing actual scripts
And a fraction of a percent will properly code usable tools.

Acting like anyone outside of the 0.1% who know how to program their way out of a problem are helpless handicapped children is an absurd position to take.


A big difference between XPresso and C4D Python is how they treat data types. Xpresso is very (too !) forgiving when you mix n match data types. Integer plugged into string port - no problem in XPresso, integer sent to string port in Python = error. You very quickly get into bad habits with XPresso.

Another difference is integer division. In Xpresso, 3/2 = 1.5 however in Python 3/2 = 1. This is due to C4D still being on Python 2.7 (later versions don’t have the integer division issue). I’ve lost count of the times I’ve been troubleshooting a Python script, only to find that a particular value eg Y position just happened to be set to a whole number - which screwed up my math. D’OH !

It’s easy to learn regular Python from YouTube, but grasping the C4D Python specifics is very hard IMHO. The Maxon Python pages are pretty incomprehensible. I just look at other people’s code, and steal bits I find useful.


What an absurd thread this has become.


Well. I would argue that you’re POV is the absurd position Matthew. Old fashioned and naive to the point of being potentially dangerous.
I would also argue the 0.1% is far lower than the actual number of people doing this stuff. Especially in the youngest age bracket.
But it’s ok to not agree.

All I ask is that people stop mindlessly telling people asking for advice about this that it “doesn’t matter”. Because IMHO this has changed (changing) and is no longer true.
If anyone thinks this stuff really does not matter. Then just please do some looking around before calling me absurd.
Take a look at what new applications are doing. Take a look at what the users are doing with them.
Are the users simply pushing the buttons given to them? Or is there a group of users for that software that are using some sort of SDK for it to customize it in some manner?
Is there a forum where people are discussing the application’s SDK?
How large is that group of people?
How many of these applications have users doing this?
If you still come to the conclusion that this stuff really doesn’t matter, and most people really don’t even need to learn the most basic level stuff. And using what someone else is provided to you is good enough. Fair enough.
I don’t agree with you at all. But fair enough. To each their own.