129 comments:

Hey m8, How's that walk cycle tool coming along? It think you should focus on the main animation and give the foot roll a second place because that is very reliable on the rig. If the legs, arms and body are controllable its ez to animate the foot roll with a proper setup and you can loop those keys to match up with the cycle.

Hello, Chris,I was playing with your CS_walkcycle (beta) and I found it very useful. Now I have a suggestion: Do you think you can add the possibility that the characters would RUN with this plugin in next time? I introduced some changes of the way for using it. So, I added a time node, because at this way is possible to let them begin to walk in the middle of an animation-period, for example, with a frames offset. If you want, I can send you an little example, I think it is better to use by this way. Thanks for an short answer. Dieter

Hello, Chris,I was playing with your CS_walkcycle (beta) and I found it very useful. Now I have a suggestion: Do you think you can add the possibility that the characters would RUN with this plugin in next time? I introduced some changes of the way for using it. So, I added a time node, because at this way is possible to let them begin to walk in the middle of an animation-period, for example, with a frames offset. If you want, I can send you an little example, I think it is better to use by this way. Thanks for an short answer. Dieter

been using your cstools for a long time now, just wanted to say thank you for all the time they have saved, and the amazing results they have produced!

recently... im using the vibrate null 2 tool, creating some random motion on an object. eventually i will be comping in AE bringing the camera and nulls and such in there to add secondary elements. i want to attach a null or two to the object that has the random motion on it via VibrateNull, then using that null in AE for some particular effects. adding an ext. comp. tag onto that null wont do the trick as its expression based. do you know of a quick work around?

Thanks, Casey. But Base80 is doing quite a good job of educating already methinks. I turned to his page a few times for help myself. I don't think CSTools are that complicated as far as Xpresso. Just tools that I think needed to be made (at least for me).

Just stumbled upon your CS tools in my lib again. And I am so impressed. Such a great tool and lots to learn in there... How the hell did you get so good ;-) The xpresso community could use more people like you.

Yes. You can bake any object's PSR into keys by selecting that object and selcting "Bake Object". Bake Object can be found under the normal menus or in the timeline menus.

However, Bake object only bakes an objects local coordinates, not it's actual position in global space. So if you twirled down MoCam to find the actual camera at the bottom of the chain and baked it. You would bake all zeros because that camera just rides along to what it's parented to.

I wish C4D would add a "Global Bake" function. But since it hasen't that I know of. You need to do this:

Create a new camera. Add an Xpresso tag to it. In the Xpresso window drag in the new camera object and the actual MoCam camera (The one at the bottom of the chain in MoCam or Easycam). Now pipe the global matrix of the easy cam camera into the global matrix input of the new camera.

Close the xpresso window and select the new camera and bake that. It will have the correct PSR keys.

The other downside to "Bake Object" is it only converts PSR data. Nothing else. So any Focal Length changes won't translate. SOme people have managed to get around this by piping the Focal Length into another camera's Position channel then baking that. Then using pickwhips in AE to get that data back to a focal length. Me personally, I just re-keyframe that part in AE to match since it's usually subtle changes during MoCam morphs.

Omg!i can belive this amazing tool exist!.im a after effects user for a long time...but i want to move to cinema.and sorprise!!!!!i got all the motion graphics tool in one click!!no keyfreame need....no more get crazy for make the same of after in cinema...

its so magic! its so fantastic!.im soooo happy to find this!.i can do so much animation without keyframes...and etc....and speend a lot lot time between keyframes :D.

thank you thanks you very muchim from argentina.i dont have any question this tools its very easy to use!.but i hate when cinema quit the object folder :S

In the Xpresso window grab the last camera in each Action Cam or Docucam and drag it in.

Then drag in any waypoint cams from MoCam you want to use.

