ScriptSpot

Script

ViewPort Preview

By Anubis · 2010-04-23

Version
1.4
Version requirement
3ds Max 2008 (or AVG for previous)
Date updated
2011-10-22
Votes
64
Description

Capture Viewport animation to any output video/image format that 3ds Max support, with an access to the I/O bitmap setup (quality and compression settings), with a few (similar to the renderer) timing options.

Viewport PreviewViewport Preview 1.2

Update

    - version 1.4 change log:

  • Now custom-built sequence support negative ranges
  • You can use interval (space sign) in custom-built sequence
  • What that mean?

    Previously to enter range between -5 and +3
    you should type:

    "-5,-4,-3,-2,-1,0-3"

    Now you can just type

    "-5 - 3"

    (or

    "-5-3"

    ).

    Also using intervals (optional) made the input more clear.

    "-5 - 3"

    is more readable than

    "-5-3"

    , and

    "-15 - -10"

    is more readable than

    "-15--10"

    .

    Examples:

    -- next sequence:
    "-9 - -7, -5 - 2, 6, 9 - 11"
    -- will capture frames:
    #(-9, -8, -7, -5, -4, -3, -2, -1, 0, 1, 2, 6, 9, 10, 11)
    -- next sequence:
    "-9 - -7, -5 - -2, 6, 9 - 11"
    -- will capture frames:
    #(-9, -8, -7, -5, -4, -3, -2, 6, 9, 10, 11)

    - version 1.3 change log:

  • added Stop option (interrupt the process via Escape)
  • - version 1.2 change log:

  • added Maximize Viewport option
  • added Expert Mode On option

Additional Info

I saw a request about similar script that to end in various file formats with output compression access, i.e. for example, to end with small size movie instead of large uncompressed AVI's. Well, it's nothing fancy, the built in Max function selectSaveBitMap() just "fix" that. For more details read the usage notes below. Installation Well, you can run the script from everywhere but if you with to install it...
  • Download both script files (.ms + .mcr)
  • Put .ms file into your Max / Scripts folder
  • Run .mcr file once
  • Go to Customize User Interface dialog, Find "ViewPort Preview" under Tools category
  • Create a button or assign it to hotkey, menu, quad.
Usage Notes Most features are self explaining (I hope).
  • "Make Preview" button is disabled until set output file.
  • Use "Save As..." to choose directory and output file format.
  • Max will bring up it Setup dialog for compression settings.
  • Reverse Animation option come in use (and have sense) when save to video (AVI/MOV)
  • In v.1.3 and below:
  • Optional Frames input sequence require a little bit more details:
    1. -- If you enter invalid value, it will be skiped without error messages -- Adding space interval after comma is not wrong but not necessary -- In intervals e.g. "3-6" (that equal to "3,4,5,6") space character is wrong, i.e. this "3-6" will be proceeded, but "3 - 6" value will be omited -- Due to the minus character ("-") that in use for intervals values like "3-6", the negative frames would be accepted only in ordering (e.g. "-3,-2,-1") -- The order of values is not important in comma sequence 'cause the script auto sort the string, e.g. "0-3,8,4,-2" will be sorted and goes out as "-2,0,1,2,3,4,8"
    In last v.1.4:
  • Optional Frames input sequence is more flexible (*READ Update log above)
Attachments

Tags: Preview, viewport, mov, anubis, video, capture, screenshot, avi

Comments (23)

JokerMartini · 2011-10-18

As mentioned before, I talked about it matching the render resolution. I was hoping it would crop the image to be actual res....

Anubis · 2011-10-19

Hey John, sorry for the bad news but the only way to "set" the view-port size is via

gw.setPos()

, and it actually create new GW (Graphic Window) which "works" (awesome broken feature).

Excellent

Violet · 2011-06-15

Worked great, saving separate images to animation frames is what I was looking for! Thanks!

happy end then :)

Anubis · 2011-06-16

I read your comment on my Grab Viewport Plus and see that you finally find what you looking for ;) About the GIFs - yes, not supported.

Gif

Violet · 2011-06-15

Pity Max won't save to gif eh? :)

Anubis · 2011-05-31

Thanks Pifitas!

Hey John,

thats not a big deal for coding but I worried to add this 'cause resizing of the view port itself is too buggest. If you like to test and use this feature though, just add this code to the script (in "on open" event for ex.):

