After 2012->2013 upgrade, actors are missing textures

Hi,

I just upgraded from FaceFX 2012 to 2013.2. When I open any 2012 .facefx actor file, the actor model is untextured. For example, I opened Doug.facefx from the old, pre-Mecanim Unity FaceFX integration project, and everything works fine except the model is untextured.

How can I get the textures back onto the model?

Permalink

I think what you are seeing is a problem specific to Evolver (now Autodesk Project Pinocchio) content created for FaceFX 2012. Let me know if I'm wrong. The issue is that FaceFX 2012 shipped with the following Material file, but it is absent in FaceFX 2013:

FaceFX Studio Professional 2012\Ogre\Resources\Materials\Scripts\Evolver_FaceFX_Material.MATERIAL

The Doug.Material file references this Material file, but it can't be found. As a result no materials are loaded. In your Logs tab, in the Ogre section, you will probably see warnings like: 'OGRE EXCEPTION(6:FileNotFoundException): Cannot locate resource Evolver_FaceFX_Material.MATERIAL in resource group "

You can fix this by copying the Evolver_FaceFX_Material.MATERIAL file into the equivalent folder in FaceFx 2013. You could also re-export the Ogre files from FaceFX 2013.

For reference, I have pasted the contents of the material file below.
--------------------------

material shadowCaster
{
// Material Defaults.
//set $alpha_reject "0.5"

technique
{
pass
{
vertex_program_ref shadow_caster_vs
{
}

fragment_program_ref shadow_caster_ps
{
//param_named iAlphaReject float $alpha_reject
}

texture_unit
{
texture Black.png
}
}
}
}

material /Evolver_FaceFX_Material/Default
{
// Material Defaults.
set $alpha_reject "0.5"

set $maxLights "8"

set $scale "1 1"
set $scroll "0 0"
set $shininess "128"

set $defaultDiffuseMap "White.png"
set $defaultSpecMap "Black.png"
set $defaultNormalMap "Flat.png"

set $ambientCol "0 0 0 0"
set $diffuseCol "1 1 1 1"
set $specularCol "0 0 0 0"
set $emissiveCol "0 0 0 0"

// Main technique. Diffuse, specular and normal mapped in shaders.
technique Main
{
pass Ambient
{
ambient $ambientCol

vertex_program_ref ambient_vs
{
}

fragment_program_ref ambient_ps
{
param_named iScale float2 $scale
param_named iScroll float2 $scroll
}

texture_unit diffuseMap
{
texture $defaultDiffuseMap
}
}

pass Directional
{
max_lights $maxLights
scene_blend add
iteration once_per_light directional

vertex_program_ref diffuse_directional_normal_shadow_vs
{
}

fragment_program_ref diffuse_directional_specular_normal_shadow_ps
{
param_named iScale float2 $scale
param_named iScroll float2 $scroll
param_named iShininess float $shininess
}

texture_unit diffuseMap
{
texture $defaultDiffuseMap
}

texture_unit specMap
{
texture $defaultSpecMap
}

texture_unit normalMap
{
texture $defaultNormalMap
}

texture_unit
{
content_type shadow
tex_address_mode clamp
}
}

pass Point
{
max_lights $maxLights
scene_blend add
iteration once_per_light point

vertex_program_ref diffuse_point_normal_shadow_vs
{
}

fragment_program_ref diffuse_point_specular_normal_shadow_ps
{
param_named iScale float2 $scale
param_named iScroll float2 $scroll
param_named iShininess float $shininess
}

texture_unit diffuseMap
{
texture $defaultDiffuseMap
}

texture_unit specMap
{
texture $defaultSpecMap
}

texture_unit normalMap
{
texture $defaultNormalMap
}

texture_unit
{
content_type shadow
tex_address_mode clamp
}
}

pass Spot
{
max_lights $maxLights
scene_blend add
iteration once_per_light spot

vertex_program_ref diffuse_spot_normal_shadow_vs
{
}

fragment_program_ref diffuse_spot_specular_normal_shadow_ps
{
param_named iScale float2 $scale
param_named iScroll float2 $scroll
param_named iShininess float $shininess
}

texture_unit diffuseMap
{
texture $defaultDiffuseMap
}

texture_unit specMap
{
texture $defaultSpecMap
}

texture_unit normalMap
{
texture $defaultNormalMap
}

texture_unit
{
content_type shadow
tex_address_mode clamp
}
}
}

// Fallback technique, fixed-function, diffuse map only.
technique
{
pass
{
ambient $ambientCol
diffuse $diffuseCol
specular $specularCol
emissive $emissiveCol

texture_unit diffuseMap
{
texture $defaultDiffuseMap
tex_coord_set 0
colour_op modulate
scale $scale
scroll $scroll
rotate 0
}
}
}
}

Permalink

Thanks! I just dragged the FBX into FaceFX and that appears to have fixed it, but I'll keep these other solutions in mind for the future.