Thursday
Mar242011
Ghost Pose Tool
Thursday, March 24, 2011 at 02:51PM
A couple of years ago, I wrote this tool for production on Gears. Pose libraries are always good to have, especially working with game animations, but I wanted a pose library tool that had a bit more flexibility. What if your character moves in space and you need the first and last frames to be the same? Sure, there are some ways to do this, but wouldn't it be better if it was just a click of a button?
So I came up with something I called the Ghost Pose. What it does is brings in a "ghost" of your selected pose, and allows you to place that ghost pose anywhere you want, with any rotation. Then you simply snap your character to that ghost pose.
Here is what it looks like:
So here we have a UI that has a lot of our common game poses. The user selects a pose and a ghost of that pose comes into the viewport.
From here, the user can manipulate the ghost pose around. They can translate it or rotate it or whatever. This way, if you have a character walking through space, and you wanted your start and end to be the same, you could place the ghost of the walk pose at the end, and snap it, and you'd know it would be the same!
So, I moved this idle pose over to the left, and also rotated it. Now all I need to do is hit snap and the character will snap to that pose.
Nice! So what does the ghost pose look like? Well, the whole thing is super simple. All of the character geometry follows a naming convention. When the user wants to create their pose, It duplicates all of the character geometry in that pose, combines the meshes and deletes the history. From there, it places a locator in the positions of all the controls, including the root. It makes the new mesh the shape node of the root locator, and parents all other locators under the root. So when you are moving the ghost pose around, you are moving all of the locators around too. The snap script is simple as well. Just a bunch of xform querying and setting!
That's it!
So I came up with something I called the Ghost Pose. What it does is brings in a "ghost" of your selected pose, and allows you to place that ghost pose anywhere you want, with any rotation. Then you simply snap your character to that ghost pose.
Here is what it looks like:
So here we have a UI that has a lot of our common game poses. The user selects a pose and a ghost of that pose comes into the viewport.
From here, the user can manipulate the ghost pose around. They can translate it or rotate it or whatever. This way, if you have a character walking through space, and you wanted your start and end to be the same, you could place the ghost of the walk pose at the end, and snap it, and you'd know it would be the same!
So, I moved this idle pose over to the left, and also rotated it. Now all I need to do is hit snap and the character will snap to that pose.
Nice! So what does the ghost pose look like? Well, the whole thing is super simple. All of the character geometry follows a naming convention. When the user wants to create their pose, It duplicates all of the character geometry in that pose, combines the meshes and deletes the history. From there, it places a locator in the positions of all the controls, including the root. It makes the new mesh the shape node of the root locator, and parents all other locators under the root. So when you are moving the ghost pose around, you are moving all of the locators around too. The snap script is simple as well. Just a bunch of xform querying and setting!
That's it!
Reader Comments