Is this possible in Houdini ??

   6456   4   1
User Avatar
Member
2 posts
Joined: July 2005
Offline
Hi, I started learning Houdini for about half year now and the first personal project I did was about motion capture. What I did was that I downloaded a couple of BVH motion captures then converted to bclip using mcbiovision.exe.

There were two motion capture data I used, running and walking.
The walking motion actually moves the translation of the root bone so the character moves. Differently, the running motion does not have translation so it runs but stays on the same spot.

Now, I wanted to blend those two motion captures from one to another in my scene, saying, the character running and slowly blending to walking motion.

It was my plan and I spent so many hours trying to figure out how I could blend them smoothly but once I changed translation of the root bone, all other bones break their motion data.

My question is that should those two motions be in same position ? for example, walking motion should not change the translation and be done on the same spot(translation 0,0,0) so when I blend running from walking
I dont have to worry about translation channels? so once I blended them, I can control translation my own later?

If this is not possible?
Can I achieve this by using Vex Language? The Vex manual I had a look in Sydlab website explains that Vop can customize chops. So if I can use Vex, I could write a Vex Operator that gets these two sets motion capture channels and manipluate( blending from the first motion end to the second motion start) them and output to a new set of channels.

If I could also add to this vex operator to accept a script (or multiple text lines) such as
walk(0,0,0, 1,1,1);
run(1,1,1,1,2,1);
stop(1,2,1);
turn(left);
so my code in Vop interprets this and construct those motions together and output to a single chop?

I am not sure all these make sense and Vex language is flexible enough to do all these. Or maybe I miss something thats already in houdini that suppports all these stuff?

Thank you for your attention

Jun
UTS(Univercity of Tech. Sydney)
3D graphics student.
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
You should be able to do everything in chops without having to rely on vex.

I wonder why your run cycle breaks when you try to translate the root bone forward. Without that working, you are stuck. Are you sure you are only applying the translate to the root bone and not everything? Use deletes to isolate, modify then merge back the single translate channel to be sure.

Your second idea of getting the walk cycle to work in place is the correct approach. You need two things to do this: Distance travelled in Houdini units of the root bone (hips), Time taken to do the cycle. Now create a linear curve that represents distance over time. The first value at time zero should be the distance value and the end of the cycle should be zero distance. Now multiply that just to your root bone's translate values. You will most likely have to use two delete chops to isolate that translate channel then merge it back in before you export out. That should get your walk in place. If that is broken, try to get the files to me and I'll see why things are breaking.

Do the inverse of that channel to get the walk going forward again.
There's at least one school like the old school!
User Avatar
Member
5 posts
Joined: July 2005
Offline
yjyoung could you please explain exactly how you went about importing the mocap data into houdini, I've done a mcbiovision -i foo.bvh it gaves me a cmd and a bclip file, how do if map the bclip data on a character i am assuming correct me if am wrong. what commandline switch should I be using with the mcbiovision command ? I do a lot of mocap and I want to see how good houdini deals with mocap

Thank you

Bjorn
User Avatar
Member
2 posts
Joined: July 2005
Offline
Thanks Jeff,

I was trying to do something silly without deleting the translate channels so i guess thats why whole things broke. Now I used Delete operator to isolate the translate channels and remove the key frame from the root translate channels so now I can put my own translation channels and make my characters move. Thanks again.

The idea of using a Vex was because I wanted to make an operator that has a bit of basic AI concept. For example, if I want to have a character walking around a maze, without my “ideal operator”, I could do it by blending and combining a handful of motion caps such as walking/ turning left/right/back by hand. If I could have an operator that could maybe take a string of information that tells the sequence of motion cap to be used, saying , WWWTRWWWTLWWWTB tells that do three full circle walking and blend into Turning Right mocap then three walking circle again, Turning Left, three walking and Turning Back etc. In this case, I dont have to manually shift and blending different mocaps and I just have to pass this char string information to Vex operator to do it. This vex operator could also be reuseable for other mocap blending (eg, fighting sequence etc)
Do you think this kind of ops are already in houdini?

To Slade,
I have not much experimented with mcbiovision yet but basically what I did was just run it get .cmd and bclip files. Once you have those files, run Houdini and you can either open text port and run “source” command to run the script file(eg, ->source run.cmd) or go to file and select “Run Script” then select your .cmd file. After you run the script, go to chop then add a file operator then open your .bclip file then export. now all the bones should be mapped to channels you brought from .bclip file.

Thanks for your attention.
User Avatar
Member
5 posts
Joined: July 2005
Offline
yjyoung good looking (“thanks alot”) for your advice it worked like a charm, Now i am going to convert tons of mocap data into bclip this is a great, its finally working for me



Franks and Beans

Bjorn
  • Quick Links