Jump to content

Having a hard time getting 30 - 45 sec animations into sl because of the 250kb upload limit


Novel Popinjay
 Share

You are about to reply to a thread that has been inactive for 685 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

My wife and I have a ton of great animations that we have put together utilizing the Rokoko Mocap suit, but we cannot get the file size under 250kb in order to upload them into Secondlife from Blender. I don't understand why LL cannot make the size limit bigger. Currently, we can do the split animations using the Bento Buddy plug in but it makes it where the animation needs to be cut up, resulting in difficulties trying to sell our work. Does anyone have any suggestions to resolve this? We have done the animation bake and removed key frames, with only a small change in the animation size. The fingers seem to add a lot more data but we want to keep the quality at the same time. Is there anyway or any plans on LL increasing the upload size?

  • Like 1
Link to comment
Share on other sites

14 hours ago, Novel Popinjay said:

Does anyone have any suggestions to resolve this?

Cut down on keyframes overall.

Cut down on keyframes for individual bones, particularly ones that do the least amount of movement in any given time period.

Edited by Lucia Nightfire
  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
On 7/15/2022 at 10:37 AM, Lucia Nightfire said:

Cut down on keyframes overall.

Cut down on keyframes for individual bones, particularly ones that do the least amount of movement in any given time period.

Unfortunately, it's not a matter of user's key frames, rather a matter of how many frames the animation has... And that depends from the fps.

So the best move to try is to reduce the fps from the most likely 120 fps for "quality" to a nice 30 fps for optimization and scale down the animation length by a factor of 0.25.

Then it would be a good idea to split the hands animations from the body and export them to separate files.

  • Like 1
Link to comment
Share on other sites

On 7/14/2022 at 9:24 PM, Novel Popinjay said:

I don't understand why LL cannot make the size limit bigger.

For optimization. Otherwise an animation file becomes the usual dump of excessive data. Animations already delay their play start when first downloaded, figure what happens with even bigger file sizes.

  • Like 1
Link to comment
Share on other sites

Keep in mind that the majority of folks are funning at pretty low fps.  

I just checked on on my version of Blender with Avastar add-on the default is 24.   I don't really like making animations; rather I prefer poses but in the past I have uploaded lengthy ones with no issues so I am going to "side" with @OptimoMaximo on the fps change being the issue.     

  • Like 1
Link to comment
Share on other sites

1 hour ago, Chic Aeon said:

Keep in mind that the majority of folks are funning at pretty low fps.  

I just checked on on my version of Blender with Avastar add-on the default is 24.   I don't really like making animations; rather I prefer poses but in the past I have uploaded lengthy ones with no issues so I am going to "side" with @OptimoMaximo on the fps change being the issue.     

Most of the softwares that connect to a specific suit output raw data at 120 fps. That for a specific reason:

Give the animator enough frames for cleanup (shake removal, flip fixes, smoothing transitions, etc)

The high fps is not for "quality".

In final application, either it be movie vfx or game animation, fps gets reduced to the film fps or to an average 30 fps, even though the playable frame rate might be higher. In the first case, because the film runs at that fps, in the latter case, because a well done job on the animation makes any fps higher than 30 useless, and no difference would ever be noticed. And guess why... To save on disk space. (And note, I'm talking about the animation fps, not the runtime fps. There is a translation step in between, so the animation gets "super-sampled" on screen.)

Also, for whoever might bring up practical example of high fps animations in games, I know it can be possible, but

1. Usually those are very short clips, most likely used if something mechanical is involved (like a reload animation) during game play (short=minimal data anyway, so just a little trade off)

2. Long clips at higher fps are used for "lobby" environments to show off a character (not used in game play, and not many in the whole game)

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

9 hours ago, Novel Popinjay said:

Great information guys, so in rokoko fps is at 100fps, when i bring the animation into blender if i lower the fps it slows the animation up. anyway to fix this?

Set your current frame line to the first frame, select all keyframes (and I do mean all of them -- make sure you click off "Only Show Selected" and click on "Show Hidden"), then scale. You can scale keyframes just like vertices: press 's' and then move the mouse or type a number and press Enter. Keyframes always scale towards/away from the current frame marker.

You're lucky your original animation is 100 fps. That number makes the math easy. If you want to go to 24 fps, scale by .24 . The general formula is (new fps) / (old fps).

scalefps.jpg

  • Like 1
Link to comment
Share on other sites

Arguably you should go to 25fps as that's easier math-wise. Also it gives you 1 more frame of animation data per second. Also follows the PAL (European) broadcast standard (Not that it matters, but the 24fps value comes from the American NTSC standard, so...).

(Also, to be an absolute nerd, the spec actually calls for 23.967 fps, NOT exactly 24. Unless you're going for 30fps, wherein you'd use 29.97. NTSC is weird.)

Not that it really matters, but hey, 1 more frame of fidelity so to speak.

Edited by Jenna Huntsman
  • Like 1
Link to comment
Share on other sites

37 minutes ago, Jenna Huntsman said:

Also it gives you 1 more frame of animation data per second.

Not really.

A) BVH animaitons are 'optimized' on upload and conversion to .anim to remove any changes smaller than certain threshold (loo lazy to look up what the threshold is) so, if your animation only moves 5 degrees in a second, that might result in only 5 frames per second for that joint in that second.

