Shop Forum More Submit  Join Login
Where it's at

My Scene Mods:
   Review -- A commander reviews his mounted troops
   2 Vintage Aircraft Scenes -- start the engine and warm it up.
   Dwarf Inspection -- A commander inspects his/her dwarven troops (dwarf costume and anm included).

My Hats Mods:
   Vintage Aviator Helmet for civilian pilot costume (goggles up and goggles down)

I was planning on including my Giant mod, but I am missing the FLM file.  I'll have to reconstruct it before I can upload it.
Start And Warmup  by lefty2016

The Video

I finally have two vintage airplane scenes working in The Movies Game.  One is a scene in which the plane is hand propped to start the engine and in the other the two pilots are sitting in their cockpits while the engine idles.  Click on the link to see a demo.  Turn on your sound to get the full effect.

All of the files needed for these two scenes (excluding the set dressing) can now be downloaded at  The set dressings (hangar props) came from sexymaria.
The Movies animation files (*.anm) contain bone animations and prop animations.  Bone animations use an armature and the location and orientation of each bone is specified for each frame in the animation.  Since most armatures have lots of bones and animations can have hundreds of frames, that amounts to a lot of data.  In order to save space in the files, the key frame data is compressed to fit into a 16 bit signed integer.

    int16 = float/compression

where "compression" is the largest absolute value in the data.

For rotation data, the range of angles is restricted to -180 to 180.  The compression factor is 180, so all stored values are between -1 and 1.  Since any angle can be reduced to the range -180 to + 180, the compression value for angles never changes.

For location data, however, the situation is more complex.  It is desirable to use as small a compression value as possible because that gives more precision in specifying location, but in any case, the compression value must be set so that the compressed values all lie between -1 and 1.  The solution is to scan the location data for the animation, find the largest datum, divide all values by the largest absolute value, and save that value as the compression factor.  When you read the data from the file, you only have to multiply each compressed value by the compression factor to recover the original floating point data (with some loss of precision).

When we edit an ANM file, it is easy to exceed the dynamic range allowed by the original compression factor from the file we read in.  If the compression factor is too small, the out of range data will be truncated to either -1 or +1.  While working on my airplane prop animations, I was forced to deal with this problem because when I tried to put a pilot in the front seat of my Jenny prop, I could not move him high enough off the ground without exceeding the dynamic range of the compressed data.  I had to hack the target file to increase the compression factor.

However, a better way to avoid data truncation problems is to modify the export script to compute the best compression factor for each animation and use that to output the modified ANM file.  You can then freely move the character or prop around the stage, or up and down.  The downside is that the higher the compression factor, the lower the precision of the stored data and closeups might get a little jerky, so don't overdo it.

The bottom line is a new version of anmexport (v. 5.1.4) is now available which will compute the optimum compression factor for each animation in the target file.  You can download the latest package with the updated anmexport script at the link below:

The Movies Game
One of the tasks associated with scene editing is re-positioning and reorienting
actors and animated props on the set.  Scene Re-blocker is useful if you want to move
an entire scene or rotate it by some amount.  FlmFileReader (aka flmreaderzero)
permits one to obtain numerical data on the locations and orientations of objects in
the scene and edit that data.  Calculating the scene coordinates can be tedious, but
while working on my airplane startup animation, I stumbled on a useful trick.
Navigation within a scene is controlled by Action blocks or Mopath blocks.  The action
block specifies an animation to be played as well as a position and rotation.  The
Mopath block specifies an animation to be played and start and stop positions and

We can "setup" a scene's elements in blender by importing the mesh objects for the
actors and props, and then positioning them using the data obtained from
flmreaderzero.  The position coordinates are in meters, and the rotation value is in
radians, so convert rotation to degrees and enter them into the Transform Properties
menu. You can then relocate any actor or prop in your blender scene and then read the
set coordinates directly from the transform properties menu (hotkey N) in object mode.
You can then enter these new coordinates into the action block in flmreaderzero and
save the FLM file.