Then on the Action/Docucams output create a 'global matrix' port. Then on the Waypoint nodes create a 'global matrix' input port. Then just link them how you want. So an Actioncam can link to waypoint one and a docucam can link to waypoint 2. When these are linked, the waypoints do whatever the ActionCam (or any cam of any sort in C4D including a Steadycam) will do.

Hi Chris. Recently started using mocam, and much to my surprise its quite easy to use and works very well in a pipeline. It's very modular. Well, just when I thought we might get out of the woods without any major client feedback, they wanted to tweak one of the waypoints and have it drift smoothly past, instead of "stopping and drifting," as I had animated it. Can you think of an easy way to match the incoming velocity of the camera so as to use the waypoint camera as simply a 'waypoint?' sort of like a roving keyframe in after effects? Currently I've aligned it to a spline and I'm trying to match it by eye, but with any ease on or off, there's always a noticable pickup point. Was MatchPrevious Waypoint in any way useful for this? (like match it, then animate that one directly off the last location.)

Two things. Have you tried setting the hold value to a negative number? It works both ways. The more negative the hold value the less it considers stopping at that waypoint.

The other thing is if you're close to a final cam move it make be time to bake the keys then just tweak the keys a little.

Next time I get around to it, I'm going to make an easily bakable MoCam. But for now you need to create a new camera and in Xpresso pipe the Global Matrix output of the MoCam render cam (bottom of the hierarchy) and pipe that into the global Matrix input of your new cam. Then bake the new cam. Then key reduce.

Chris, Hell's horses. Why isn't this in your documentation!? that's a critical function of the mocam toolset, very valuable tip indeed! Thanks for a quick response, I just posted 3 new camera moves to my client due to your timely answer. I didn't bake, I simply used one as a waypoint. It seems after around -20, it seems to really wonk the camera about in a bad way however. It's really magnetic. Very useful. To daisy-chain sets of cameras together you can just connect the last one to the first cam of a duplicate set like you mentioned somewhere?

"...At each stop this can be set positive so that the cam stalls at each waypoint for a while. But this can also be set in negative values for the MoCam to never really settle in. It will become a soft move passing by the waypoint the way a spline softly moves between B-Spline points. It's easier to just do than to explain."

Snap! you're right! I'm a jerk. In my frantic search I managed to overlook that (just read the overview paragraphs). Thanks again chris, love your work and your tools. No idea how you do it all but it's an inspiration. Drop me a line next time you're in LA, I owe you a round (codewhite.org)

Thanks for the tools. Very generous. I was trying to figure out an easy way to make the shadows in CSDaylight be soft shadows instead of hard raytraced. It seems that it is controlled through expresso and I am lost at what to do. Otherwise I can just turn off shadows and use another light source but I'm thinking that it will not be as efficient.

Hi Stephen. You'll have to go inside the Xpresso node and find the node that represents the rim light. There is an input port for shadow type. Delete that. Now you can set the light shadow to whatever you want and Xpresso won't try and reset it.

I have used your moCam and lineGrow tool in my project. They are great tools. I am working with 25fps and when rendering I change the render setting to 50fps. But I have a problem moCam renders it with 25 frames with repeated frames so it looks like 25 frames. Why is this happening?

When I change the project settings to 50 frames it works but I have to change all my lineGrow tools settings in order to sync. It is lots of work...

But after i have read this section in your blog I thought that baking camera animation thing should work.

Chris, Thanks for the awesome tools. In 3D Stroke, I was wondering if there is a way to change the shape of the spline that's driving the taper shape and how to do it? I'd like the front of the growth to be 100% (so no taper at all) and then trail off.

There is but you'll have to deconstruct it. You'll see in the xpresso I driving points on the sweepNurbs scale spline graph. You can delete the inputs and nodes for the front so the tapering is only happening on the back.

Hi Chris. Great tools, thank you sooo much. Is there a way of using the native stage object in conjunction with your cams? Eg switching from a few shots in MoCam to a ActionCam Shot.

