Showing posts with label pinocchio. Show all posts
Showing posts with label pinocchio. Show all posts

Friday, October 7, 2011

Finding My Way

This week was a lot of data gathering and playing around with Pinocchio. Firstly, I was torn whether I should use motion capture data or a more visual-based data (such as videos and day-to-day observation) as the foundation for my walk-cycles. Since I'm trying to create a procedural animation tool that will create realistic human movement, it's more important that the animation look good rather than accuracy. So I started off by researching places I could find motion capture data of different phenotypes, since I figured I could try it out and see what I thought. I found a bunch of sites that allow you to download their motion capture data for free. However, after talking with Norm and Joe today, I decided that I will not use motion capture data to create the motions, but rather use visual data, mostly from watching/taping people around campus and finding walk videos online, to create the walk-cycle movements. This excites me, because it will give me more flexibility when creating the algorithms for generator, and allow me to look at more movements than just those found in motion capture data.

Along with looking for research, I was reading a few papers I found on the BioMotionLab website, and seeing how they found their data. BioMotionLab used motion capture on different subjects to find most of the data, but when it came to trying to describe the subject's mood, they used outside observers to numerically describe the subject's mood based on their walk. Thus they could gather enough data whether certain walk's appeared happier or sadder, etc. I found this really interesting technique, and I will probably use that as a testing tool for my program later on. I think that'll be a good way to see if my choices for the animations match up with other people's perceptions. They also have a cool tool where you can create an attribute for their walkers, and scale that attribute accordingly. It's an interesting idea, check it out:
click on the image
Besides data, I've been playing around with Pinocchio, trying to connect it with my Maya plug-in framework that I have so far. However, I wasn't too sure how to integrate Pinocchio with Maya in a not overly complicated way. Joe suggested wrapping the project so I could access it in Python and thus integrate it within Maya super-easy, or copying the code into my compute method on Maya itself. However, then I'd have to convert it into MEL which might be a pain. So I went digging around and found another auto-rig script that's made for Maya. One of DreamWorks' Head Character Animator, Jason Schleifer, sells a DVD that teaches animators how to rig, and has a bunch of scripts that animators can use and some guy decided to create an open-source version of the techniques found on the DVD and distribute it. So I've downloaded these scripts, and I'm looking forward to using this as a framework instead of Pinocchio, because it will be easier for me to integrate my code nicely, and also tweak it to be more versatile than the normal auto-rigging tools. I'm trying to open it up according to the instructions so stay tuned for some videos this week of using that tool.

Lastly, I added more to my Maya plug-in framework. My main goal right now are to integrate the plug-in code with the MEL code for auto-rig. If I can have that up and running I can start testing out models within the Maya framework, which would be very exciting!

Thursday, September 29, 2011

Having fun with Pinocchio

So Pinocchio is a really fun tool. I've been playing around with it, and I'm surprised at how quickly it processes everything. Basically Pinocchio, which is the auto-rig tool I'm going to try and incorporate into my project, takes an OBJ file, takes some really complex txt files (that define the movements) and creates the rig and walk-cycle for different models. The code I downloaded comes with two models, a low resolution model with about 900 vertices and a higher resolution model with 4000 vertices. They both run pretty quickly, so I'll be interested to see if a more complex model works as well. I am currently searching around for more models to test the rig tool with. Here's a short video of me testing out the different models.


I've realized from this that it is very important that the movements and rig fit the model. Because while the cheg model (the weird mouse-ish model in the middle section) moves exactly like the lower resolution model, it looks very strange to see it try to hop around with one leg. The model is all floppy, and it just creates a very creepy and unrealistic movement to me. Even though the low-res model is not that great to look at, I would rather watch him walk and jump around than the cheg model. So doing these demos has really reinforced that idea for me, which I think is good, because now I have a clear direction to head when it comes to rigging the models.
Also, I realized that I need to get a better video of actually watching the rig set up. When I find some new OBJ models, perhaps I'll get a chance to see more of the auto-rig in process.

Besides playing around with Pinocchio, I've been setting up my framework for Maya. I'm currently writing my code in a OSX system, but I'm wondering if I should move everything to Visual Studio (since Pinocchio is set up for VS2008) since it'll be easier. However, I'm not too certain how that works with compiling Maya. I've generally compiled and built the .so files that Maya imports as a plug-in through linux, so I'll need to quickly decide on how structuring the files is going to work out in conjunction to Pinocchio. I'm guessing I will be able to create a function within my plug-in that calls the auto-rig functions found within the .h/.cpp Pinocchio files, which will go around the whole process of compiling in Visual Studio. That's probably the best idea.

This coming week I'm going to continue with research and try to get in contact with Nancy Pollard, who has been doing research in a very similar area to this project. I would love to hear her input on my work. Also, I'm going to start to gather actual data for this project that will be the basis of the walk-cycles.

Good night, folks!

Thursday, September 22, 2011

Long Week

Hey all!
This week was a topsy-turvy sort of week, with the death of my cat on Saturday, finding out I probably have an internship with DreamWorks this semester to continue my work from the summer, and then getting sick. Regardless, I did manage to do a bunch of research for this project.
I started off looking at the official website for Maya C++ API and MEL scripting, trying to get reacquainted with how to set-up a plug-in, which I will dive into writing the framework for this weekend. Joe also sent me two websites that give some really good explanations of programming techniques in MEL and Maya API, so those have been extremely helpful in teaching me good Maya programming techniques which will be necessary for the final product to run smoothly.
I've also been looking over the code for Pinocchio, the automatic rigging tool developed by MIT. I'm considering if it will be possible to incorporate their code into my framework, and how much of it will be useful. They provide meshes that one can rig, which could be really good starting meshes for the earlier testing of my plug-in. Though I won't use this one, it's kind of creepy:
Besides research and looking at ways to set up my framework, I've been working on figuring out the system architecture of my project. Since there's going to be a component of using background data and then pulling out the data based on inputs, I'll need to figure out how to create those algorithms and incorporate into my plug-in. I have a good idea of how each part of my system will fit together, but I still need to draw it out on photoshop and post it on here. I'll probably be able to finish that when I start setting up the framework this weekend. Expect a post sooner rather than later this week.
Once I've set up the framework, I plan on looking at a lot of data. I still don't know whether it will be better to collect data about different movements through mocapping, or if I should look for videos and find relative examples. For instance, I've been heavily influenced by the work of Body Motion Lab, which could be a very useful source of data.
Anyway, here's to coding, data gathering, and diagram making this weekend!