Time Range Manager

27 votes
Version: 
2.7
Date Updated: 
08/23/2017
Author Name: 
Lorne Brooks

Allows you to edit and save a collection of named time ranges and access them via a dropdown list to change the scene time range based on their time settings.

Ranges are stored as a collection called sets. Multiple sets are then stored as a collection called projects.

The data is stored in INI files and so makes it independent of any maxfile.

There's also a compact option by clicking the thin bar above the ranges list.

 

Additional features include:

Time Tags

Edit scene time tags using the ranges data and transfer this data between scene time tags, loaded ranges or a text file for easy name editing. Create time tags using the interface in the format name [space] startTime [dash] endTime by typing a sequence name, dragging the time slider then clicking Start, drag again and End.

 

FBX Export Animations

Export animations to FBX format using either the currently loaded Ranges or Time Tags as the source for the exported animation name and time range. Both options allow for exporting either the whole scene (if nothing is selected) or by selection. The output files will be saved to the current Max scene folder.

Optionally choose some exposed FBX settings via a separate dialog.

Note: FBX will always attempt use the keys set on the selection which will override any time range you've set or specified in the time tags - as keys may exist outside of the range. For this function to work correctly, you should animate your rig indirectly by constraining the export bones to other control objects that receive animation data. This way when you select the export bones (that your mesh may be skinned to), they won't have keys directly on them and FBX will use whatever time range is set instead.

 

Separate Maxfiles

Split a composite maxfile animation (many sequences one after another) into separate maxfiles based on stored ranges or time tags. The script will remove all keys on selected objects either side of a specific range then move the remaining keys within the range to start at frame 0. The time range will then be adjusted to fit and a new maxfile saved into the same scene folder as the original composite animation file.

Note: Only tested on regular controllers, CAT rigs and Biped. The use of expressions, constraints, or parameteric controllers may not work.

 

Camera Switching

Cameras in the scene will be recognized by the ranges dropdown list, based on a range name prefix matching the camera name.

The currently selected viewport will switch to the camera (if available) automatically.

For example:

Camera names - Cam1,  Cam 2 and Cam3

 

The initial script was inspired by another script called "Frame Range Manager" written by Borislav "Bobo" Petrov.

 

 

Updates:

Version 2.7;
- Ranges created using the script can now have dashes in the name part of the range. Previously this prevented ranges from not loading from text files or scene time tags.

Version 2.6;
- Moved the select ranges dropdown list location to make it easier to find and added a title with a group border.
- Moved all the editing options into their own rollout called Edit Ranges (rolled-up by default).
- Added a fake border image around the dropdownlist for selecting ranges to help make them more obvious (full UI only).
- The main floater and compact dialog monitor positions now save to an INI file, so they remember their previous positions.
- The UI now remembers which mode (compact or full) was last used, as its state is now saved to an INI file.
- The Edit Ranges rollout will remember its state (rolled-up or rolled-down) by saving it to an INI file. It also adjusts the
   height of the floater when the UI is reloaded, as necessary.
- Fixed a bug where the compact dialog wasn't closing if the main dialog was reopened.
- Fixed a bug where deleting a loaded project caused a crash, by not switching to the next project in the list.

Version 2.5;
- Added a button which opens a new dialog that exposes some optional FBX export settings.
- Exporting FBX animation now exports either the whole scene (if nothing is selected) or only the selection for both Ranges and Time Tags options.

Version 2.4;
- When switching between ranges using the dropdown list, if the range name contains a prefix that matches an existing camera in the scene then the current viewport will switch to use that camera. The prefix is denoted by the substring up to the first underscore.

Version 2.3;
- Contact email changed.

Version 2.2;
- Project and Set dialogs now move with the floater and also affect the position of the floater if they are moved.

Version 2.1;
- Added a new rollout containing functions to split combined animations based on either ranges or time tags into separate maxfiles which are named according to the range name. Keys on the selected objects will be trimmed to the range limits and moved to start at frame 0 with the time range adjusted to fit. Output animation files are saved to the same folder as the original composite scene file.

Version 2.0;
- Changed the FBX file version array to use the correct 2006 string for the parameter setting.
- Added an ASCII output option for FBX exporting.

Version 1.9;
- Added a dropdown list to choose which FBX version to use when exporting range or time tag animations.

Version 1.8;
- Added a function to export separate FBX animations based on the loaded ranges.
- Added the ability to delete scene time tags.
- Added the ability to create a time tag using the interface that's compatible with the other script functions.

Version 1.7;
- Added an Export FBX Animations option for use with Time Tags.
- Converted code to use a struct to minimize global variables.
- Minor bug fixes.

 Version 1.6;
- Improved the UI a bit, see notes in script.

Version 1.5;
- UI adjustments including: widened ranges dropdownlist and allowed more items in the list, changed names for reload and delete ranges buttons, added style settings to compact version.

Version 1.4;
- Added button F which allows you to add a new range called (FULL_RANGE) with the lowest start time and highest end time calculated from the loaded ranges.