Adding the moCam to the stage object seems to break the mocam sequence. You can add the individual cams into the stage object to make it work but then you don't get any of the interpolation between the cams so isn't viable.

I'm sure it's just that the MoCamNull which contains the cams get's referenced in the stage object (which is why it results in a static shot) so is there some way of forcing the current cam coordinates onto another null and using that as the scene object reference??? Or maybe you've already got a workaround?

Anything but render both scenes out and piece together in Aftereffects or similar.Thanks. Chris

Honestly I don't think I've ever touched the Stage object before. I'm going to guess the solution is the same one for baking MoCam which I detailed above in the comments section. But it's basically creating a new Cam and piping the global matrix from the MoCam render cam to it. Like you said the MoCam's local coords are zero'd out. But the Global coords are how it moves through space. Unless there's a way to have the Stage objevt read it's global coords, you'll have to make a new cam and force the MoCam local coords into it's local coords.

I got your cool CSTools running. I have one problem though with 3DStroke. It seems I am not allowed to reset the offset instantly to 0. When I do that, there is a small stroke 'left over', even though the offset is back to 0.

This also happens when I reach the end of the animation and the frame jumps back to zero.

If you're reffering to the blip of stroke that happens, that unfortunately is beyond my control. CS_3DStroke manipulates knots on a spline graph. When it does that blip, it's a weird phenominon from the sweep nurbs. I've tried many time to find a wrokaround. It seems intermittandt. Works sometimes, other times not.

Hi ChrisI've come across a prob I can't find a workaraound for with the 'LineGrow' object. If you nest the pathSpline, Tipshape+lingrow into a null then move that null the tipshape separates from the head of the line.

Of course you could just nest everything apart from the pathspline and and move that which works ok. BUT then you lose the visual representation of the spline in the editor view. Meaning that if you wanted to edit the spline in it's new position you have to go back to 0,0,0 to do it, then check back to the extruded path (wherever you moved to) to see if you got the desired results.

Any ideas? My only thoughts were to duplicate the path spline and place the dupe in the nested null along with the other bits (still leaving the original outside) so at least you had representation of it in it's new location. But when it comes to editing it, you still have to go back to 0,0,0. Unless you can edit the duped spline in place, then use some xpresso to make the original spline (used for the actual path) match the modified dupe. Not even sure if this is possible and probably beyond my xpresso tinkering. Crazyhorse solution? or is there something more elegant that comes to mind.

Just completed my first project using your awesome set of CSTools. For this project (For Toyo Tires) I used 4 of your cams (loving action and docu cam) would love to hear your comments and thoughts. Anyway, thought I'd let you know and thanks for developing these tools and especially for making them available free to everyone.

Fantastic work. That's the exact kind of thing those cam tools were made for. Thanks for sharing. A treat.

@chrisbaseone

Man, i'd have to look into that. I made those so long ago I would be reverse engineering what I did at this point to figure it out. When CSTools were released by Maxon as part of the Broadcast bundle, they fixed the same problem with 3D stroke. Although I'm not sure exactly what they did. I'm very busy this month and next but maybe soon I can try and figure it out. Although you may have better luck taking a stab at it yourself. Sorry I'm not much of a help.

The idea is to have a automatic bouncing ball.So cs_spring can help me a lot.Just two question.

1° Is it a way to have a limit on Y axis so the object don't cross the ground (Y=0). For the moment the lower position is never quiet the same so my ball cross my ground.

2° Is it a way to add some scale or squash deformer link to the bouncing control. What i would like is again an automatic compression of my ball touching the ground. WIth a slider who can control the strengh of the compression.

Me again. :-)I was playing with xpresso and i find a way for the squash thing.Link the weight of the squash deformer with range mapper to the Y position of the null.And then i've got the strengh with the factor slider.Works great !

