Patched so that it should now run on MacOS too. There was an issue with the main AnimationUI which was failing under OS.
Added extra presets for the AnimationUI.
Better preset managment. Now a RMB click to delete current presets and a way to store your own prests to the Toolsets. Vastly sped up the TracknStabilize runtime call.
Major bug in the Anim UI that wasn't returning the Animation Hierarchy Preset priority lists. This meant that the Morpheus and HIK support was broken for the snap tools. You can now add you're own preset by clicking the Store New Filter button in the Animation, Hierarchy Control Tab. Also added a RMB Delete to remove presets if needed.
Obtimized a lot of code to try and speed things up. This is still ongoing.
More code optimization on the Animation UI. Made the TimeOffset functions accept the hierarchy filters so you can now select the root of hierarchy/rig and using the AnimationUI>Hierarchy tab, filter and offset only animation within that hierarchy or rig. The Scene TimeOffset now also has an option to either offset the Playback Timelines or not.
CopyKey and CopyAttr - these now have a new checkbox 'toMany' which allows you to copy animation data from the first selected node, to ALL subsequently selected nodes, duplicating/syncing the animation / attrs to all.
TimeOffset. Added functionality to allow you to offset the animation of selected nodes in a flocking behaviour, adding the offset to each subsequent node processed. Also added a randomizer to the TimeOffset, the offset entered is passed to a random function before the animdata is offset. Random will offset the curves between 0 and the offset entered.
Made the 'toMany' flag and 'Hierarchy' flags in the CopyKeys and CopyAttr work together. This means that you could copy animation data from one entire character, over to many copies of that character. Requested as a function for duplicating animation to multiple background characters. This is a good one and I'll upload another Vimeo vid soon for it.
Demos finally on the way in this version. Should be up next week hopefully.
This is a big release for the Animation and NodeSearch code. After doing more Vimeo demos I caught a number of bugs in the way the logic was running that didn't feel right so I've hopefully made it all a little clearer. I've fixed the HIK support in this release, I took it out in v1.09 as I was trying to find a neater way of dealing with all the HIK callbacks, all the Animation functions should now work as they would on any other rig system. Also added supprot for CharacterSets and SelectionSets which can now be used as the root selection for the Hierarchy filters. Makes it easy dealing with rigs where you have neat keying selectionSet groups.
First part of the Pose Saver in the main Animation toolset. This like everything else relies on the Hierarchy filter being set in the tab, it then uses that filter to know what in the selected heirarchy to save. The filter is stored in the pose file itself and used when loading the data back. You can also load part of a pose to the selected nodes. This is work in progress so all feedback welcomed
See the Vimeo channel above for the lates demos.
First implementation of the PoseSaver UI in the Animation Pack. This is stage one and under testing. Lots of features planned but I want to get it out there and tested before I go too far with the backend of the code. Also added a config file so that the core of the UI is stored between Maya sessions.
Big update to the Pose Manager UI and general Pose code. Also modified the Setups to run under MacOS and Linux
MetaClass API included for testing. Script Inspector now integrated to the ScriptEditor RMB menu's. Various other bug fixes.
HUGE update to the code and toolset. Integrated MetaData into the entire setups with new api.
MetaData has been fleshed out hugely since the last release, lots of additions and much better attribute handling across the board. There's a few good test examples that I'll ship which should take you through the MetaData basics. This is the core of the updates and has taken a lot time to nail down. It's also now threaded into the main UI's and FilterNode calls.
MetaData NodeUI: Added a new MetaData nodeUI for managing and finding MetaData in your scene. This has a RMB menu for filtering for specific class nodes.
Mirroring of Animation and poses is now supported via the MetaRig. This rely's on markers laid down when adding a MetaRig solution to your setups. I may in the future make this more accessible to non-coders and add a MetaRig UI for binding your rigs to the setups.
MouseMoCap: New RecordAttrsUI added in the menu which allows you to marker channels in the channelBox for recording, when you hit the record, the timeline is played and all changes to those attributes recorded and turned into keys.
Fixed: The timeOffset of animation on selected nodes would fail if you had AnimationLayers, this should now be fixed.
Fixed: MenuSyetem fixed so you can do Red9.start() multiple times
Fixed: Preset management for MetaRig flag now fixed
v1.26 - patched
Added the attrMap functionality to the LockChannelUI for storing the status of entire rig hierarchy's
Moodified the MetaClass handling of message attributes
v1.27 - HUGE UPDATE!!
New Pose Saver with full relative, projected and absolute load methods. Allows you to load poses relative to the selected node rather than just in the world space they were stored. Pose Ui also has 2 new modes, 'project' or 'local', in project all save and delete functions are disabled, intended for collaborative studio use.
New Pose Point Cloud functionality added to allow you to adjust the world space of a pose in one simple go, also gives you skin geo reference to line the pose up as you want. Very powerful addition when used correctly.
Fully fleshed out MetaData API. Can't push this one enough as for all the TD's out there this is a big deal. This allows you to wire complete subsystems to your rig and navigate in code seamlessly.
Expanded FilterNode support so in the hierarchy search fields you can now use the 'NOT:' or '=' operators in the search, matching nodes with an attribute whos value = a given, or NOT ='s. Same with the nodeName search.
SceneReview Tool added for tracking notes and feedback live in the scene. Tracks conversations and has a live mode which opens the UI on the latest comment when the scene is open.
RandomizeKeys - added to the GraphEditor curve menu for adding and generating noise in animation curves.
- Red9_Anim - PoseLib now supports subfolders in the UI
- Red9_Anim - CameraTracker now in the Red9 Menu - generates an auto tracked, or panned, camera focusing on the selected node - very usefuyl for visualizing moCap
- Red9_Meta - metaHUDNode gone in - designed as a debug tool to enable you to easily monitor attributes in a managed HUD in the Maya viewports. Any attrs added to the mNode is monitored and added to the drawHud call. This is work in progress
- Red9_Anim - AnimtionFunctions now has a function for bindNodes, uses the same filtering and matching setups as all the rest of the code and allows you to bind full filtered hierarchies together, either direct connects or parentConstraints
- Red9_Anim - All animFunctions now accept matchMethod as an arg, this allows you to either accept 'prefix stripping' in any node matches or use 'base' = name for name exact match.
- Red9_Anim - PoseLib subfolders bug fixes so that you can sync subfolders to project libraries with the 'CopyLocal>>Project Pose' RMB call. This makes the missing subFolder if it's missing in the Project structure
- Red9_General - Timer decorator now shows module/class and func in the report feedback
- Red9_Meta - Added **KWS update support to the addAttr call, if the attr exists and you've passed in kws then these will get synced and updated if in the internal 'valid edit kws' list. Great for use in the __bindData__ call to sync properties.
- Red9_Core - Added more logic to the main MatchedNodeInputs call. Now allows you to pass in 2 hierarchies directly for processing. This means you can by-pass the filter processing in all animation Functions and pass 2 hierarchies directly in for processing!
Fix - Red9_Meta - type 'unicode' value's weren't being supported correctly in the setAttr func
Fix - Red9_Anim - MirrorSetup - loadMirror was failing to load custom Axis correctly.
Fix - Red9_Meta - isChildNode() wasn't dealing with longNames correctly
Mod - Red9_PoseSaver - batchPatchPoses() modified to make it more flexible. added arg to stop it always resaving the pose after patchfunc has been run. also now passing poseFile back into patchfunc
New - Red9_PoseSaver - poseHandler.py support added! - This is a BIG deal for TD's out there as it gives you access to all the internal node handling at a sub-folder level. Allows you to fully customize the pose behaviour on a folder basis!
Fix - Red9_Anim - PoseUI wasn't remembering the last subFolderyou were in.
New - Red9_Anim - PoseUI now has a RMB Make Directory call
New - Red9_Anim - PoseUI now has a 'Debug:Copy poseHandler.py to Folder'. This is an avanced option for by-passing the node handlers on a folder by folder basis!
Mod - Red9_Anim - 'Ctrl' click when launching the AnimationUI will boot it non-docked
Mod - Red9_Meta - Calls that previously only took an mType/mInstance as a [string] arg now also accept the class too... so r9Meta.getMetaNodes('MetaRig') and r9Meta.getMetaRig(r9Meta.MetaRig) both are accepted.
Mod - Red9_Meta - getChildren now takes an additional arg 'cAttrs' which can be used to only return children connected via a given attr name (this uses wildcards and will take a list)
Fix - Red9_Anim - added full traceback to the error handling in the AnimUI
Fix - Red9_Meta - added full traceback to the error handling in the nodeLockManager and thus the main class
Fix - Red9_Meta - setAttr wasn't raising errors due to the decorator. Patched
Mod - Red9_Meta - updated MetaHUD, simplified event handler, now connected to refresh by default
New - Red9_Meta - Added HUD wrappers now being called by the ChannelBox RMB menu - gives you access to the MetaHud monitors and makes the setup more integrated
Fix - Red9_Meta - Bug fix in the getConnectedMetaNodes. This was returning connected mNodes via all attrs, not just those connected via message links. Hence if 2 mNodes were connected via tx that would have passed through, which is wrong!