Version 1.3;
- Added a thin button above the ranges dropdown list which loads a compact dialog showing only the loaded ranges and reload button. The dialog has the same thin button which reloads the TRM floater.

Version 1.2;
- When loading ranges from scene time tags or a text file, script now handles invalid formats.
- Help button ? added to Time Tags rollout to show correct formatting.

Version 1.1;
- Fixed bug with sorting sets when scene time tags copied to ranges.

Version 1.0;
- First release

 

Additional Info: 

The script can be found in category “LB Tools”.

Installation:

Drag the MZP file into your Max viewport.

Files will be copied to...

C:\Users\<userName>\AppData\Local\Autodesk\3dsMax\<maxVersion>\ENU\scripts\startup

and...

C:\Users\<userName>\AppData\Local\Autodesk\3dsMax\<maxVersion>\ENU\usericons

 

Version Requirement: 
3dsmax 2008-2017
AttachmentSize
lbtools_time_range_manager.mzp16.96 KB

Comments

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
lbrooks's picture

Re: Batch fbx export

Hi,

I've updated the script with a FBX animation export function. It's pretty basic, but should give you the ability to export separate files for each time tag in the scene using the range data you specify.

Lorne Brooks

mickepe's picture

Batch fbx export

Thanks for sharing! I was wondering, would it be a lot of work to integrate batch fbx export of each time segment to separate files into your tool? You mention that it would be easy to script but as I have yet to learn maxscript I'm somewhat limited in that domain.
I've been looking around but have yet to find a good tool for this kind of functionality.

Mikael

lbrooks's picture

RE: can't run at MAX2012

As it's a macro script, make sure you drag it to a toolbar first from the category "LB Tools" then run it.

There's a newer version now with some fixes.

Lorne Brooks

peter yen's picture

can't run at MAX2012

hello
is the script can be running at MAX2012?
i download the script run at max2012,
but it no response,
is still have changce update the script?

thanks

W DIGITAL's picture

thank you very much for this

thank you very much for this detailed description! makes more sense to me now, and it is extremely useful for animations, which im workin on right now, my bachelor project actually its an abstract music video over 5minutes long so i wouldnt want to work wihtout time range managaer!!!

thanks again :)

lbrooks's picture

Thank you for the interest.

Thank you for the interest.

Here's a more detailed explaination, I hope it helps...

Scene ranges saved into the TRM appear as selectable items in the dropdown list. They give you the ability to quickly (and immediately upon selection) set the time range start and end frames to the numbers indicated in the saved range. This provides an alternative to using the Time Configuration dialog manually, which can be cumbersome if you want switch between many ranges while working especially on long animations with lots of keys. As long time ranges can make the trackbar and trackview hard to edit, it’s best to try and focus on smaller ranges at a time.

You can save a scene range by giving it a name, as well as start and end frames. The frame times are independent from each other between saved ranges and they can overlap or have gaps, but the names must be unique. You can also save the full range using the F button, which is based on the min and max frames found by searching all the stored ranges.

Let’s say you are working on one long cinematic animation and want break down the full scene time range into easily editable chunks. You could separate parts of each shot into named ranges for the purpose of focusing on the keys more easily.

Example:

Opening_Shot_A 0-366

Opening_Shot_B 367-499

Middle_Shot 500-890

End_Shot 920-1208

 

Alternatively, if you are working on game animations and want to combine multiple sequences into one file for convenience, you can then store the ranges in the TRM. This will allow you to use it when editing the animations to quickly set the scene time range to the stored range for any saved sequence, so you can focus on it exclusively.

Example:

Idle_A 0-150

Idle_B 151-350

Walk 351-375

Run 376-390

 

When creating animations like this, you would manually add these sequences to the TRM as you edit them and keep it updated with the latest time changes for each sequence. This way you are in control of what is considered a sequence in terms of time within the overall time range. You store the collection of ranges into a Set which could be a single maxfile, but not necessarily as you can store them for generic use as well. You can then store Sets as a collection called a Project and you can have mutiple Projects.

You will need to open the Projects dialog to load a Set then open the Sets dialog to load the collection of ranges you want. It will update the stored ranges in the list using what is stored in that Set.

Example:

Project – “My First Movie”

Set – “Opening_shot”

Ranges:

Intro_A 0-321

Intro_B 322-560

 

The second part of the tool gives you the ability to transfer the saved ranges from the TRM to the scene Time Tags list (below the Max UI timeline) and back again, or out to a text file for easy editing.

This method works well with game animations stored in one file, particularly as you can script the ability to save out a bunch of sequences stored in the same file to separate files for batch exporting (if need be), by looking at each time tag in turn and using the frames stored in each as the time range for the saved scene. This was its intended use - however there may be other applications.

 

Lorne Brooks

W DIGITAL's picture

thanks for this script! i

thanks for this script!
i can use it on my upcoming bachelor project an abstract music video!!!

can you explain to me scene ranges? and how do i display time tags in the timeline?

works well with the animate timer vom martinskinner

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.