Here is an example.  I wanted to move the pilot in my airplane scene to the nose of
the plane so he could hand prop the engine.  The coordinates of the airplane prop at
engine start up were x = 2.418 meters, y = -7.85 meters , and rotation = 2.566
radians.  In blender you can import the airplane prop and position using these
coordinates.  Next, take woody, and place him at the nose of the plane, like he was
going to hand prop the engine.  You can then read the required coordinates from the
Transform Properties menu.

It works pretty good.

Before, the pilot is posed for the helicopter:
Tailsitters by lefty2016

Blender setup:

Blender Setup by lefty2016
We pose the pilot in front of the plane, ready to hand prop.  The Transform Properties menu gives the
coordinates to be entered into Action Block 645.  Replace "heli_pilot_startup.anm" with the new edited
animation and save the FLM file to the Movies game folder.

After reposing the pilot at the front:

Plot Startup by lefty2016

A similar procedure can be used to move the passenger into the front cockpit where
passengers belong in the Jenny.

This is a lot faster than my old technique of cut and try, cut and try, cut and try.
This is the third in a series of videos on creating prop animations using helicopter animations as a template.  The original scene is heli_rotor_start.flm which shows a helicopter starting up before flight.  The scene uses two animation files, heli_rotor_start.anm and heli_rotor_idle.anm.  The first animation shows the rotors beginning to turn at low speed, then the second animation shows the blurry rotor which represents the rotor turning at high speed. 

In the course of the video, we will take our jenny airplane prop, which consists of a fuselage and a propellor, add the blurry rotor to it, and then edit the animation files to show the airplane propellor spooling up and then starting to idle at high speed.  Basically, we are dismantling the helicopter model and the airplane model, and then reassembling a new airplane model than contains three parts, a fuselage, a propellor, and a blurry rotor which represents the fast moving propellor.

Once an animated prop is created in this way, you can take any helicopter animation file and modify its animations to animate your new animated prop.

Mod Madness Part 3

Scripts used in this project are:
The previous journal entry presented a video called Helicopter Morph to Airplane which outlined the different phases of transformation of a helicopter scene into an airplane scene.

The next video, Mod Madness Part 2, gets into some of the nitty gritty about making these transformations.
The heli_rotor_start.anm animation file contains animations for the rotors in both discrete and blurred form.  It also contains animations for different kinds of helicopters.  The group names are used to match the animations to the objects that are to be animated.  You can have animations in the anm file that are not used if the object they apply to, identified by group name, are not present in the mesh.  An object can also have a flag to make it visible or invisible.

There are 12 static animations in "heli_rotor_start.anm," one for each of the 12 animatible objects.  You can replace any of the mesh objects with your own mesh and you can edit the animations as desired.  You can delete any any mesh object you do not need and the unused animations in the ANM file will be ignored.  This scene is a great template for building new scenes with special effects.

My current project is to develop a process for creating complex prop animations starting with the helicopter start scene and a feasibility study shows that it is a practical way to proceed.

Lessons Learned:

1. Don't forget to create an extrainfo file for your mesh if you are going to animate it.  If you do not do this, the prop will appear, but it will not move.
2. Don't forget to create a propblueprint file for your prop, or it may not show up in the game.

The accompanying video shows a series of steps gone through to morph a helicopter scene into an airplane.  The process is not complete and detailed instructions are not included.  This is a feasibility study and an attempt to show the way forward.  More information will be provided as time goes by.

Helicopter Morph to Airplane
Talking Head Video

The link will take you do a demo of a lip sync test of a script for importing papagayo lip sync files in MOHO format into Blender and applying them to Movies Game heads.  As described in my previous journal entry, I created lip and jaw poses for a head (it was generic_facial_skin) to match the "Moho mouth" pictures.  I then saved the rotation and location data and wrote a script that would read the papagayo file and set the face bones according to the MOHO switch codes.

It appears to work, but I learned to my dismay that it works best for the head you use to create the original face poses.  I used generic_facial_skin to create the face poses, but when I applied them to a starmaker head they looked okay, but not quite the same and not as good.  So perhaps it will be necessary to customize the face poses for different heads.

The system works like this:

