Jump to content
JulieAnne Somersley

Mayastar Animating - Copying & Pasting keyframes

Recommended Posts

I'm trying to create a looped animation and for the life of me can't figure out how to do it. I've mostly used Poser for animations whereby creating a smooth looped animation is done simply by copying all of the keyframes from the first frame of the animation and pasting them onto the last frame. It's looking a lot more complicated in Maya. :) 

Setting keyframes I've got down (ish) and my animation runs smooth and fine but this loop. I've tried the similar method of cut/paste keys to start and end but nothing happens except the neck bone goes berserk. Pre and post infinity cycles don't seem to return to the start of the animation smoothly... so I'm at a loss. 

Any help in the right direction would be greatly appreciated!

Share this post


Link to post
Share on other sites

I'm assuming that you're using the HumanIK rig, because you said that the neck was going crazy if you tried a copy/paste key. The safest method to copy a pose from a frame to another is to use the no Update feature. Place your timeline on the frame where the pose you want to copy is, then MiddleMouseButton drag to the involved frame. The character will not update its pose and you'll be free to grab the controllers and keyframe them manually on the spot. A HIK rig is being created in absolute mode and a simple copy/paste won't work as expected.

  • Thanks 1

Share this post


Link to post
Share on other sites

I have one more question if you or someone else could be so kind... :)  ( and yes, I am using the HUMANIK rig)

I mostly animate for furniture and things of that ilk so I'm frequently using sit or lie down positions. I've tried dozens of variations to get her to sit properly but the only thing that seems to work is simply lifting the feet into a sit. Any hip rotations whatsoever and either none of the animation gets read on upload or just what's animated above the hip will show and the legs will be straight down standing. Typically I rotate the hip backwards, bring the chest forward and align the legs but I've found myself unable to do that to achieve the results I'm looking for. I tried rotating only the spine but it doesn't work either. Same thing happens for a lie down position. 

Thanks again so much.

EDIT: NVM.... Tpose 0 at 1 is a thing :( 

Edited by JulieAnne Somersley

Share this post


Link to post
Share on other sites
14 hours ago, JulieAnne Somersley said:

Any hip rotations whatsoever and either none of the animation gets read on upload or just what's animated above the hip will show and the legs will be straight down standing.

This happens because of BVH uploader in SL. If a bone doesn't rotate for a certain number of frames (depending on the file's fps and number of frames), its information gets dropped. Your best bet is to make your character stay standing up and then animate the descend into a sit in order to heavily rotate all the bones you need to animate in SL. At the end of the process, you would loop only the section of animation she has to loop (or just the last frame) so that she stays sat. You saw how lifting her feet made the legs come through... it's because the joints are clearly no longer at zero rotation in this new pose and the uploader reckons that, keeping that body part animation.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Thank you again Optimo for responding :) 

I solved quite a few issues spending nearly all day with it yesterday as I desperately want to move out of Poser and into Maya but I think I'm very used to a certain workflow in getting things to work so translating those mindsets to Maya has been... challenging. 

First, a keyframed Tpose at 1 seemed to solve the sitting issue. I can then go to frame 2 and put her in the position I want and it comes into SL fine. I can rotate the hip and spine and lift the legs into a sit. 

A lie down proved a bit bizarre to the point of giggles in that the legs get lifted, the spine gets flipped but so be it, I got it working :) I'm just noticing as I test this, that and a bunch of other things out that a hip rotation of any kind can either work fine or gets borked out on upload. I can't get a consistent "this works... or this doesn't" flow going at all. More often than not though as I'm testing I get the error "Unable to read animation file. Cannot get position values." I know it's because I moved the hip because I'll do the exact same animation but keep the hip rotations at zero and it uploads. I can't wrap my head around that at all because the human hip moves a lot and to have to keep it static seems like I'm just doing something wrong. The tpose at 1 seemed to work but that feels like an odd work around that won't always fly. 

 

6 hours ago, OptimoMaximo said:

Your best bet is to make your character stay standing up and then animate the descend into a sit in order to heavily rotate all the bones you need to animate in SL.

If only :) When creating 5 sits for that rocking chair, she can't get up and walk into her sit when a user changes the pose.... if I understood that correctly? I rely heavily on start positions as I bring the furniture I want the avatar to sit or lie on into the scene.

Thank you again for responding. I'm extremely grateful for any hints or tips that will give me that a-ha moment. I've been at this for 3 straight days and sometimes my eyes start to glaze over and I wonder if I'm missing something crazy obvious :)

 

Share this post


