1 person found this helpful
Thanks for the feedback. Yes, we will be working on performance for Preview 4.
What are the pixel dimensions of your artwork? If you're willing to share (either publicly here, or via direct message to me) we can use it in our testing.
Note that all Illustrator drawing features are supported if you enable Render As Image. See this FAQ: Why does my puppet in the scene not look the same as it does in Adobe Illustrator?
We'll be enabling this option by default in Preview 4.
No date announced yet for Preview 4. For early access, message me directly to request joining our prerelease program.
Artwork is currently 4K (3840x2160). Most of the issues are surrounding memory and I/O performance. some artwork is 1080 however not much of it. Final output is 1080 resolution for video however.
I can't share the artwork as we are using it currently for a new series I am developing (tight lipped) I'd have to make an NDA and have you sign it before I could let you see it.
The characters are all hand drawn.
Render as Image is not a great option for us as we want to maintain a more realistic image quality and consistency throughout.
Yes please sign me up for Early access to Preview 4 !
Is there a tentative date for Preview 4 ? Q2 ? End of Q1 ?
Just re-read the part that you said Render as Image is enabled by default in Preview 4. This is not something I want to have on by default and hopefully will have the option to uncheck this or customize when I need this and when I do not need it.
One side Question: How do you rename scenes without creating new ones ? I can't seem to rename a scene file once its created. ?
Looking forward to Preview 4 for performance and improvements !
In Preview 4, Render as Image will default on, and can still be turned off on a per-puppet basis. It will also be easier to access: you won't have to dig in to select an individual layer of the file, instead you'll just be able to select the puppet in the puppet panel and make the change in the properties panel.
We haven't announced any dates for Preview 4.
Okay so just to update this thread,
The performance problems I've been having are in relation to potentially 3 things.. One being that my illustrator art and project files were being stored on my ISCSI 1 Gbit network SAN to a Windows GPT partition. This by itself shouldn't be a big deal but when combining this with the fact that character animator seems to create a LOT of small file sizes. My current project with two characters and one scene is over 14,000 small files in the project folder alone. Yes it is complex Illustrator Artwork however this many files seems excessive.
Transferring the project and the artwork to a Local RAID 5 drive set improved the performance Quite a bit however loading scene files always seems to take forever.
The third thing could be how Character Animator (Preview 3) is writing or handling these files ( ie would memory cache algorithms play a part here ?).
After inspection, The characters artwork apparently are always being treated with "Render as Image" automatically for Illustrator artwork by default...
So I/O seems to be a big deal when dealing with things on Preview 3! Looking forward to optimizations in Preview 4 in this regard as well as better support for Network/iSCSI performance when writing and reading to large volumes or volumes that are not LOCAL filesystems.
Looking into GPT partitioning versus standard Basic Volumes in Windows should also be more thoroughly tested as number of files and sizes are handled differently on each Partitions.
The way we're currently storing project files (unrelated to complex Illustrator files) does involve thousands of small files. This is the way we're enabling infinite persistent undo -- you can quit, relaunch, and still undo/redo. But we have a plan for consolidating them. This will either be a command to clear history, or we may restructure the storage into a single file, or both. Until we have time to implement this plan, storing your Ch projects on an SSD will make a big speed difference.
I forgot to answer your "how to rename a scene" question above: select the scene in the project panel, and hit return.
Thanks for the feedback!
I've been consolidating projects by importing them into a single project. In doing this I notice that the new single project is much smaller and has way fewer files than the sum of all the files in the imported projects. Here's a specific case.
New single project: 0.98 GB, 5,972 files
Sum of Imported projects: 3.455876 GB, 106,636 files
So what happens to the missing files when projects are imported into a single project? Is it just the undo history that's deleted, or also something else?
I thought I'd provide additional update and comment here:
So what I've discovered is that yes SSD drive does speed up Character animator however, if you are like me, I use an Intel RAID 5 set up with a SSD as a cache drive (various other reasons why I do this however).
Anyways, Character animator doesn't seem to like this caching/RAID5 setup with Regular HD's much. With this Set up Write Speeds are a lot slower as I'm only doing Read caching (to make sure I don't lose anything).
Anyways, long story short...
What I've found is that some of my illustrator files are larger then others which directly is affecting the speeds. It appears that due to the sheer amount of Paths in some of the objects (not sure what that number exactly is) I get slow downs of tremendous amounts when the scene files are loading.
For example during my testing the other day I noticed that one character I had was more optimized, was not using the face tracking and had little physics. The character ran really fast in the scene.
The second character (a more complex one) loads tremendously slow in a scene.
I have a hard time believing that the undo system is unrelated to the complexity of the character if for example the character Warp temp files and undo levels increased exponentially with the size of the project/characters in them ?
Maybe you can explain that part better,
However what seems to happen is that on my 16 GB Windows 7 machine, memory usage explodes and starts to page to windows paging file. I played around with various scenarios of the RAID 5 HD array with and without caching and also trying to balance out paging file performance on a second (albeit slower) SSD. The results are worse when SSD caching is off for my RAID 5 Intel array In general That much is clear.
What happens is that once the system starts paging out Operating system memory beyond the 15 - 16 GB range, the system goes unstable as it dedicates less memory to the OS. Most times the Operating system does not recover quickly and Character Animator quickly goes unstable. A reboot is necessary in most cases I have been dealing with.
Back to the OS, If what you say is correct about the file structure, then this only compounds the problems with artwork that has a lot more paths and things to worry about. The undo mechanism must be creating all kinds of useless data.
Definitely opt in for having an undo system, but perhaps allowing us to choose how many levels of undo. I also think having binary single files or a database type scheme with transactional log style would be a heck of a lot better then writing out that many files. At this level of amount of files, the filesystem (whether SSD or not) is overwhelmed ! in one folder I had somewhere near 18,000 files. Try browsing a filesystem on windows with 18,000 files in it.
IMHO: I would rather see this data cached and manipulated (efficiently) in memory (memory is still relatively cheaper and safer option) and then written out to a binary or database file periodically (use a logfile rollback support system for more indepth undo) and definitely upon exiting. The user should also have the option to clear out the undo information whenever they want to for performance reasons. They should also have the option of telling the system where to put the Temporary highly I/O intensive files !
So I am in the process of obtaining more System RAM, doubling to 32 GB also adding a faster SSD to be where I store project files and my windows paging drive (separate from the Operating system) to see if this configuration works better. I will report my findings here.
So from my testing experience we have a multilayer problem:
1) Character Animator is not using the Filesystem Efficiently as this increasing memory usage by the Operating system to handle things on slower systems. (Not everyone has the money for a full SSD drive redundant system or the fastest memory on the planet)
2) Memory usage in Character Animator for larger Illustrator files needs to be looked at for possible memory leaks or performance improvements ? Has any testing been done on the maximum number of paths for an object or memory usage per path per character ? I'd be interested to know. Also any tool for showing how many total paths CH is using in a current scene might be helpful ?
3) Undo system needs to be user customizable to allow people to specify how many levels of undo they require (they can still select infinite if they require it) as well as a function to clear out all history of undos to make things more efficient for people with larger scene and character structure. Not all of us may need infinite undo levels!
And this is just a wish list / side question:
4) Is there or can there be a way to export your Rigging information ? During this process of waiting long periods of time I realized that I actually hate rigging things over and over again in order to test things out (I've probably done it a 100 times for each character). It would be nice if there was a way to store Current and past Character rigging information so that you could reference it or import specific rigging structure onto other characters. this could be stored as a specific component from file or by a saveable drop down list of favorite rigging schemes. For example If I rig and arm with all the fixed points and sticks attached, I'd like a way to be able to save that as a preset so that if I have to rig something again due to needing to change structure in the AI character file, I could easily reapply the preset. It helps with consistency and if I make a change to a preset it could (If given the option) update all characters I have created with that preset.
Thanks again for listening to the customers and I hope this helps
Looking forward to the changes ahead.
Forgot to mention,
The workaround I am testing right now is to go through my artwork and rasterize all the "complex" objects with numerous paths, compound paths etc.. to see if I can lessen the burden on character animator a bit.
IMHO its not a great long term solution due to the fact I have to keep two version of the same file, one for animating with and one for editing things later and then overwriting the file with when I make changes (which require going through the entire rasterizing and condensing within illustrator).
However if it works, I will be able to get back to animating which is the reason I wanted to use this program in the first place
All things said, you guys are doing a great job so far, the product in its intended design is a big step forward. It just needs to keep moving forward.
Thanks for Listening to the community !
> So what happens to the missing files when projects are imported into a single project? Is it just the undo history that's deleted, or also something else?
It's just the history of the imported project that's left behind, so that's a nice workaround for compacting a project (if you don't need the history).
> Is there or can there be a way to export your Rigging information ?
Not yet. Though you can switch to PS / AI, modify the character, save, and Ch will try to update accordingly. Currently this works for layer content & size changes, but not for structure (grouping) changes.
> The workaround I am testing right now is to go through my artwork and rasterize all the "complex" objects with numerous paths, compound paths etc..
That's what the Render as Image checkbox effectively does for you, on the fly. Only downsides: no more resolution independence, and Wiggler doesn't work. We could add control over the rasterized resolution, for example increasing it if you know you'll be zooming into a character.
As for your slowdown with complex files, if you're willing to send us an AI file that shows the problem we can use it as a test case for optimization.
Okay so were back to Filesystem issue then for the project as that seems to be where things fall down quickly on project scene loads or changes for the more complex character.
Yes I have created a new project file recently as well.
FYI: Character is already being rendered using Render As Image as its on by default (I checked).
One thing I noticed is that there was a performance improvement when flattening my images to raster before going into CH though at least with character 1.
I'm still going to test this out as I'm not convinced CH is still not rendering multiple images of path artwork versus the Rasterize before hand within Illustrator (which makes sure only one object is getting rendered) however I could be wrong. Is there anyway to verify this ?
IE rendering CH rendering out 100 images versus 1 for complex path character ?
Oh, yes, I forgot that complex files (i.e. with lots and lots of nested groups) will be creating corresponding layers in the puppet panel, which can then slow things down. We may have a workaround for this (that doesn't involve flattening to raster in AI), I'll check.
Presumably you don't actually need all the individual bits of art to move on separate layers?
no not all the artwork has to move, for example:
Character that has different eyes and mouths.
On the eyes themselves, they are mostly static images but drawn into individual paths, each has a path for eye lashes, etc... The final object has multiple nested layers for all kinds of things like when I do the final live painting and then expand it.
I've been forcing myself to do more of a cleanup, before final expanding to try and cleanup some ecess paths from merges and joins, etc.. beforehand however this is very time consuming. The benfit is that if in the future I needed something to move differently I could potentially do it however with rasterizing them, its impossible.
So why I was saying rasterize in illustrator versus CH is because illustrator you can confirm it will only read in 1 thing to render as image versus I didn't know if CH was rendering everything on the fly like all nested paths etc , which is killing my machine on scene changes. Add in the file system issues and you got Memory overload on a 16 GB system.... then windows acts up due to starving for memory and IO suffers due to using software RAID... and that explains what I think is happening on my system...
More memory will definitely help and its on the way, however, its not just a hardware issue at this point.
Update: Narrowing down issue to the Usage of excessive Dangle and Fixed points causing more files and memory to be used.
One character in one scene in a virtually empty project was at over 3,100 files and taking up near 8 GB of memory for my illustrator Character.
I had 15 Dangle points and 50 fixed points on one character.
Will keep everyone posted.
So there is a workaround that theoretically could allow you to flatten the unneeded layers within Ch, but it's so cumbersome that it's not worth discussing. This issue is on our radar now, thanks.
So I tried some more things to optimize my characters to be able to animate.
Rasterizing in Illustrator before hand.
Since lal the artwork I'm doing is 4K (3840x2160).. Rasterizing won't really degrade my image quality when working on 1080p projects, however the downside is still that I have to keep multiple copies (original artwork in path form and rasterized version for working with). The workflow is killing me however ....
I cleaned up More of the artwork for testing( there were lots of misc paths in one object that shouldn't have been there) and I rasterized everything I could for eyes, mouths etc. - although some complex paths are still present).
In the process I also created an entirely new project and moved the characters and project file to a new SSD drive. Made my windows paging file on that same drive, left the OS alone on its own RAID drive and data on my separate NAS to pull when needed. This seems to balance things out more on the IO side. I am convinced this is not an IO issue now.
Things did speed up a little however after plugging in the Fixed and Dangle points for the characters beard. Scene changes when the scene rebuilds, is still dramatically slow (for one character).
Taking off the Dangle Behaviour and dangle and fixed points (for the character's beard) results in lighting fast performance for the scene changes.
So Something in relation to this is causing the slow downs. I'm positive now.
Okay just tried less Fixed points. Originally had 50 Fixed points and 15 dangle points for the beard.
That number is now 14 fixed points and 15 dangle points.
Performance is a LOT better!
Whats that adage ? Less is more ?
Wondering if there is a memory limit on how many fixed points or dangle points per Object ?
Going to test out the rest of my characters to be sure.
So it definitely looks as if its a combination of the too many fixed and dangle points as well as too much geometry for Character animator to handle (Illustrator artwork).
As I add more characters to the scene, as well as characters who are not optimized or Rasterized, more performance problems start to appear.
At this point I'm hopeful your team can come up with some great patches in the next Preview version as there are definitely some restrictions with this release.
Looking forward to hearing about some updates from you soon.
Thanks, we'll do more testing with lots of Fixed & Dangle points.
Here's a tip: instead of lots of Fixed points that are near to each other, you can use a stick with Fixed in the name -- that will fix the entire stick area.
If you turn on Show Mesh in the puppet panel you can compare the different effect that has on your mesh.
That's a great tip actually !
How do I rename a stick to fixed ?
Yeah I've never gone into the mesh side as I never really understood that part of it yet. Does it give you options for tweaking certain areas or something ?
Select the stick in the puppet panel, hit return to rename, add "Fixed" to the name (with a space separating it from the rest of the name). In the future this will be easier.
Showing the mesh is mainly useful for trouble-shooting when warping looks wrong (e.g. it becomes obvious that the mesh is rectangular, and the Auto setting needs to be set to Contour). It can also show the effect that extra handles have on the mesh density (extra density can slow things down).
Getting back to Performance related items:
Looks like a Bug has been reproduced at Adobe (by CoSA_DaveS) for some (if not all) of the memory problems I was experiencing with having too many Dangle and Fixed points causing way more memory to be allocated then necessary.
The Bug is logged and Adobe (Dave) assures me it will get fixed by the next release !
Although I am still having some performance issues with multiple characters in a scene using Illustrator with 4K artwork.. Rasterizing has helped but there are bloat issues still present in either the file system, memory allocation or the undo system as previous talked about.
Dave has also said that will develop and test a new system developed to handle flattening higher res illustrator artwork on import where the user has the option of flattening the more complicated artwork on sub-puppets to enhance performance. I'm hoping this can be addressed in the next preview version but its unclear when this might be completed.
Continuing to investigate and helping Adobe and their team identify these problems. If anyone else has had similar performance experiences with Preview 3 please chime in, They need multiple test cases in order to make accurate reproduction on their end of identify bugs and fixing them.
Were all in this together, moving forward so please speak up!