1.0 Create 10 facial poses for the MOHO mouths

Moho Mouths by lefty2016

in frames 1-10 of blender using whatever head you want (warning: you need to reassign
the lower teeth vertices to the fa_jaw group so the teeth will move with the jaw).

2.0 Run a script (generate_visemes) which writes out some python code to initialize a viseme dictionary.  This code is  pasted into a script called importmoho.

3.0 Run papagayo to create a moho switch file for a line of dialogue.  Use the graphical user interface to align the words with the waveform of the sound, then export.

4.0 In Blender, load your head (with teeth regrouped to jaw) and run importmoho to animate the head.  You can import the wav file you used in papagayo into blender using the sequence editor.  When you play the timeline, you can see the lips move and check out the timing.

At present, the script only uses a subset of the headbones, those around the lips and the jaw bone.  You can load another animation and apply the lipsync animation on top of it without affecting that which has already been loaded.

You can download papagayo for free and use it to create your lip sync animations.  I will make the python scripts and available for download once they have been adequately tested.
My original intention when I got involved in The Movies Modding was to use the game content as a source for graphics assets to make animations and ultimately videos using Blender.  We can import props, sets, costumes and character heads from the game and now we can also import costume and prop animatiions, including horses, dogs, and so on.  The one big thing the game does we cannot yet do in blender is recreate the facial expressions and lip syncing that the game can do, so I am looking into the possibility of using conventional methods to provide these capabilities for Blender animation using The Movies assets.

The Movies Game heads imported from Blender come with bone controls for facial features which are presumably for the purpose of creating expressions and lip syncing.  There is a free program called Papagayo which can be used to generate a file with a list of frame numbers and phonemes from text.  It includes the capability to import a sound file to assist you in  aligning the phonemes with the sound track.  The package includes a set of images which show the mouth expressions for the various phonemes.

These are called "Moho Mouths" because the program is intended to interface with the graphic animation software Moho.  Some animators use this software to lip sync in Blender using a script that reads the Papgayo output file.

Here is an example of the output, which is the line: "I....I forgot where I parked my car."  The numbers are frames and the letters are the names of the phonemes.

2 AI
6 rest
21 rest
22 AI
23 rest
23 rest
24 FV
26 E
28 etc
31 AI
33 etc
35 rest
35 rest
36 WQ
38 E
40 etc
42 rest
42 rest
43 AI
45 MBP
47 AI
49 etc
56 MBP
59 AI
61 etc
63 AI
66 etc

Here are the mouth expressions for each phoneme.

Moho Mouths by lefty2016

So what we need to do is create facial poses for each of the 10 Moho phonemes, using the pictures as a guide, and
write a script to set the face pose for each of the key frames in the Papgayro output file.  If we are willing to be really cheesy, we could just create two poses, moth open and mouth closed.  Do you think anybody would really care?  Probably not.

One thing I noticed looking at The Movies heads is that there is an object consisting of teeth with a "throat" backdrop.  In the game, when the actors talk, the lower teeth move.  The teeth, as imported into Blender are weighted to the controls for the lower eyelids for some reason.  I don't understand that.  If you reassign  them to the jaw control, the lower teeth can be made to move up and down like the chin, which makes sense.  There are bones to move and reshape the lips as well as move the jaw up and down, so by regrouping the lower teeth to the jaw, there is sufficient control to reproduce any of the above facial phoneme expressions.
A mesh file for a prop may consist of one or more objects which can be
individually moved and rotated using keyframe animation.  In order to animate
the prop, an animation file (*.anm) is required which contains a static
animation for each prop object.  The mesh file contains a list of group names for
the individual objects and the animation file must contain a static animation
with a matching group name for the object to be animated.
A scene file (*.flm) is usually designed to work with a group of props of the
same type, e.g. blades, bats, guns, et. cetera.  A group of compatible props is
defined with an *.ini file in data/props folder.

Example: bashing.ini


Any compatible prop you have created can be added to such a list and used in
a scene.  You can add an incompatible prop to this list and it will animate, if
the mesh group names match the anm group names, but it will probably not look

