Thursday, November 17, 2011

AutoSkeleton Frustration

This week I focused on getting the auto-rigging working. At this point I've written all the code necessary to fit the skeleton, but it does not work quite yet. I'm in the process of debugging, but it looks like it's not finding the right joint locations within the model, thus it is not actually rearranging the skeleton, so I'm not calling Advanced Skeleton's attach method. If I can figure out why the measurements are not working correctly, than the majority of the coding will be done for the skinning!

Another one of my major frustrations was actually changing the skeleton given by Advanced Skeleton by Pinocchio standards. I think this might be a bigger problem in the future, because I'm not calling the moving the joints to their places properly. When setting up the rig manually, I followed Advanced Skeleton's tutorial video, and they preferred a lot of rotation changes to orient the rig accordingly, but Pinocchio prefers translation it seems, so I'm thinking this might lead to weight attachment issues, which once the skeleton looks right will be the next major problem.

Another thing I'm working on is moving my data-driven walk-cycles into Maya. I'm trying to see how I can copy and modify those animations from the mo-cap files with my plug-in. I want to gather more body types, and will be working with Joe to get more walk-cycles besides my own, in the future.

Short post, unfortunately, but I hope to have a lot to actually show next week, because then things will be working.

Thursday, November 10, 2011

Alpha Review Comments and Other Remarks

So, my Alpha Review critiques were okay, but a lot of it had to do with the clarity of my presentation however, so that is good news. Basically, everyone seemed to like my project and progress once my work had been explained again to them. So that's good news, because that is easier to fix. I'll have to go through presentation with Joe before the final presentation, for sure.

One of the major critiques I got was that my walk-cycle (which I totally agree with) was bad and very unrealistic. I wasn't necessarily going for realism at that point, I was trying to key in the general motions so I could refine it for the future. But, yeah, I think with more focus on the walking part, people will be more excited with how things look.

The other critique I got was using data versus using my artistic ability for walking. Joe and I talked about it, and I'm going to use data from the motion capture data I've gathered this past week (and more data to come in the future), and use them as a basis for my walks. I think people want to see concrete data go into this since my work is based on creating realism, and I totally understand that, so I will bring in MoCap data for now, at least, and see if that works better.

Lastly, I realize that a lot of my focus has been on the auto-rigging side of things, but I find that part to be harder, so I thought I would attack that first. But I definitely plan on focusing on the actual animation aspect of my project going into Beta.

Now, about my progress for the week.

Continued working on keying up walk-cycles. We had to do a walk-cycle for my Computer Animation class, so I think I will use some of my work there and bring it into Maya. I need to go into the lab tomorrow to work on that. Also, we had to capture different motions through the MoCap in the lab, so I'm working on getting that data into MotionBuilder and bringing that into Maya as well, so I can play around with the keyframes in MEL. I'm trying to clear up most of my walk-cycles recorded, rather than the minimum four needed for class. Minus the Computer Animation assignments, I was still MEL scripting the other cycles and I think I'm getting a better handle of the poses.

Writing out Pinocchio's algorithm into MEL/Maya took a backseat this week. I was really trying to perfect the walk-cycles, but I'll be getting back into it this weekend. I've been re-reading the Pinocchio paper to help understand the code better, they explain the algorithms out, which is a lot easier to read than code.

Lastly, sigh of relief, Beta Reviews pushed back a week! This is good news, because next week we have DreamWorks, Sony Imageworks and Microsoft coming in AND my uncle is getting married, which I need to be a part of, so I was getting really worried how I was going to manage to finish everything I set out to do for Beta.

Thursday, November 3, 2011

So much coding!

This week was a lot of coding. Firstly on the rigging side of things. Right now I'm trying to combine Pinocchio's auto-fitting tool together with Advanced Skeleton's rigging tools. So this means taking the algorithms Pinocchio uses, and creating a MEL version of those algorithms and combining it within Advanced Skeleton. I was hoping to have it fully functional by today, but this is turning out harder than I thought. I hope to have it sorted out soon, because I feel like that is the hardest problem in my project.

Basically, I need to make a Maya version of Pinocchio's "fitting" technique, which is a really interesting concept. They basically pack spheres within the mesh, and then find the centers of these spheres for the skeleton to go to. I'm trying to recreate this algorithm in Maya, that will fit into Advanced Skeleton. This will allow the rig to have minimal distortion of the model according to their paper (and video). Then from there I will need to refine the skeleton further to make a well structured skeleton. My biggest issue with this has been figuring out the rotations of the joints, because Advanced Skeleton prefers rotations over translations a lot of times when fitting the skeleton in.

This is how it's supposed to look (in the beginning, at least, before refining the skeleton).

Besides rigging stuff, I've been looking at coding my different walk-cycles. My current plan is to hardcode the "extremes" of my different body types, and then blend these together based on the users inputs using different types of splines (probably b-splines). This seems like a natural and effective method of solving this problem, but I'm always open to more ideas. I've been coding my walk-cycles, but since I started off with generality, they didn't look so realistic. Thus that is now my main focus for the rest of the project - pooling my data and what I've been learning about how walking works to create the realism.

This week has been great for that, since in my Computer Animation class (CIS 462/562), we've started to deal with key framing walk-cycles (albeit in Motion Builder), and it's actually given me some really great tips on how to create a walk-cycle. My professor spent an entire class on the different components of a walk-cycle, so I'm trying to make sure that these components make it into my work. I realized through my preliminary work, that I wasn't keying everything I needed for realism, and true, I was rushing the work, but I think that going into Beta, I really want to focus on getting the realism down. When I've been reading about walk-cycles they mention the different motions, but Professor Lane put those motions into a more animation and computer perspective, which is definitely more helpful. So far, it's been slow progress - I don't have enough frames for a nice movie yet, but I think with practice, I'll also get better at the coding in MEL in general (there's only so many times you can type setKeyframe wrong and move your model in the wrong direction). I'm thinking that I might just key frame with the Maya tools rather than script, and then copy the code from the general editor, but this means I have to be aware of my steps all of the time, which can get confusing in the Maya shell.

Moving forward, continue to hardcode the walk-cycles. Get the auto-fitting for rig into place. And then putting these together!

p.s. I also realized that I have comments on my previous posts that I didn't notice until two days ago, so I'm sorry (Joe) for not replying. My comments didn't get emailed to me like normal.