Hi Chris. I'm new to C4D and CS Tools, first of which I'm using is DocuCam, which is amazing. Based on my camera position and base zoom my actual focal length is 30 and I'd like it to be even wider. At this point my base zoom is 0 so I can't get past 30 for the focal length. I know this is operator error so can you tell me what I'm missing. Thanks.

Make sure the 'reset frame' parameter is set to the same frame that your animation starts, if it never goes to the reset frame it will drift until it hits zero or way too long. If the resert frame is the same as your animation start it will have the exact same motion every time and the zoom won't drift.

Base zoom on the top DocuCam parent is 0 and on the camera itself it's 30 although changing it at the camera level doesn't seem to affect it. Not sure where I'm missing it. Thanks for your time, by the way.

I'm using EasyCam2 and exporting the camera data out to after effects but am getting a 5027:12 error. Looking up the error, I read: After Effects: AEGP Plugin RPFimport: No camera data in the file. Is this because of using EasyCam and is there a way around this?

You'll want to bake the cam data into keys and just import that. You'll need to create a new camera , set it to the same Focal Length as the Easycam setting. Then in an Xpresso tag, link the Global Matrix out of the EasyCam render cam (last cam in the hierarchy) and pipe that to the Global Matrix input to your new cam. Then in the timeline, select the new cam and Functions->Bake Object. That will create keys for the motion. Clear EasyCam from the scene then try and move it to AE. AE doesn't know what any of the expression stuff is so that is probably what is giving you the error.

Hi,I am trying to learn some of the basics of 3d using C4D. I downloaded the CS tools featured by Nick at GreyscaleGorilla ( very helpful tutorials ..thanks alot). EasyCam does not seem to work in C4D 11.5 .... any ideas? It works fine in C4D 11 on the same machine.

Hi again, CS Daylight and various others in in the collection don't seem to work in C4D 11.5 either...... the 'user data' sliders have no effect? If you build a file in C4Dv11 with say CS Daylight + CS EasyCam then open it in C4Dv11.5 then they do work? Is there a simple fix for this...?

Sorry guys .... just found the problem .... I had been using the OLX plugin as discribed by Nick but had failed to install the correct 'Merge' button on the C4D interface.I just tried loading CS EasyCam into C4D 11.5 via the 'Content Browser' and it worked fine!

Kudos Chris on a great addition to Cinema 4d. Question - when I download your file, and then attempt to use them, some things seem stripped (like material, lighting, some 'reference' objects, etc). Not sure what I did wrong. Any help would be greatly appreciated. (I have downloaded the newest product several times, used the Greyscale Gorilla blog to load them into C4D, etc.)

Hi Chris, I bow before you and your toolset which has contributed to countless projects. Thank you thank you. After using Mocam successfully several times I have a question that hopefully is a quick one:

I'm using CSTools Mocam where each Waypoint Camera is directed at a target object. This seems to affect the actual Mocam adversely, particularly as to Depth of Field because it doesn't seem to acknowledge the target object's distance, and the Mocam stays at a constant 1000 distance from the object, the same as each waycam would be except they have "use target object" checked. I can't manually animate this parameter either, so I'm wondering if there is a way to make Mocam more target object friendly? Is there a workaround or adjustment to the Xpresso I could make?

@Rich. I'm not sure what the problem would be. Just Open or Merge them like any other scene file.

@Jack.As yu probably know from using MoCam, the target depth settings on the waypoints are crucial to MoCam because it uses them as the fulcrum points in which to orbit around. I hijacked the target depth usage from normal for this. It is the primary way you get MoCam (and easyCam2) to have a good looking move between waypoints. However it seems you are doing something which affects this behavior. It would be hard to modify mocam to ignore the target depths because it's entire internal pipeline carries the target depth length through most of the main nodes so the cam know what to orbit around to create arced paths. That being said, If you are trying to do a DOF thing, don't try and do it from the MoCam render cam itself or the waypoints. Use an Xpresso tag to link the global matrix from MoCam (the actual render cam, not the null that reps the tool) and pipe that into the global Matrix of a new cam. Then try and set all the DOF stuff on it. That way it will move just like MoCam but not have any of it's parameters tied to the target depths.