Link to post
Share on other sites
15 hours ago, JulieAnne Somersley said:

When creating 5 sits for that rocking chair, she can't get up and walk into her sit when a user changes the pose.... if I understood that correctly? I rely heavily on start positions as I bring the furniture I want the avatar to sit or lie on into the scene.

Well, if you start all the animations from a single, offset pose you shouldn't have trouble firing complimentary animations and, to be honest, at the moment of standing up, it looks better if your sits are offset to the back, so that the avatar doesn't jump on the furniture's top.

 

15 hours ago, JulieAnne Somersley said:

I'm just noticing as I test this, that and a bunch of other things out that a hip rotation of any kind can either work fine or gets borked out on upload.

 

15 hours ago, JulieAnne Somersley said:

More often than not though as I'm testing I get the error "Unable to read animation file. Cannot get position values."

What version of the exporter are you using? From the error looks like the BVH exporter 1.5, Cathy Foil has fixed these types of issues releasing the BVH 1.5.5 version.

Perhaps your installed version is the troublesome one. On the other hand, the inconsistent and unreliable behavior of BVH files upon upload in SL led me to write my own .anim exporter, so i hear you well there.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
5 minutes ago, OptimoMaximo said:

On the other hand, the inconsistent and unreliable behavior of BVH files upon upload in SL led me to write my own .anim exporter, so i hear you well there.

I've got that lovely albeit insanely intimidating thing in my cart.

Here goes everything :D

Share this post


Link to post
Share on other sites
7 minutes ago, JulieAnne Somersley said:

I've got that lovely albeit insanely intimidating thing in my cart.

Here goes everything :D

Thanks! So now you can forget about the TPose at frame 1 ;)  and work up to scale, with the same character orientation that a script would expect as zero rotation sit target... quite a bit of benefits =) Please make sure to watch the few videos linked there!

Share this post


Link to post
Share on other sites

Is this compatible with the Mayastar animation skeleton?

EDIT: 

I'm assuming since there's already a skeleton with Mayastar I don't need to "generate" one but when I use the Anim Export, I get the error

AnimExport.mel line 199: ValueError

AnimDeploy.py line28: No object matches name: hip.initHeight

Update: 

After a few tissues and a little gin I gave up on the Mayastar animation skeleton and started from scratch with the bento rig. I'm positively delighted in your exporter. It's elegant and there seems to be very little loss. I stressed that poor girl out with every kind of bizarre hip rotation I could come up with and each time I was consistently able to upload it so I'm very grateful to you for creating the tool and making it available.  I am curious how bad things are gonna go when I try to bring in the boy? (couples animations). I didn't see that you addressed multiple avatars in your videos.

As Mayastar had a bit of a hefty price tag and I really like her animation set up, I'd love to figure out what these errors are and be able to use your exporter with it. Is that possible?

On a side note. I don't know if this has anything to do with it or just coincidence but after I installed MyAnimate and went to run Mayastar's animation skeleton to animate... I started getting this.  (See image)  The controllers no longer follow the body on animation play.  They just sort of hover there. No earthly clue what that is.

Thank you again, I'm grateful for your responses.

 

 

 

Capture2.JPG

Edited by JulieAnne Somersley
Update

Share this post


Link to post
Share on other sites

Sorry for the delay. Aside from the instructions videos, you have to be aware of the basic differences that govern the BVH export scene and the .anim

BVH is a common standard that by definition has the Y axis up and the Z forward. However, SL internal up is the Z axis and forward is the +X axis. Therefore the two setups are incompatible in their basic world orientation. Moreover, the character scale differ between the two standards. BVH for SL assumes a character in inches, while .anim implies the use of "units", see them as meters or centimeters, it's the same. In my setup i chose meters to allow up-to-scale animation over objects.

Due to how Maya works, for now couple animations aren't supported. It's in my plans to deliver a big update that should also address this application.

On 1.2.2018 at 10:37 AM, JulieAnne Somersley said:

After a few tissues and a little gin I gave up on the Mayastar animation skeleton and started from scratch with the bento rig. I'm positively delighted in your exporter. It's elegant and there seems to be very little loss.

You can use a classic rig as well. Be careful not to delete partial joint chains from te bento appendages: either the whole branch or leave it. The update i was talking about will address this in order to ease the process for animesh objects. 

The animation loss you see is the minimal possible and it's due to how the animation needs to be compressed into binary values: during conversion from signed floats to unsigned ntegers, resulting converted numbers get "floored", meaning the decimal gets truncated to become an integer, generating an implicit imprecision...which again is really really small, given the two ranges of conversion (-1.0/1.0 into a 0/65535 value range)

