Intento comprender como funcionan los gestores de graphicos de un motor. Por ejemplo si un npc tiene asociada una animacion, conforme yo lo hago es:
el fichero del npc tiene el nombre del fichero de la animacion a cargar en el gestor graphico. 
class Cnpc_ : public Cnpc
{
   Canimation* animation;
   load(fileNpc)
   {
       fgets(fileAnim);
       animation = CgraphMan::loadAnimation(fileAnim);
   }
}
class CgraphMan
{
   unsigned loadGraphic(fileGraphic);
   Canimation* loadAnim(fileAnim)
   {
      Canimation* anim = 0;
      anim = get(fileAnim);
      if (!anim)
      {
         anim->loadFromFile(fileAnim);
         anim->m_Graph->m_Id = loadGraphic(anim->m_Graph->FileGraphic);
      }
      return anim;
   }
}
este es la estrutura, hay otra forma de hacerlo?