About

Joseph Stankowicz is a software engineer who has worked in the video games industry for over eight years. The last two years have had a heavy focus on Unity development, where he helped ship over eleven titles to iOS and Android platforms. He also is really excited about 3D printing, and keeps his Solidoodle 3 printing out stuff as often as possible. You can view his LinkedIn profile here http://www.linkedin.com/pub/joseph-stankowicz/60/294/420

3 comments on “About
  1. Keith Ho says:

    Hi Joseph,

    I come across your site when I search for unity 3d skeleton animation memory issue. I am video game animator for ten years. I have use many property game engine, and it is first time using Unity 3D on my current project. I have a humanoid skinned character that have 142 bones. The character have about 30 facial bones for future lip sync and facial emotion. 10 attachment bones is not skin weighted. Because 100 frames animation export to fbx, it about 500 KB per animation. We are going to have 500 + animations to complete this game. We have one default skeleton system for all characters to share animation with. We will have up to 9 characters in one scene. This is for PC development. I was running into argument with the management about the memory issue because they want to use key-frame reduction to get the file size down if the animation doesn’t meet the frame rate. I was trying to get them to use less bones for the character to avoid using key-frame reduction either in Maya, Motionbuilder, and Unity 3D. Management said animation file size and game memory are two different things. For example the facial bones and some placement attachment bone were not animate or add key to it, they believe, it shouldn’t cost any memory issue to the Unity 3D 4.2 engine. As you understand, I am an animator. I don’t like the idea of key-frame reduction. I am animate a character that require attachment bones to hold object to the hands and hand off object to another characters then put down the object to the ground before back to idle animation. I don’t want my animation to be shaking all over the place. I like to have your input and how should I explain to them so the game can run smoother. If we are using key-frame reduction, how can we use it smarter.

    Thanks

    Keith Ho

    • Joe says:

      Have you looked at the new blend shapes in Unity 4.3? Blend shapes are great for letting you reduce facial bone count and still build expressive characters. They are a fantastic feature that really go a long way towards solving the specific problem you are having.

      As for using key frame reduction and other compression techniques, you really need to spend some time trying out different settings. Get the compression settings as high as you can, without hurting the visual fidelity of your game.

      I would also recommend looking into building a level of detail system into your animation system. Generally you only need the fully rigged facial animations for cutscenes and closeups. During core gameplay you can usually use the lower level of detail models, with less bones. If you build this system correctly in Maya and Unity you can build it in a way where you’re not doing a lot of custom work for the LODs, and you are just running the export process of your animation against a few rigs of lower bone counts.

      As for animation file size and memory usage not being the same thing, that is correct for the most part. If, within an animation, a bone never moves, then Unity and Maya will not build a curve for that bone.

      For the specific animations using heavy paperdolling, to allow characters to hand off objects to each other, you can solve this in a few ways. Generally you are going to apply compression settings per-animation, and for these specific animations you are going to use very minimal compression. If these animations are long, you can also work with your team to break them into a few different files. This will then allow you to farther adjust compression settings, adding more compression during the parts where the handoff isn’t happening yet, and then turning off compression for the brief moment of the animation interaction.

      Hopefully these are enough ideas to get you moving on this, let me know if you need any more help!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: