Custom facial vertex animation from XSI into Face Poser - is it even possible ?

Custom facial vertex animation from XSI into Face Poser - is it even possible ?

Re: Custom facial vertex animation from XSI into Face Poser - is it even possible ? Posted by benmears on Thu Sep 27th 2007 at 11:55pm
benmears
6 posts
Posted 2007-09-27 11:55pm
benmears
member
6 posts 1 snarkmarks Registered: Sep 27th 2007
[size=18]Hello fellow modders. I've been trying with a great deal of frustration to create custom facial animations for my "Skeleton" character that I will be able to use and manipulate inside Source SDKs Face Poser. I'm using XSI 6.02 and have been trying to make it work by following these tutorials:

http://www.hl2world.com/wiki/index.php/Creating_facial_animations_with_VTA_files

http://developer.valvesoftware.com/wiki/Character_Setup_Overview

They've been helpful but are also kind of incomplete so I wasn't able to achieve what I wanted.

Basically, right now my workflow is:

-In XSI's Shape Manager I create different facial shapes by manipulating the vertices and then save and name them accordingly (such as "blink")

-I create a 10 frame animation for each expression where frame 1 is the normal face shape at a value of 0 and frame 10 is the newly created face shape at a value of 1 (for "blink" - eyes are open at frame 1 and at frame 10 they are closed)

-Using the SMD exporter I export each 10 frame facial animation individually as a VTA file ("blink.vta"). I've tried exporting with just the mesh selected and both the mesh and rig selected

-I modify the QC file to reference these VTAs. My current QC looks like this:
$modelname Noesis\Skeleton\Skeleton.mdl
$cdmaterials models\Skeleton
$scale 1

$model "Skeleton" Skeleton_Reference.smd {

flexfile "blink.vta"
flex "blink" frame 10
flexcontroller "eyelid" "blink" "range" 0 1

%blink = blink

}

$sequence Idle "Skeleton_Idle" FPS 30 activity ACT_idle 1

$surfaceprop "rock"

$collisionmodel "skeleton_phy.smd" {
$mass 10.0
$concave
}
I got the lines:
[/size]
flexfile "blink.vta"

flex "blink" frame 10

flexcontroller "eyelid" "blink" "range" 0 1

%blink = blink
[size=18]

from Cannonfodder's 3ds Max tutorial. There were other lines of code in his QC (take a look at his tutorial for the complete QC) that didn't work or seem necessary in mine.

-I successfully compile the model without any errors. Here it is:
C:\Program Files\Steam\steamapps\noesis3d\sourcesdk_content\hl2mp\modelsrc\human
s_sdk\Male\Group03m>"C:\Program Files\Steam\steamapps\noesisinteractive\sourcesd
k\bin\studiomdl.exe" "C:\Program Files\Steam\steamapps\noesis3d\sourcesdk_conten
t\hl2mp\modelsrc\humans_sdk\Male\Group03m\Skeleton.qc"
qdir: "c:\program files\steam\steamapps\noesis3d\sourcesdk_content\hl2mp\mode
lsrc\humans_sdk\male\group03m"
gamedir: "c:\program files\steam\steamapps\noesis3d\half-life 2\hl2"
g_path: "Skeleton"
Working on "Skeleton.qc"
SMD MODEL Skeleton_Reference.smd
VTA MODEL blink.vta
SMD MODEL Skeleton_Idle.smd
SMD MODEL skeleton_phy.smd
WARNING: Bad collision model, check your smoothing groups!!!
WARNING: Truncating model!!!!
WARNING: skeleton_phy.smd has bad smoothing groups
Model has 1 convex sub-parts
Collision model completed.
writing c:\program files\steam\steamapps\noesis3d\half-life 2\hl2\models/Noesis\
Skeleton\Skeleton.mdl:
bones 14656 bytes (54)
animations 132 bytes (1 anims) (2 frames) [0:00]
sequences 432 bytes (1 seq)
ik/pose 208 bytes
eyeballs 0 bytes (0 eyeballs)
flexes 0 bytes (1 flexes)
textures 72 bytes
keyvalues 0 bytes
Collision model volume 12997.13 in<sup>3</sup>
collision 0 bytes
total 17112
writing c:\program files\steam\steamapps\noesis3d\half-life 2\hl2\models/Noesis\
Skeleton\Skeleton.vvd:
vertices 528000 bytes (11000 vertices)
tangents 176000 bytes (11000 vertices)
total 704064 bytes
Generating optimized mesh "c:\program files\steam\steamapps\noesis3d\half-life 2
\hl2\models/Noesis\Skeleton\Skeleton.sw.vtx":
body parts: 8 bytes
models: 20 bytes
model LODs: 12 bytes
meshes: 9 bytes
strip groups: 25 bytes
strips: 27 bytes
verts: 99000 bytes
indices: 54000 bytes
bone changes: 8 bytes
everything: 153133 bytes
Generating optimized mesh "c:\program files\steam\steamapps\noesis3d\half-life 2
\hl2\models/Noesis\Skeleton\Skeleton.dx80.vtx":
body parts: 8 bytes
models: 20 bytes
model LODs: 12 bytes
meshes: 9 bytes
strip groups: 25 bytes
strips: 135 bytes
verts: 100827 bytes
indices: 54000 bytes
bone changes: 640 bytes
everything: 155700 bytes
Generating optimized mesh "c:\program files\steam\steamapps\noesis3d\half-life 2
\hl2\models/Noesis\Skeleton\Skeleton.dx90.vtx":
body parts: 8 bytes
models: 20 bytes
model LODs: 12 bytes
meshes: 9 bytes
strip groups: 25 bytes
strips: 54 bytes
verts: 99054 bytes
indices: 54000 bytes
bone changes: 472 bytes
everything: 153678 bytes
Generating optimized mesh "c:\program files\steam\steamapps\noesis3d\half-life 2
\hl2\models/Noesis\Skeleton\Skeleton.xbox.vtx":
body parts: 8 bytes
models: 20 bytes
model LODs: 12 bytes
meshes: 9 bytes
strip groups: 25 bytes
strips: 54 bytes
verts: 99288 bytes
indices: 54000 bytes
bone changes: 520 bytes
everything: 153960 bytes