Just FYI, the reason I used targets in the first place was because I needed to animate each waypoint camera to have its own move around an object, otherwise I would need a MoCam with 16 Waycams. I suppose I could have baked each camera after targeting or used two Mocams, but this project had to be done quickly and changed frequently. Again, thanks so much for these indispensable tools!

Is there a way to go from the easy cam (nice slow camera movement) to the action cam (crazy camera movement)? Im really making this a lot harder than it has to be. Thanks for your help. Hopefully you can get back to me soon!

sure. Move the _E camera out of the easycam hierarchy and make it a child of the action cam render cam (not the tool null itself) and the easy cam will morph from the _S cam to it's own _E cam which is moving in sync with action cam because it's a child of it.

You are supposed to use the various CS nulls on the waypoint cameras themselves. The instructions talk about this. It's not a good idea to add mocam under a vibrate null because the MoCam itself will vibrate relative to where it is from the Vibrate null making some very unpredictable behavior. The idea with MoCam is that each waypoint uses it's own animation or as a child of another CS_Null. Then when the MoCam camera arrives at a waypoint it aquires that waypoint's vibrations.

This video may help you see what i'm talking about how you should make the correct child relationship so that everything is based around zero in the chain:

Hi Chris your CS Tools are awesome! Your very generous to share your time and knowlege, thank you! Is there a way to substitute a camera view I already have into easy cam? other than copying the coordinates thanks again.....dave

Hey Chris, Thanks for the reply!I followed your instructions for making the start, and end cams a child of my cameras, with everything under the easycam null. That worked and they showed the same view as my cameras but with them as children when I switched on the EasyCam_Cam it still had the stock view and didn't see the start or end cams viewpoint. If that makes sense :)

I don't know enough about xpresso to know about "global matrix" But I got it to work by putting in the coord. of my cams. Thanks again I really do appreciate your time...dave

Chris, How can I animate the ActionCam? I've tried adding the expresso tag as you described in your reply to Navarro. When I try to keyframe a camera linked via global matrix, it's values just return to 0 all the time. I don't want to combine it with MoCam, I just want to be able to keyframe position and rotation as normal, yet have these values compounded with the shake and snap zooms of ActionCam.

Navarro didn't want to animate ActionCam, he was wondering how to morph between them using action cam which I explained the process for. ActionCam animates itself. Are you trying to add motion on top of it or morph to it from another position?

If you're trying to add animation on top of it, then create a camera and make it a child of the "actionCam camera at the bottom of the hieracrhy and animate that. It will ride along with Action Cam but be able to do what ever added motion you want.

If you want to morph from one cam to ActionCam, follow the instructions I gave Navarro using either EasyCam or MoCam.

Thanks Chris, although thats not really achieveing the result I wanted because the new camera doesn't get the zoom changes, and all the orbiting etc becomes offset by its relationship to the actioncam. To follow the idea of animating 'on top' of the ActionCam, I am trying to animate 'underneath' it. If that makes sense.

Hi Chris,first of all, this is really great stuff, you share with us. Thanks a lot ...After seeing some of Greyscale Gorillas tutorials, I wanted to play with the 3D Stroke. Unfortunately it doesn't quite work in C4D R13. I can adjust the thickness, but none of the rest like length, falloff and offset. I tried it in R12, where everything works fine. Checking the xpresso, all ports are connected. Do you have a clue, why it wouldn't work right in R13?

I've wasted many emails recommending b-splines stay in. Not only for legacy purposes but more importantly because they are by far the best interpolation to work with. So at this point it's up to the community to make fixes if they wish. I'm working on all new tools as true plugins. Not supporting the original xpresso ones any more myself.