B) animations are interpolated viewer-side. an animation with only 2 frames will still look smooth; it would take extra frames to enforce a 'jerky low fps' aesthetic.

  • Like 1
  • Confused 1
Link to comment
Share on other sites

2 hours ago, Quistess Alpha said:

B) animations are interpolated viewer-side. an animation with only 2 frames will still look smooth; it would take extra frames to enforce a 'jerky low fps' aesthetic.

That assumes the interpolation is linear, but "realistic" motion is almost never linear as joints also have mass, so you'd actually want to use a cubic (or other) curve with smoothstep for interpolating time to create "inertia".

So, yes, you don't need keyframes every frame, but at points where motion is starting or stopping then the extra resolution may help. Although, in those cases, you'd want more than 1 extra frame for butter smooth motion.

  • Like 2
Link to comment
Share on other sites

All this information is a great help guys, thank you! So again, I'm not advanced with blender by at all but I changed my FPS to 24 and that ended up working. I wanted to know if there is someone advanced here that I could pay for at least 1 hour of your time to get on discord and show you on my end some of the issues I'm coming across?. I'm having difficulty getting the animation to stop playing when I hit stop once it's uploaded inworld. I'm using bento buddy which has been a learning curve but we are figuring it out. Before switching to 24 FPS, we had no issues with the stopping of the animation but now, since exporting at 24 FPS with all the same settings as when we were exporting at 100 FPS, the animation continues to play through even when we hit stop.  

Edited by Novel Popinjay
Link to comment
Share on other sites

3 hours ago, Quistess Alpha said:

B) animations are interpolated viewer-side. an animation with only 2 frames will still look smooth; it would take extra frames to enforce a 'jerky low fps' aesthetic.

I wrote an animation tool for SL and I can tell you from experience that the viewer does not interpolate between keys.  If I place data into the animation that tells the viewer to take 2 seconds to transition from one position, or orientation, to another then that's what it does.  If I tell it to take 0 seconds then it's a snap.

I don't know where you got your information from but I can guess, it's certainly not accurate.

Edited by BinBash
  • Thanks 1
  • Confused 1
Link to comment
Share on other sites

3 hours ago, BinBash said:

if I place data into the animation that tells the viewer to take 2 seconds to transition from one position, or orientation, to another then that's what it does.

That's what interpolation is. I could give you specific .anim file examples, but I don't feel like wasting my time to prove a tangential point. Edit: see post on next page.

 

Edited by Quistess Alpha
  • Sad 2
Link to comment
Share on other sites

4 minutes ago, Quistess Alpha said:

That's what interpolation is.

You obviously don't know what you're talking about.  The data I give to the viewer is taken as is, it does not interpret, interpolate or otherwise mangle what I gave to it.

Changing the meaning of words to make yourself right doesn't make for usable information, just like your post on the topic.  It's best if you stop disseminating misinformation, for the good of the community.

  • Thanks 1
  • Confused 2
Link to comment
Share on other sites

Not that all wiki are accurate but, because I am actually a professional in the field, with more than 30 years of experience, I can vouch for it.  I just want to make sure that people are getting the correct information.  If you simply do a search for (what is animation interpolation) you'll hit the spot pretty quickly.

If anyone wants to have a discussion with me about the subject you can contact me in-word directly.  I'm always willing to help someone understand how these things work.

 

  • Like 1
Link to comment
Share on other sites