If you are creating new, interchangeable props, you can create your own prop
group list like mine:

Example: planes.ini



1.0  The first step is to create a prop.  It may consist of one or more mesh
objects.  Each mesh object must be inside an empty pivot object.  The group
names  needed for animation can be set inside the ID property browser on the
"objects"  dictionary.  You can use the same group names as used  in the target
animation file which you will be using.  On the scene list, the flags
"has_static_anim, has_shapes, has_childmesh, has_rooms" should be turned on. 
Once this is done and the tm_preflight script gives you a green board, you can
export the mesh and inject the prop into game using MED.

(note: Mesh objects in the game have a section called "convex hull."  If you
import to Blender and then export it, the "convex hull" data will be lost.  This
does not appear to cause any problems, as far as I can tell.  I have no idea how
this is used in the game, if indeed it is used.)

2.0 Once your prop mesh is ready and has been committed to the game, you can
create the animation you want.  You need to have an existing anm file (I call it
the target file) with the same number of armatures and static animations as the
one you want to create.  Begin by importing the target animation file, then
modify the animation as desired.  If you want, you can delete all the action
keys and start building your animation from scratch.  The only restriction is
that with exportanm5.1.1 and earlier, you cannot change the number of frames in
the animation.  Before exporting the animation, make sure the grpNames for each
prop object in the ID  property browser matches the corresponding group in the
mesh file. You can change these later, if you wish.

3.0 Create a new scene using flmreaderzero and edit the names of the prop list
and animation names used by the scene.
If you re-import an animation to blender for additional editing, you may
sometimes find that it will not play in blender.  Before giving up, try saving
and reloading the blend.  If it plays in blender the same as it did in the game,
you can proceed with your edits, then export the animation with anmedit(5.1.1).
Sometimes you can speed up the process by directly editing the mesh and anm
files in a hex editor, such as 010 Editor, but you need the Lionhead Movies
template files.  If you need to fix the group name in the mesh file or animation
file, this is the quick way to do it.  If you forgot to set a flag in the anm
header or mesh header, this is the quick way to do it.

Here is the file structure for my animated airplane scene which shows a
guy sitting in the plane with the prop turning.  Not all of the pieces are in
place, but enough has been done and tested to prove that it will work.

  +-- scene
  |     |
  |     +-- 001  (rural field)
  |     |    |
  |     |    +-- 001_plane_warmup.ini
  |     |
  |     +-- interactions
  |           |
  |           +-- 001
  |                |
  |                +-- 001_plane_warmup.flm  
  +-- props
  |     |
  |     +-- planes.ini  (p_jenny_v1, p_jenny_v2)
  +-- setdressing
  |     |
  |     +-- p_jenny_v1.ini
  |     |
  |     +-- p_jenny_v2.ini
  +-- meshes
  |     |
  |     +-- p_jenny_v1.msh
  |     |
  |     +-- p_jenny_v2.msh
  +-- textures
  |       |
  |       +-- thumbs
  |               |
  |               +-- props
  |                       |
  |                       +--
  |                       |
  |                       +--
  +-- animations
        +-- high
              +-- plane_warmup.anm

This structure can be expanded indefinitely to create as many scenes as you
want.  You can add plane props, flm's, and anm's as required.

It's a work in progress.

Also, had to update the exportanm(5.1.1).py again.  I found it necessary to remap all euler angles to the range (-180,180) during  export.
I found out why the static animation edits in blender were not being exported.  A corrected script has been added to which can be downloaded at MoviesGame.  The new export script is labeled version 5.1.1, so just re-download the package to get the update, then check the contents to make sure that anmexport(5.1.1).py is in the package.

This update is a fix to version 5.0 which failed to load static animations correctly if the prop name was too long, due to a limitation in blender.  In version 5.0, the anm import script matched the static animation set with the prop object by checking to see if the prop name was contained in the object name.  This works okay if the prop name is not too long, but if it is, the object name, which is generated when the mesh is loaded using by prefixing a number, such as 00, 01, etc. to the prop name, will be truncated.  If the name is truncated, the import script will not be able to identify the correct object.  The object names are unique because of the incremented prefix, but the embedded prop names will not be unique.