On 1.2.2018 at 10:37 AM, JulieAnne Somersley said:

On a side note. I don't know if this has anything to do with it or just coincidence but after I installed MyAnimate and went to run Mayastar's animation skeleton to animate... I started getting this.  (See image)  The controllers no longer follow the body on animation play.  They just sort of hover there. No earthly clue what that is.

MayaStar animation rig is a very old HIK version that screws up quite adly in these newer versions of Maya. Cathy Foil has her own set of videos among which there is the instructions to upgrade the rig to the latest HIK vversion. With MyAniMATE, IF you're using the BVH set up, you can follow that tutorial but it won't work to export .anim, only bvh export will. To use .anim, you necessarily need to generate a new skeleton specifically for .anim format standards (follow my intro videos on that) 

Edited by OptimoMaximo
  • Thanks 2

Share this post


Link to post
Share on other sites
2 minutes ago, OptimoMaximo said:

It's in my plans to deliver a big update that should also address this application.

I will be very anxiously awaiting this! 

In the last day or so I've figured quite a few things and am on my way. I've learned a ton to the point of my brain being near fried but I can now safely and happily leave Poser behind :) 

Thank you again for all of your help and for making an outstanding product. I'll be keeping a very close watch for the update !

Share this post


Link to post
Share on other sites
1 minute ago, JulieAnne Somersley said:

I'll be keeping a very close watch for the update !

I have a group for MyAniMATE users. I've run into video card issues yesterday so i will not be able to log in for a few days but i will send invitation as soon as i can. Also, the update includes 3 sides of the plug in, so it will take some time yet, considering also the testing

 

5 minutes ago, JulieAnne Somersley said:

In the last day or so I've figured quite a few things and am on my way. I've learned a ton to the point of my brain being near fried but I can now safely and happily leave Poser behind :) 

Sounds like a good checkpoint! :) 

  • Like 1

Share this post


Link to post
Share on other sites

I see the position keyframes on the hips didnßt come through, and the explanation is quite easy, fortunately.

Before sampling for export, your animation is being analyzed to filter out unused data. This filtering happens by sampling the first frame of your animation against the fifth. If no changes are found, the bodypart is dropped.

Your animation clearly begins totally static for more than 5 frames on the hips about its position data. Just make sure there is some position motion in those first frames, even quite subtle, a 0.01 would suffice.

Also, from the video i see a quite big grid. You may have edited the grid settings and it is fine, just make sure in the general settings to keep the linear units in centimeters, too.

 

This should fix your issue.

Share this post


Link to post
Share on other sites

Yea... I'm feeling a bit more than dumb lately :).  I remembered the the 5th frame thing from your video a few hours after I created the post. While washing dishes I blurted out "oh dammit!!! and ran back to my desk :P.  With that edit the feet stay planted on the ground but the hands still end up hovering about a foot off the ground. I'll whip out another one starting over.  I figured I'd start doing a bunch of silly yoga animations as that would be a good way to see where all things could possibly go wrong and get them sorted before trying to do actual stuff. Do all the joints need to be affected before frame 5 or just the hip? I have no doubt it's SL or me as the exporter works flawlessly never hiccups or errors out so that's really nice.

On a side note... Is there a formula for how many times it cycles through the animation before finishing the export? I can't seem to notice a consistent number. 

And yes, I'm in centimeters and z-axis. Grid size is 914.4 / 30.480 / 1. I import the animation file (.mb) into a new scene and merge namespaces so there's no conflicts:  hence why I'm probably getting a larger looking grid. It seems be working ok. 

Thanks again for continuing to answer. 

Share this post


Link to post
Share on other sites
2 hours ago, JulieAnne Somersley said:

With that edit the feet stay planted on the ground but the hands still end up hovering about a foot off the ground.

Something that can't be stressed enough is the shape consistency between your avatar inworld and the one you animate with. If you use Mayastar's shape editor, it's possible to configure your own shape or any other most commonly used shape, with better proportioned limbs length (better than the default, that is). The joints offsets play a big role when it comes to exactly place the hands (or feet) somewhere. You should just change your avatar, which HIK makes simple enough: export the animation in FBX format and reimport it in the corrected avatar's animation scene, then retarget. HIK will do the rest for you and readjust the target character to closely match the poses beteen the two differently shaped characters... some editing needed, but at least you won't trash your work so far.