SL's animations are interpolated between keyframes, in a linear fashion. That's why joint's don't just "snap" between keyframes if those keyframes are 2 seconds apart.

Say for example I have an animation with 2 keyframes controlling my elbow. Keyframe 1 is my elbow straight down, my arm resting at my side.

Keyframe 2 is my elbow with a 90degree rotation, for example, holding a phone in my hand.

Keyframe 1 and keyframe 2 are separated by 4 seconds.

When my animation is played in SL, my elbow will rotate slowly over those 4 seconds, despite there only being 2 keyframes.

Thus, interpolation. New data where there was none before, based on known data.

If there was no interpolation, my arm would snap immediately to the 90degree position.

  • Like 1
Link to comment
Share on other sites

10 minutes ago, Jenna Huntsman said:

SL's animations are interpolated between keyframes, in a linear fashion. That's why joint's don't just "snap" between keyframes if those keyframes are 2 seconds apart.

Say for example I have an animation with 2 keyframes controlling my elbow. Keyframe 1 is my elbow straight down, my arm resting at my side.

Keyframe 2 is my elbow with a 90degree rotation, for example, holding a phone in my hand.

Keyframe 1 and keyframe 2 are separated by 4 seconds.

When my animation is played in SL, my elbow will rotate slowly over those 4 seconds, despite there only being 2 keyframes.

Thus, interpolation. New data where there was none before, based on known data.

If there was no interpolation, my arm would snap immediately to the 90degree position.

The tool you're using to produce animations is responsible for the data being exported.  Your view on the subject is limited to what you are seeing, which is probably just the visual and not the data itself.  The tools, even mine, must produce extra data in order to fake the interpolation.

Further, linear interpolation is a misnomer, since there are no additional data required to be represented by this type of "interpolation", especially with regard to this target platform.

It's not essential that the average person understand how these things work and so they often times don't.  The way a person "interprets" what they see gives them the impression that they know what is happening but, in this case, what is happening is NOT what you are seeing.

I think I'll start a short video series on the subject so that I finally get people to stop spreading this misinformation that's been prevalent within SL for so many years.

Just to put a cap on this, the "new data" you are misunderstanding is not new, it's produced by the tool you used to export the animation with.  The viewer does exactly what the data tells it to do, it doesn't do anything more or less.

 

  • Thanks 1
Link to comment
Share on other sites

12 minutes ago, Novel Popinjay said:

@Binbash can i get access back into the discord, would love your help with this matter. and love Bento buddy. we have been having some good success with our poses.

Contact me in-world please.  I'll take care of it.

  • Like 1
Link to comment
Share on other sites

4 minutes ago, BinBash said:

The tool you're using to produce animations is responsible for the data being exported.  Your view on the subject is limited to what you are seeing, which is probably just the visual and not the data itself.  The tools, even mine, must produce extra data in order to fake the interpolation.

Further, linear interpolation is a misnomer, since there are no additional data required to be represented by this type of "interpolation", especially with regard to this target platform.

It's not essential that the average person understand how these things work and so they often times don't.  The way a person "interprets" what they see gives them the impression that they know what is happening but, in this case, what is happening is NOT what you are seeing.

I think I'll start a short video series on the subject so that I finally get people to stop spreading this misinformation that's been prevalent within SL for so many years.

Just to put a cap on this, the "new data" you are misunderstanding is not new, it's produced by the tool you used to export the animation with.  The viewer does exactly what the data tells it to do, it doesn't do anything more or less.

 

Aside from I know for a fact that the internal .anim file has only 2 keyframes, as I use AnimHacker (a tool to manipulate animations in SL's internal format), which has no interpolation functions built into it. Only the ability to set keyframe time, and translations.

The viewer is interpolating. Linearly. https://en.wikipedia.org/wiki/Linear_interpolation

The new data in my example is the rotation data. With the viewer's interpolation, it knows the start and end point of the translation, and the current time. That's all linear interpolation needs, as, if my start point is 0 degrees, my end point is 90 degrees, and my time is 0.5 (2 seconds), then my elbow should be at 45 degrees. That information is not contained within the .anim file, but was constructed as above.

(Also, Quistess knows what she is saying on the matter, as she made a tool to convert .bvh to .anim files.)

  • Thanks 1
Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 685 days.

Please take a moment to consider if this thread is worth bumping.

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...