The solution is to create a dictionary linking prop objects to prop names when the meshes are loaded.  It turns out that does this for you in the ID property browser when you import the mesh.  Version 5.1 uses the object dictionary in the ID property browser to match the static animation data with the prop object to which it applies.  If you look at the code, the logic that locates the object is the function "get_empty()" which is called with the prop name as an argument and it returns a pointer to the object with that prop name.

The same function exists in the matching export script, so a new export script, anm_export(5.1).py was required and is included in the latest update.  The support module, is included in the update package but it has not changed.

There is a bug in the import script which I have not been able to fix yet, but there is a simple work around for it.   The helicopter animation is complicated because it contains animation data for both large and small helicopters and it contains animation data for the rotor as well as the motion blurred image which is displayed when the rotor is running fast.  When you load the large helicopter and apply "heli_rotor_start.anm" it creates empties for the small helicopter rotor blades which are missing.  When you try to play the animation, the empties will rotate but the rotors will not turn.  To work around this situation, you can delete the empties (not recommended because then you will not be able to export) or you can save and reload the blend.  I don't have a clue why this works, but it does.


You can download the update from the link.
While following up on the helicopter animation as discussed earlier, I found a bug in version 5 of importanm.  I managed to patch the program to make it load the helicopter animation, but it is still a little buggy.  Nevertheless, I did get a chance to experiment with Blender's motion blur effect and I made a flash video of the result.
Helicopter Start
I am interested in creating some early aviation props and costumes for The Movies.  I worked through the basic prop tutorial at sexymaria's angelfire site the point where I was able to inject a textured cube into the game.   That wasn't too hard, but it was a confidence builder so now I am about to tackle something more ambitious, an airplane prop.
Bi Plane Hat by lefty2016

Above is a blender render of a 3d model biplane exported from poser to a 3ds file, then imported into blender 2.49b using the supplied python script.  Not too much done so far.  I got it scaled up to The Movies game scale which is about 2.5x compared to the poser scale and I reapplied some of the textures.  I don't care much for the color scheme, but I'll work on that.  I need to figure out how to make the propeller rotate around its center.   

I am also going to need an old-time leather aviator hat from the pre WW2 era.  The image inserted in the corner of the picture is an example of a german style helmet, I believe.  It needs goggles.  Guess there will have to be two versions, one with goggles up and one with goggles down.

Pilot Mesh by lefty2016

Here is a low poly poser model of a pilot.  I managed to import him into blender, peel off the hat and goggles and
fit them onto "generic_head." 

Fit To Head by lefty2016

This is the result, without the lenses in the goggles.  Haven't applied a texture to it, just a brownish color.  A bit crude, but I was really pleased to learn how easy it is to edit a mesh in blender.  Much easier than poser. 
I originally bought the download versions of The Movies and The Movies S&E years ago, but when I moved to a Windows 8 machine, I found that the download version would not install, so I ordered a disk version from Amazon and installed it.  However, I found that it would not start, even with the disk in the drive.  I found by experimentation, however, that if I copied over the executable from the download version, the program would run, even without the disk in the drive.  For the last year and a half, I have been using that no cd executable.

Today, however, I did some research online and found that this problem is due to the Windows update KB3086255 and Microsoft has a  workaround for the problem of getting certain older games to run.  You can read it at the link, but I would like to report that I was finally able to get the disk version to run today using the following procedure:

Open CMD window as administrator by right clicking on a cmd shortcut and select "run as administrator."

Then enter the command: sc config secdrv start= demand.

Place the disk in the drive and execute the cd version of the movies (be patient, it takes a few seconds).

It started and it is working.  This may not be a permanent fix.  This "secdrv" dooby will probably  go away after you reboot your computer, but you can always restart it if you want to run a cd version.  This method should work for other old games that have this starting problem in Windows 7,8, and 10.