IMPORTANT: after the process of reshaping your avatar in Maya, before you generate the animation skeleton, make sure to lift the avatar mPelvis by the amount you need to see his/her feet above the ground. Once you generate the animation skeleton, the avatar's height is established and the current feet position is stored as the floor position. If the avatar shows the feet sinking through the grid floor, that is the current floor, any subsequent lift to stnd above the grid floor will result in your avatar floating in the air. Remember this tiny deail and you'll be good :) All this was necessary to also allow totally custom characters with diverse (also non human) shapes

2 hours ago, JulieAnne Somersley said:

Do all the joints need to be affected before frame 5 or just the hip?

All the involved body parts should be keyframed following the same principle explained for the hip, except for a detail: no translate attributes keyframes other than on the hip.

 

2 hours ago, JulieAnne Somersley said:

On a side note... Is there a formula for how many times it cycles through the animation before finishing the export? I can't seem to notice a consistent number.

Since Python in Maya is a bit slow with getting data from Maya's core AND doesn't sample a few pieces of data if the animation doesn't actually playback on your screen, i opted out for the most lossless solution that was to directly sample joints data upon serialization to file. Therefore, there is one cycle for each single involved joint, rotation data first and, if found, a second cycle for position data, one cycle for each involved joint. Using the recommended settings i show in the instruction video, it becomes very fast.

 

2 hours ago, JulieAnne Somersley said:

And yes, I'm in centimeters and z-axis. Grid size is 914.4 / 30.480 / 1. I import the animation file (.mb) into a new scene and merge namespaces so there's no conflicts:  hence why I'm probably getting a larger looking grid. It seems be working ok. 

All good there then, just checking

2 hours ago, JulieAnne Somersley said:

Thanks again for continuing to answer. 

No problem :) 

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
3 minutes ago, OptimoMaximo said:

Something that can't be stressed enough is the shape consistency between your avatar inworld and the one you animate with.

Therein lies the rub!! :) I kinda wondered if arm length had something to do with it and it most certainly does which makes animating for distribution a real sad affair because one animation will look entirely different on different avis. 

5 minutes ago, OptimoMaximo said:

no translate attributes keyframes other than on the hip.

So I should only be keying in Rotate values? I'm guessing that needs to be done by hand for each bone? ... and that auto key setting in preferences isn't a good idea?

 

8 minutes ago, OptimoMaximo said:

most lossless solution

This is really great. Most other programs for animation strip insane amounts which can make for having to do very exaggerated movements, ie a head turn. A subtle movement isn't possible as it just gets tossed out. I love your anim exporter as even the tiniest movement most often comes through, very awesome.

Share this post


Link to post
Share on other sites
2 minutes ago, JulieAnne Somersley said:

So I should only be keying in Rotate values? I'm guessing that needs to be done by hand for each bone? ... and that auto key setting in preferences isn't a good idea?

Easy enough: in the HIK interface, click on the empty area around the controllers map until all controllers highlight selected. Keyframe Rotation attributes. Then, go on and select the hip controller alone, and then keyframe the Translate attributes. From this moment on, autokeyframe works consistently to this initial keyframing you just did, and doesn't interfere with anything.

8 minutes ago, JulieAnne Somersley said:

I love your anim exporter as even the tiniest movement most often comes through

Thank you :) unfortunately the conversion to binary data caps the values, so that's really the max precision allowed by the anim format.

However, notice that the exporter also supports different FPS settings. Not all the available rates in Maya, but you can animate using 15, 24, 25 and 30 FPS. Switching your animation now from, say, 30 fps to 15 will readjust the timeline and your animation will still playback the same speed in Maya as well as the exported one in SL, with the difference of a lighter weight .anim file (just make sure to fix the animation range accordingly to the new timing)

Also, you can downsample an animation by setting the exporter to sample every N frames. This feature only works on 24 and 30 fps setting.

  • Thanks 2

Share this post


Link to post
Share on other sites
8 minutes ago, OptimoMaximo said:

Easy enough: in the HIK interface, click on the empty area around the controllers map until all controllers highlight selected.

ROFLMAO - so i don't have to be a potato selecting each bone one at a time and keying it in :D

When everything started going wonky I resorted to the one at a time method and keying in ALL values hahaha.  This is great tho. With your tips I'm now getting exactly what I see in Maya in SL, I just wasn't keying properly. 

Hats off to you. I wish I could buy you a coffee or somethin' :)

I'm on my way again. 

Share this post


Link to post
Share on other sites

 

4 minutes ago, JulieAnne Somersley said:

This is great tho. With your tips I'm now getting exactly what I see in Maya in SL

Good to hear :) Have fun animating!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...