Hi Chris,First of all thank you for the amazing tools you are sharing with us.I have a quick question about easycam , is it possible to add a camera in between the start and the end or add points between them (like more then from point A to point B?)Thanks.

Have you tried MoCam yet? It's basically EasyCam with 8 'waypoints'. You don't have to use all 8. Just only make the first 3 cams active and if you want it to flow smoothly through the middle point, make sure the hold is at zero.

But before doing a 3rd cam, make sure you are utilizing the Camera Depth correctly on the two cams in EasyCam2. EasyCam2 derives it's orbit path from the camera depth settings. So changing them on the start and end cam can dramatically change the flight path of the cam.

Hi,I have as question about the SineNull. I want to animate the frequency of the y position from 0 to 10.. and then have a regular frequency of 10. Now the movement does accelerate but after the last keyframe makes a weird 'bump' and changes speed ( abit slower) What am I doing wrong? I hope my explanation is clear.T.i.a.Beautiful set of tools btw :)

Build-on did a very similar thing to the grow plug-in for sure. It was made for an older version of C4D and has not been updated. An evolution of CSTools is currently being made as true C4D plug-ins. A more complete version of BuildOn is on the list for being remade. Not sure of timeframe though. If you go to Maxon's Cineversity site, you can watch me use BuildOn in a SIGGRAPH 2010 presentation on using Python.

For now you CAN use the mograph module to do the same thing, albeit with a ton more setup and animating a falloff. and using spring effectors. BuildOn took a group of objects and automatically made them all grow up from nothing in sequential order with optional springy animation. What was great about buildon was no matter how your objects were arranged in space in what orientation, It just made them grow in order. You could rearrange the order of growth, by just simply rearranging them in a list. SO for example a complex model of a house frame would all grow itself board by board by just dropping the house into BuildOn and setting a few timing sliders to your preference.

Hey Chris...fantastic NAB vid of the AutoCam. I wonder if you could contact me regarding that piece of software. I understand that you are still working on it, however I would like to make a proposal to you, just not on your public blog. Cheers Gerry

Hi Chris, first off thanks for the great tutorials on GSG. My question,would you consider posting a tutorial showing a chain spiraling down onto a tabletopand finishing in a nice free form shape? Like a jewelry beauty shot.Thanks, Dave

Hi chris,great work on cs tools. I got a question on DocuCam. the renderfarm (smedge) is having trouble rendering my scene. my guess is because of the expression being chopped up into little packets. is there a way to 'bake' this expression out?

Not exactly sure what you mean but the turbulence functions probably use different seeds on the differnt machines which means none of it will line up.

I explained baking out a few times above, but in a nutshell you want to create a new camera, add an xpresso tag and drop the very last cam in the docucam chain into that as well as the new cam itself. Then link the global matrix of the docucam to the new cam. Set the new cam focal length where you want it and then bake the new cam. It will then have all the docucam motion.

I did show a camera animation system, "Autocam". I still work on it almost every day. I keep adding and modifying things. Also, to be honest, I'm running into a lot of problems where I'm hitting the limits of what Python will give you. Been talking with Maxon about implementing some of the things I need. Although it's looking more like I'll need to re-write it all in C++ to get all the features I want. So, no timeline on it I'm afraid.

Thank you very much, these tools ar amazing, but I have a problem with the Spriticles. I don't see anything when I render, I've tried to change the material in the User data but It doesn't seem to work.Do you know what could be the reason?

Wasn't there a CS Tools for making things grow on in sequence? I seem to remember a cartoony rubbery truck where each component (hood, fenders, wheels, etc) scale up from zero one after another in rapid succession.

Wonderful post explored.Have you heard of Architectural 3D Services? These services intends to provide a 3d imagery view of your building, or any of your property construction and assures to deliver you the image in 7 days. My 3d house is the lone online provider of Architectural 3D Services. You can check here- http://my3dhouse.com