Completed "Skeleton.qc"

C:\Program Files\Steam\steamapps\noesis3d\sourcesdk_content\hl2mp\modelsrc\human
s_sdk\Male\Group03m>Pause
Press any key to continue . . .
-I load the compiled model into both Model Viewer and Face Poser where it looks ok.

Now the lame part - In the model viewers I open the "Flex" tab and "blink" appears in any of the drop down boxes. I select it but when I move the slider - guess what - nothing happens!

So, basically it looks to me like the actual animation isn't being exported but the setup control for it is. I think that my QC is missing something but I can't figure out what. I've spent a loooong time trying to find solutions to this problem so now I'm throwing it out there in the desperate hope that somebody will know what I'm doing wrong and can show me the light. Maybe there's some tutorials or information on this subject that I missed and hopefully there's some minor screw up on my part. Please is there anybody out there who can help !?! I beg of you. Thanks for your time and interest.
[/size]
Re: Custom facial vertex animation from XSI into Face Poser - is it even possible ? Posted by reaper47 on Fri Sep 28th 2007 at 12:06pm
reaper47
2827 posts
Posted 2007-09-28 12:06pm
reaper47
member
2827 posts 1921 snarkmarks Registered: Feb 16th 2005 Location: Austria
The text... so... white... my eyes... :o
Why snark works.
Re: Custom facial vertex animation from XSI into Face Poser - is it even possible ? Posted by Naklajat on Fri Sep 28th 2007 at 8:58pm
Naklajat
1137 posts
Posted 2007-09-28 8:58pm
Naklajat
member
1137 posts 384 snarkmarks Registered: Nov 15th 2004 Occupation: Baron Location: Austin, Texas
Valve Developer Community said:
Warning: The export process currently works for XSI 4+ and is reported to work for 5.0, but not 5.0.1 or 5.1. There is currently no available fix for the Valve addon using the latest version of XSI.
Try opening your scene in the XSI 6 mod tool and exporting from that.
http://developer.valvesoftware.com/wiki/XSI_Mod_Tool
http://www.softimage.com/products/modtool/

o

Re: Custom facial vertex animation from XSI into Face Poser - is it even possible ? Posted by benmears on Fri Sep 28th 2007 at 10:13pm
benmears
6 posts
Posted 2007-09-28 10:13pm
benmears
member
6 posts 1 snarkmarks Registered: Sep 27th 2007
Thanks for your reply Baron. I followed your suggestion and exported all of my .SMDs as well as my single .VTA out of the XSI 6 Mod Tool. Unfortunately, I got the same unsuccessful results as exporting out of regular XSI 6. One thing I noticed is that the ValveSource tab looks pretty much the same for both the XSI plugin and for the Mod Tool. Is there really any difference between the two in relation to .SMD exporting? I'm thinking that my .QC file is incorrectly referencing my .VTA file and the animation is not getting compiled as it should. Any other ideas? Thanks a lot for your time, help, and interest Baron !!!
Re: Custom facial vertex animation from XSI into Face Poser - is it even possible ? Posted by Riven on Sat Sep 29th 2007 at 6:16am
Riven
1640 posts
Posted 2007-09-29 6:16am
Riven
Wuch ya look'n at?
super admin
1640 posts 1266 snarkmarks Registered: May 2nd 2005 Occupation: Architect Location: Austin, Texas, USA
I know model viewer may not be showing it, but have you tried referencing it in-game? HL Model Viewer has always been kinda buggy with custom stuff (for me). So if its not showing something, I don't like to think of it as the end all be all conclusion. Try setting the model up in Hammer and have a logic_auto tell it to set animation: blink (in parameters). Compile and try that.

I imagine you're making this as a prop_dynamic? We're not talking about a full fledged character npc who could be loaded up in Faceposer and have it's actions choreographed for a scene? If so, (assuming you've followed Valve's example of a biped npc skeleton and it applies to their "rules") then you could apply your animation as a "gesture" in faceposer. And with the ramp tool, (for the choreography) you can set exactly how long you want the animation to last, and what parts should be stressed more.

I don't know a whole lot about the animations for models in XSI, so correct me if I'm wrong. :smile:
Blog: www.playingarchitecture.net
LinkedIn: Eric Lancon
Twitter:@Riven202
Re: Custom facial vertex animation from XSI into Face Poser - is it even possible ? Posted by benmears on Mon Oct 1st 2007 at 4:56pm
benmears
6 posts
Posted 2007-10-01 4:56pm
benmears
member
6 posts 1 snarkmarks Registered: Sep 27th 2007
Thanks for ideas Riven ! That's an
interesting suggestion that the animation might not be showing up in
the model viewer but would show up in a compiled map. I'll have to try
that out.

The goal of this project is actually to take my custom character and
make it usable in Faceposer so it can be animated and lip synched for a
cut scene. I'm not sure if this means that it would have to be a NPC or
if it could still be a prop_dynamic. Can you load dynamic props into
Face Poser like you can with the model viewer? The character is already
rigged with the Valve Biped setup (unfortunately, no facial controls).

Thanks again Riven!