Using Poser to Create Characters and Animation
From Multiverse
| Creating and Importing Models |
|
Creating Assets • Creating Collision Volumes • Exporting Models to COLLADA • Targeting a Wide Range of Hardware • Model Conversion Tool • Creating Material Scripts |
| Using 3ds Max |
|
Using the 3ds Max Export Tool Creating Attachment Models Creating Morph Animations Transferring Biped Skeletons Implementing Vertex Lighting |
| Other Tools |
|
Blender: Static Model • Blender: Anim. Model • Blender Physics • DeleD: Static Model • DAZ Studio: Creating Characters • DAZ Studio: Avatars • Using Poser |
Poser at [1] is 3D Character modeling and animating software. It costs under $200. It has thousands of users and lots of free and reasonably priced content for 3D worlds. This tutorial will show you how to use Poser to export a 3D Character with animations to Multiverse and place it in your world as a selectable character. It will not go in detail on how to use Poser, as there are many great tutorials on the web and included with the software for the overall use of the tool. It will describe how to take these assets in Poser and get them to MV. This will require the same tweaks to a couple of Multiverse python programs that I created for the DAZ importing tutorial to make it work correctly and I have included this new code within that Wiki.
Contents |
Creating initial character
To create a character model:
- Start Poser.
- Import a model and rig it. For the model, you can use one of the models provided with Poser or purchase one of the Poser bundles with models.
- This tutorial uses the standard base avatar that I will make publicly available as a Poser model with the release of my Character Factory in May. I will post how I got this avatar from Blender to Poser (rigged it and skinned it), if there is interest in the community for on how to do this.
You can modify this character as you wish in Poser using their powerful editing features, but, for this tutorial I will take it "as is".
Exporting the model to COLLADA format
To export a model, simply choose File | Export | COLLADA.
Export a single frame:
Unselect the Ground and make sure the body is selected as we only want to save the figure and nothing else.
Accept the Default Export Options:
Name the file:
The Character is now exported to a COLLADA (.dae) file. I called it lbs.dae. This character is pretty basic as it has no textures applied to it and is just the mesh. I have another tutorial showing how to put on a skin and clothe the character in Poser.
Importing the model
Use the Multiverse COLLADA Import Tool to convert the .dae file to Multiverse format and import it into your Multiverse asset repository. Select to create mesh, material, skeleton, physics and textures.
You could bring the mesh in world as an asset if you just want to take a look at it at this point by importing using the asset importer. But, we want to use it as a player character. So, we need to do some more things.
Create Animation for Character
Animations are attached to characters through their skeleton. So, in this portion of the tutorial we will add an animation to our DAZ character and import it into Multiverse. When first adding a character you should create an animation named "idle". This is because the Character Factory and Sample Character Creation is expecting to have an idle animation when characters are first displayed for selection on the first screen you see when running the Multiverse Client for your world.
Since my character I am using was a Second Life avatar derivative there are literally hundreds of BVH animation files available for it. The Biovision Hierarchy (BVH) character animation file format was originally developed by Biovision, a motion capture services company (now defunct), as a way to provide motion capture data to their customers. It is a type of animation known as key frame animation. While I am using existing BVH files in this tutorial, you could just create your own inside of Poser using their powerful animation tools.
Get back into Poser with your model of your character shown in the main window. Now go to the File | Import selection and choose BVH motion and search for and select BVH files. Select a BVH file. Just choose the defaults from the options on the import.
After you import the BVH file you need to test it in the Poser. You do this by selecting the animation bar that is hidden on the bottom of the Poser screen. That will pop up an animation control. It has options for loop, rewind, play and fast forward. Just choose play to see the animation in action.
Now that you have created and tested an animation for your character in Poser you need to get animation integrated into your Multiverse Avatar. You do this by first exporting the Poser Character with the animation to a new DAE file. I named the file testidle.dae. Now you need to create a batch file that you will use over and over for creating animations. Get into your Multiverse Tools / Multiverse Model Viewer directory. Copy your skeleton file named lbs.skeleton from your skeletons folder in your Multiverse Client/ Worlds/ <yourworld> folder. Also, copy the DAE file for your animation that you just created named testidle.dae into the Multiverse Tools / Multiverse Model Viewer directory.. Now create a batch file named testAnim.bat in the Multiverse Tools / Multiverse Model Viewer directory.. Enter the following as the command:
ConversionTool --base_skeleton lbs.skeleton --animation idle testidle.dae --out_skeleton lbs.skeleton
This will call Conversion Tool and apply the animation in the testidle DAE file and save it as a new skeleton file, I used the same name lbs.skeleton so it just saves over the original skeleton file. The parameter after the --animation is the name that you want to use for the animation in Multiverse. I used the same name testmale.skeleton. After this batch file runs your skeleton now has the idle animation. This overall process is described of adding animations with Conversion tool is discussed in http://update.multiverse.net/wiki/index.php/Model_Conversion_Tool. Now copy the lbs.skeleton back into Multiverse Client/ Worlds/ <yourworld>/ Skeleton over your old skeleton file.
You can test this new lbs model with it's animation using model viewer. Get into model viewer and load your lbs mesh. Click on the animation tab. You should see the idle animation listed. Click on the animation name to highlight and then click play and watch your model do the animation.
Follow the same process to add more animations. As a minimum, you need to add a walk animation so that your avatar will look fairly normal when you first bring it into your world to test it. Always remember to copy the skeleton back to your world to make sure it gets the animations.
Putting Your Character in the Character Selection Screen
This next section will talk about how to get this animated character into your character creation factory and then into your game. The current Character_Factory and SampleCharacterCreation python code was written to utilize the characters that have been brought in following a specific exacting format. Unfortunately, your DAZ avatar you just created will not follow this format because of some things that ConversionTool did when creating the mesh in terms of naming submeshes. So, I have rewritten parts of SampleCharacterCreation.py and Character_Factory.py to be more generic and handle both the default Multiverse Characters from Sample World and any other character you bring in from tools like DAZ. You can get this code at http://mymultiverse.com/download/.
Once you have downloaded this code and installed it over the existing code, you will need to change it. First go into SampleCharacterCreation.py and find the meshInfo variable at the top of the program.
meshInfo = { "human_female.mesh" : [[ "bodyShape-lib.0", "human_female.skin_material" ],
[ "head_aShape-lib.0", "human_female.head_a_material" ],
[ "hair_bShape-lib.0", "human_female.hair_b_material" ]],
"human_male.mesh" : [[ "bodyShape-lib.0", "human_male.skin_material" ],
[ "head_aShape-lib.0", "human_male.head_a_material" ]]}
Now get back into the Model Viewer and open your mesh. Go to the submeshes tab. For each, submesh look at the bottom of the screen and write down the mesh name and the material name.
Now create your meshInfo information and insert it into the variable as follows:
meshInfo = { "human_female.mesh" : [[ "bodyShape-lib.0", "human_female.skin_material" ],
[ "head_aShape-lib.0", "human_female.head_a_material" ],
[ "hair_bShape-lib.0", "human_female.hair_b_material" ]],
"human_male.mesh" : [[ "bodyShape-lib.0", "human_male.skin_material" ],
[ "head_aShape-lib.0", "human_male.head_a_material" ]],
"testmale.mesh" : [[ "geometry.1", "lbs.Material_lowerbody" ],
[ "geometry.0", "lbs.Material_Upperbody" ],
[ "geometry.2", "lbs.Material_Head" ]]}
Now cut and paste this meshInfo variable setting code from SampleCharacterCreation and paste it over the code in Character_Factory.py. Save both these files. Go back into SampleCharacterCreation.py and add the following code to make your model selectable.
original code:
self._male_models = [ 'human_male.mesh' ]
modified code:
self._male_models = [ 'human_male.mesh' , 'lbs.mesh' ]
Save the python file. At this point, if you had brought in the modified code and then made the modifications for your new character you should be able to go into Multiverse and when you hit create in the login screens and then toggle through the male models, you should should see two models with the second one being yours. If you didn't use the modified code from me it will not work because the current SampleCharacterCreation.py file in the distributions doesn't work for adding more than one character per sex.
If this is a new animation that is not one of the default animations, such as walk, run or idle, you need to add a client command handler to the extensions_proxy.py as described in Defining Command Handlers. I have done this and added a number of animations. It is fairly straightforward to do.
Summary
At this point, you have:
- Created a character in Poser,
- Exported it as a Collada DAE,
- Imported it into Multiverse as a mesh, material and skeleton,
- Created an animated character in Poser using an imported BVH file
- Exported the animation as a Collada DAE
- Created and run a batch file that adds the animation to the original Multiverse skeleton
- Gotten and installed my more generic versions of SampleCharacterCreation.py and Character_Factory.py
- Modified the python scripts to use your created characters by identifying new displayContexts
- Added a Client Command Handler for the animation if it is not a standard animation name
- And lastly have a new character type from DAZ with animations successfully in Multiverse for players to choose from
This took me about a month to figure out, so any questions, just message me in the forums. Most of my time was spent building python scripts in Blender to ease the creation of the basic figure for Poser (automatic rigging and skinning). The export to Multiverse was pretty much the same as what I had done in DAZ to MV.
How I have used this in action is I generally get all my animations for my character done in Poser to start with. Then I write a pretty big animation batch file with all the skeleton creations in it. I will tend to reuse this batch file over and over, as I will create many characters but still want to reuse the animations on all of them. This way I can have many different looking characters, but, they all have the same movements in-world.











