Tutorials

Tween Machine for 3DS Max
created in 3DS Max 2009

K...this isn't really a tutorial, but this could change the way you animate in Max I suppose.

So I find myself with some free time here lately and realized that my website doesn't show off any of the MaxScript programming skills I've developed in the last few years of animating.  So what better way to show my scripting ability than to offer a free tool for animators to use!

If you are here you probably have used Justin Barrett's Tween Machine in Maya.  Once a Maya animator has been exposed to how much easier it is to create breakdown poses and make inbetween timing adjustments with Tween Machine it's hard to go back to animating without it.  So, what if your new place of employment only uses 3DS Max?  Well, thanks to me, now you you have Tween Machine for Max (we can't let the Maya users have all the fun)!
Directions for use
Download the MaxScript here...
TweenMachine for 3DSMax

open 3DSMax, run the script and have fun!
 
 So...what does it do?
Quite simply it adds an inbetween key at the current time for all selected objects.  Creating a new key inbetween the previous and next keys, using a slider to adjust the "bias" or weight that each key has over the new key.

It basically cuts down the amount of work (and who likes to work?) it takes to create a good breakdown pose.  This quote says it best...
 
"Will tweenMachine create perfect breakdown poses? Not likely, but it will get you closer to your goal a lot faster than other methods. You spend less time with busywork and more time creating great animation."
-Justin Barrett


On a final note...I'd like to thank a couple of my former colleagues for helping me get started on my MaxScript learning journey.  Thanks to Erik Eidukas for showing me his unfinished Tween Helper script which I stole ideas from ;)  For lending me his old "free internet rig" to test my script with and for answering some of my past advanced maxscipt questions when I was stumped.  A special thanks goes to my former roommate Nathan Heazlett for his patience in answering all my silly newbie questions as I started learning maxscript.

Here's a simple tutorial that shows how Tween Machine can be used to create a more "interesting" breakdown pose for your animation quickly and easily...



It seems like a nothing tool that you don't really need as an animator, but be warned...you will very quickly become addicted and not be able to animate without it before you know it (that's why I had to create one for 3ds max).
                                                                                                                                                      





Free Customizable Animation Frame Counter for 3DS Max 
(plus instructions on how to create your own from scratch)
created in 3DS Max 2012
http://website.themichaelsmith.com/FrameCounter.zip

Frame Counter 3DSMax 2012 maxfile download


K...this is a free max file plus a tutorial...so you get twice the value.
If you're like me, you're tired of using the small, hard to read frame counter display that's created when you make a preview and use the checkbox in Tools > Views - Grab Viewport > Create Animated Sequence File > Display in Preview > Frame Numbers.  I want a nice big number display that I can read, and also see if I choose to render the scene.  So I created this geometry frame counter that you can place in the scene (I like to link it to my camera) and change the Title, Name and Status to whatever you like.


You can download the customizable renderable geometry frame counter above or you can create your own counter from scratch by following these steps below...

1. Create a Text Spline shape in the viewport.
Create > Shapes > Splines > Text

 2. Add an extrude modifier so that text is renderable (and easier to read)
Modify > ModifierList > Extrude

3. Open the graph editor
 Graph Editors > Track View - Curve Editor

4. Select the text object's Leading controller in the Curve Editor

5. Assign a Float Script controller to the Leading controller in the Curve Editor
Controller > Assign... > Float Script

(some people suggest using the Kerning controller, but I find I may still want to customize the look of that value...but I can't imagine wanting to customize the Leading value on a frame counter.)

6. Open (double click) the Float Script controller

7.  Create a variable named "counter"
Name: > Create

8. Click Assign Node and assign "counter" variable to the created text object

9. Type just one of the following text into script controller (depending on how you want the text formatted):

 counter.text = currentTime as string
 0

counter.text = (currentTime.frame as integer) as string
 0

counter.text = formattedprint (currentTime.frame as integer) format:".4d"
0

(if the current frame is 38 it would be displayed as
83f
83
0083
depending on which formating was used)



 You can create this automatically by copy and pasting the following text between the two lines into the maxScript editor and executing it:
-----------------------------------------------------------------
--Create a renderable frame counter


FC = text name:"FrameCounter"

modCtrl = extrude() --create an extrude modifier
modCtrl.amount = 0 -- set extrude amount to 0 (default is 25)
addModifier FC modCtrl --add an extrude modifier so text is visible/renderable

scriptCtrl= float_script() --create a float script controller
scriptCtrl.addNode "counter" FC --add a variable, connect to the Text node

--Set the expression to assign the current frame value as string to the
--.text property of the text shape, then return 0 on the next line:
scriptCtrl.SetExpression "counter.text = currentTime as string
--counter.text = (currentTime.frame as integer) as string
--counter.text =formattedprint (currentTime.frame as integer) format:\".4d\" \n0"

FC.leading.controller=scriptCtrl --assign the controller to the leading
-----------------------------------------------------------------

Note:  You can choose how the frame counter displays the text by adding or deleting the double minus signs (--) in front of the line of code you want the counter to display as in the script controller (the double minus signs (--) is used to comment out lines in coding so those lines are not used.)

11 comments:

  1. Thanks for this script. Can you fix this for CAT. We are using CAT object but this script not working. Thank you.

    ReplyDelete
    Replies
    1. Here, working in 3DS max 2014 and working with CAT :)

      Delete
    2. http://www.scriptspot.com/3ds-max/scripts/add-inbetween#comment-29356

      Delete
  2. yes that would be awesome. I use this for maya but im working on a 3dsmax project but using CAT rigs and this does'nt work. Would be SUPER helpful :D

    thanks

    ReplyDelete
    Replies
    1. http://www.scriptspot.com/3ds-max/scripts/add-inbetween#comment-29356

      Delete
  3. thanks for this amazing script! Say, is there a chance to choose chanels or does it inbetween everyone? Kudos!

    ReplyDelete
  4. Hello, the link seem to be broken, is there another place to get it?

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. Here is a dropbox link for the TweenMachine script:
    Tween Machine v1.04

    ReplyDelete