I shall probably keep on using my no cd executable from the download version, but it is good to have an alternative if you need it.
Yesterday I was interested making a mod to a costume, f_pilot_civilian, so I fired up MED thinking I would load the costume and see what went into it.  To my horror, the costume did not appear in MED.  It took some digging to find out what the problem was, so I am writing this note to document what I learned and share with my fellow obsessives.

In order for a category to appear in MED, it must be listed in the category.ini file.  The
category.ini file is extracted from the PAK files, but that can be overridden by a
category.ini file installed in "The Movies/data/costume" and that file can be overridden by a
category.ini file installed in your workspace.

Example:  If we have a category.ini file in the MED workspace and we remove the category
"military" from the one in the workspace, when we start MED, it no longer lists "military" in
the category options for costumes.  Files are read in the order PAK, costume folder, and
workspace folder, and the last file read completely replaces any earlier version.
Which is nice, in a way.  If you want to experiment with categories, you can do it in your
workspace folder and leave your game/costume folder intact.  
Before editting category.ini file, make sure there is no conflict with the one in your work

rule 1: The active category.ini file must list a category, or it will not appear in MED.

rule 2: In order for a costume to appear in MED, it must be listed in the
"category_category.ini" file.  For example, if you want a costume, say f_pilot_civilian to
appear in the "work" category, then "category_work.ini must contain the name of the
f_pilot_civilian.cos file (extension is omitted in the category_*.ini file).

I also learned that MED cannot extract the *.ini files for the Stunts & Effects upgrade to The Movies (read this).  You can download a modified set of ini files at the link, but you still need to edit the individual categories to make sure all of the costumes you want to edit are listed.  Finally, make sure there are no conflicts with anything in your MED workspace, otherwise you will wind up like me, beating yourself over the head and wondering why your changes don't show up MED.
From Start to Finish with ANM Edit Version 5.0
ANM Editting

The link will take you to a video tutorial which illustrates the complete process of editting an animation file from the Movies Game.  The video shows how to create a new scene from an existing scene, how to import the animation for that scene into Blender, how to update the animation, and how to export the animation to a file which is compatible with The Movies anm file format.  Also show is how to change the name of the animation file in your new scene using FLMREADERZERO.
This version can import  anm files which contain prop animations.  The corresponding export script has been rewritten in object oriented form for greater maintainability.

When importing animations, you need to have an armature for each bone animation, but you do not need to have the prop animation in the scene.  If the required prop is not present in your blender scene, the script will create an "empty" and store the animation data in that object.  If you look at the outliner, after importing the animation, you will see which empties were created. 

Ideally, you would import all of the armatures and props needed before running the anm import script, but if you don't know which meshes to import, you can just start with one armature and add enough armatures to make the script run.  Once the script runs, you can look at the names of the props needed and hunt through the various mesh files looking for the correct prop.

You may have a problem finding the mesh associated with all of the props.  For example, when I import the anm script "crouch_mgun_idle.anm" it requires three props, called "gun_ca_", "bullet_ca_", and "load_ca_".  Almost any gun prop will work, but I have not been able to find a mesh for "bullet_ca_" or "load_ca_".  That is why the script was given the ability to create an empty to store the data for the missing prop.  That data will be needed when you export.  You can even edit the prop data, if you like.  No telling what will happen, but you can do it and maybe you will find out.

To download the latest anm edit package, go to Lefty's Movies Game Blog  and download version 5.0.  For a demonstration video of this product, please see my previous journal entry, WIP: Static Animations
Many animations include a prop such as a gun, a book, a glass, or a cigarette.  I am working on adding the capability to ANM import scripts to import static animations for props.  An example is "mgun_firing.anm."  The file contains animations for actor and gun prop.  The static animation has the name "gun_ca_" embedded in the static animation header and this matches the name on the container object which is created when you import a machine gun mesh into blender using 

The static animation data is fairly simple in structure, compared to bone data; it is just a list of positions and angles.  I tried assuming the position and angles used the same coordinate frame as blender and it apparently works okay.  A demonstration video import_demo shows how to use the script and to create a sequence of machine gun animations in Blender.  You need to load a rig, such as woody, and the machine gun prop (I used the AR-15), and run the script.

So watch the video to get an idea of how it is going so far.