if getViewSize() != [renderWidth, renderHeight] do (
	gw.setPos 0 0 renderWidth renderHeight
	forceCompleteRedraw doDisabled:off
)

Hey Ian,

I think that what you ask is already there. With SaveAs button you set where to save and just enter the name of the scene into the save-dialog. If you worried for typing mistakes when enter the name, just put the next line of code at the beginning of "on bt_save pressed do" event:

setclipboardText maxFileName

..and now when the save-dialog pop up you can just press Ctrl+V ;)

W DIGITAL · 2011-05-31

great anubis!

- would you have time to make a checkbox, that when checked makes a preview in the project folder where the .max file is sitting, with the scene name plus _001 incremenation at the end?

that would be great if it could automatically name the previews as the scene name!

resolution

JokerMartini · 2011-05-31

anyway you could get the resolution to take into account the render output size?

pifitas · 2010-05-01

hey anubis :)

Yes, I suggest adding STOP function

Sometimes I have choosen wrog camera/viewport, or something missing, and there's no way to stop it, so I have to wait 'til finish just to repeat it.

thanks

Anubis · 2010-05-04

Hi Pifitas, yes, I see your point and update the script.
Now you can interrupt it at any time by pressing Escape.

pifitas · 2010-05-04

OMG!
You're amazing dude
thanks for your support :)
let's try it....

Anubis · 2010-04-29

Hi Pifitas,
Thanks for the comment.

-- The script use Max built capture system that grab the whole view and no way to set it to grab safe frame only.
Actually this is possible with post-processing bitmaps but will made the tool to work extremely slow.

-- For the progress bar I notice that this happen sometime but it's not fatal for the script so I'll play on this some day when I have more free time.

-- Stop function? You need to break the script while running? I can add this but perhaps breaking the process will corrupt the video files.

-- Button for toolbar? - Get related to the .MS version file .MCR (macroScript file), I also wrote an installation instruction into the script description above, so you can create a button via Customize User Interface dialog.

and thanks again for the nice words.

pifitas · 2010-04-29

hey thanks!
works fine under 2008 x64

but I noticed it records whole viewport window, instead of SAFE FRAME ONLY when active, also progress bar finishes prior recording all frames.
and STOP FUNCTION NEEDED.

Can you add a button for toolbar please?

btw very nice and must-have tool.

thank you very much

Anubis · 2010-04-25

About the top menu in max2010-2011 I cannot help 'cause I still work on max2009 and have no idea what's up out there. The rest is not problem.

harumscarum · 2010-04-25

yes. i'd love to use your script instead PrintScreen button. all what is needed:
1. assigned shortcut from 'customize'
2. set folder to save and filename prefix
3. forced expert mode option (is it possible to hide massive top menu in max2010-2011 so screenshot will appear maximum size)

THAnk you!

veneta · 2010-04-25

Nice! Thank you !
I'm vote too for the incremental save version.

Many thanks,

ven

Anubis · 2010-04-25

Thanks everybody! The script updated again.

Hi Viktor, I add an option to force expert mode + option to maximize viewport. I hope this new options will be useful to other guys as well.

The second request is increment save on single shots, right? It's sound interesting and is more suitable for separate macro script. I'll take a look on this as soon as I can.

Cheers,
Anubis

pifitas · 2010-04-24

Thank you!, works fine on max 2008x64 :)

@michel71, thedour:
nice to see you here guys...:P

harumscarum · 2010-04-24

thanks! works great.
could you please add option to force expert mode while saving an animation?
would be also very useful to save viewport images manually by shortcut assigned from 'customize' so each new screenshot goes with postfix _001, _002 and so on

best regards
viktor

Anubis · 2010-04-24

Thanks. The script updated, now the slidertime restore it's previous location, as suggested, but for SceneRedraw I prefer to stay on just to be sure so all animations like scripted particles or scripted controllers will be updated correct.

Cheers,
Anubis

thedour · 2010-04-24

Nice!

I had a thought and tested it: wrapped your bt_dotit pressed event with disableSceneRedraw() & enableSceneRedraw() and it is ever so slightly faster.

Also it may be nice to have the slidertime return to it's original location.

Point!

Michele71 · 2010-04-23

Good job Anubis :) Very, very useful ;) One point to you!