Shop Forum More Submit  Join Login
×


September 20, 2018:

I now have a better version of the Blender 277 animation import script for "The Movies." 

The more I learn about the new Blender the more I like it, although I still have a long way to go to use it efficiently.  The best thing about it is the availability of a large community of current users who are cranking out tutorials and answering questions for users on message boards.  The process of learning about the new Blender has actually increased my understanding of how the old (2.49b) version works.

In order to complete the current script, there were two major difficulties to overcome.  The first one was the absence of a simple file selector dialog.  Apparently you are expected to write your own, but that is a really big step.  Fortunately, if you dig through the manuals, you will eventually find some sample code which you can incorporate into your own script application and that is what I have done in this second version of "load_anm." 

The second big problem I had in developing this prototype script was the absence of the ID property browser which comes installed in 2.49b.  The animation files may contain bone animations as well as prop animations.  The prop animations are tagged with "group names" which match the group names in the mesh files.  The mesh import script for 2.49 associates these names with the mesh object as custom properties and you can use view these names in the ID property browser.   When importing the ANM file into blender, you can use these group names to identify which prop animation data goes with which object.

When you open the blend file in blender 2.7, the group names are still there, but without an ID property browser, the only way to access them is using python code.  You can do this interactively in the python console or you can write a script to do it for you.  It would be nice if some one would write an ID property browser for Blender 2.7; the old code can be found in the Blender 2.49 scripts folder.

Anyway, the latest animation import script for Blender 2.7 has a file selector and it can handle props.  In order to use it, you have to import the mesh objects from "The Movies" using Blender 2.49 and save them as blend files.  You can then open the blend in Blender 2.7 to run this script.

This script works much like the old one.  When importing a bone animation, it uses the number of bones in the armature to determine which armature to apply the data to, and when importing a prop animation, it uses the object group name (grpName) to identify the prop.  If there is no matching prop, the script creates an "Empty" object and applies the animation data to it.  Many prop animation sets include data that is not used in a particular scene, so you can delete these  unused empties after the import.

One major difference between this script and importanm(5.1) is the "append" function which required setting a flag in the ID property browser.  In load_anm, running in Blender 2.7, the animation is always keyframed starting at the current frame start setting.  To append animations together, set the start frame to the end of the previous animation before running the script.  Then you can set it back to 1 to play the entire sequence of animations.  The demo video posted above shows several machine gun poses featuring Woody and the AK47 prop.

The scripts are included in this zip.








I have Windows 7 running on Virtual Box, just because I like to play Freecell, which was not available on windows 8.  I installed "The Movies" on there, but it would not start.   That was some months ago, but today, I thought I would try something crazy.  What if we edit the registry to make it run in windowed mode?

Here is the result.


When I first became interested in Blender, I downloaded the then latest version, which was 2.77 and that is what I now have.  At present, we do not have scripts to import Movies Game assets directly into Blender 2.77, however we can import mesh files in 2.49, save the blend and then open it in Blender 2.77.  Unfortunately, the animations in a Blender 2.49 blend file are not compatible with Blender 2.77, so if you open a 2.49 blend that contains animations, the mesh files and textures are loaded okay, but the animations are lost.  Likewise, if you open a Blender 2.77 blend in Blender 2.49, the mesh objects and textures are loaded okay, but any animations in the 2.77 blend will be lost.

[ 9/10/2018:  The statement above that animations in a 2.49 blend file are lost if opened in blender 2.77 is incorrect.  This weakens the case for rewriting the anm import script for the new blender python API, but it still seems to be worth doing as a way of learning the new blender python API.  I apologize for putting out false information without adequate verification.  The error may have been fortuitous since it motivated me to dive in to Blender 2.7 and get my feet wet.]


Blender 2.49 appears to be well suited to the task of creating modifications to the Movies Game and if that is all you want to do with Movies Game assets, there is little reason to upgrade to a later version because you would need to rewrite the mesh import/export and animation import/export scripts.  On the other hand, if you would like to make videos or games in blender which incorporate Movies game assets, it might be desirable to use Blender 2.7 or later for that purpose.  Support for Blender 2.49 is waning, while Blender 2.7 and later versions is strong. Based on my own experience, I have found that it is easier to get good looking renders in 2.7 than in 2.49.  People have done some great looking stuff in 2.49, but if you are going to spend a lot of time learning about materials and lighting and animation, it would be better to invest that time in the newer version.  The Blender 2.77 Game Engine seems to work better for me than the Blender 2.49 Game Engine.

The mesh import scripts originally written for 2.49 are much more complex than the animation import scripts, and we can work around that, so the only requirement is to rewrite the animation import script in order to use those animations in Blender 2.7.  After some analysis, I have found that rewriting the animation import script for Blender 2.7 looks much easier than rewriting the mesh import script.

The animation import scripts I have written, are based on Gleem's legacy code, and they consist of three parts.  The first part comes directly from Gleem's code and this part does not require any blender python functionality. This section parses the anm files and stores the rotation and location data for animations in a python data structure.  The second part transforms the Movies Game animation data into the Blender coordinate system and the third part applies the location and rotation data to the blender object and sets key frames for each bone and prop object for the entire animation.

After working on the problem for about three days, I have a primitive version of an anm file importer for Blender 2.77.  A short demo video is posted below to show some early results.




The green screen aviation scenes require the Vintage Aviation Pack, which can be downloaded on the same page.   Actually, it is only one scene, but the addon includes the Ryan-NYP model which is interchangable with the Jenny, in this scene.  First install the vintage aviation pack,then install the green screen addon, on top of that.


In a previous journal entry, "Magic of the Movies Game," I reported observing "Look At Behavior" in at least one FLM file (001_group_move.flm).  The discussion of that observation led to the question "What data element in the FLM file triggers this behavior?"  I think I may have at least a partial answer.

Header by lefty2016

The header of the file 001_group_move.flm shows four actors, the lead is Actor 1 and the 1st support is Actor 1090.  If we trace the flow of the Ref to Next Item ID filed from Actor 1 to the next block, we soon arrive at the following type4 block number 1197:

Lead Type4 by lefty2016
 Note that item 28 is the ID of the first supporting actor.  Could this block be telling the actor to interact in some way
with the first support?  Hmmm.

If we follow Actor 1090 from block to block, we arrive at the type4 block 1196:


Support by lefty2016
If we look in slot 28 we see the number 1 which is the ID of the lead actor.  Hmmm.  What if you change 1090 to something else?  How about -1?  Maybe that
turns off the effect.  So I tried it.  When you play the scene, the lead actor does not look at the supporting actor.  The two other actors in the scene do not use any type 4 blocks and they walk straight without turning their head.

The number in slot 29, immediately after the actor ID, is the time the "look at" option is in effect.  It appears to be in miliseconds.  If you
increase that number, the actors continue looking at one another for about 2 seconds.

The game is afoot!  Anybody who has a copy of flmreaderzero can play.
















I have managed to adapt another Emmanuel Berringer model (the Spirit of St. Louis) to The Movies Game and I found that it works in my existing "flying along" scene.  The scene has a pilot and a passenger (it was adapted from the helicopter scene) but while the pilot animation works for this prop, the passenger animation doesn't.  The mannikin is inside the gas tank, so if you put a costume on him, you still can't see him.

Anyway, I made a little video to showcase the flying scene using Jenny and Ryan-NYP (Spirit of St. Louis).



I wasn't able to get the Wright Whirlwind engine model included in Berringer's model to work.  It was too complicated and had too many triangles to export to the game.  Anyway, all you can see are the tops of the cylinders sticking out of the fuselage.  So I replaced the engine with 9 plain black cylinders as placeholders.  The propellor animation for the jenny does not work for the Ryan-NYP, but the prop is hidden inflight.  I left the blurry rotor out.  My own experience suggests that you can't see the spinning prop most of the time, unless the light is just right.  There is a solution to the prop animation, however.  There are 10 unused animation channels in this animation; eventually I intend to use one of these to animate the Ryan-NYP prop.  That would make the animation file compatible for this scene with both the Jenny and the Ryan-NYP.
Download Version 3 of the TMG GUI here.
Readme file has been updated with installation instructions and user notes.


Introduction (New version with fewer goofs):


Creating a Rescaled Character:


Inserting your character into the game:


Creating a Scene for your Rescaled Character


If you have questions, you can post them here or on the individual videos at Vimeo.


Here is a clip that demonstrates some effects.



It turns out you don't need the rescale_arm.py script to make a giant or a dwarf.  Awhile back Dib asked me if we could do it without that, and it turns out you can.

Here is a simplified procedure (no scripts required) to make a baby gorilla:

1.0 Import the gorilla mesh into blender.
2.0 Unparent the mesh object from the armature object.
3.0 Select the armature and rescale it in the properties menu to .5 for all three axes.
4.0 Use Object->clear/apply  to make the scale change permanent.
5.0 Select the mesh object and set its scale the same as the armature.
6.0 Use object->clear/apply to make the scale change permanent.
7.0 Re-parent the mesh to the armature.
8.0 Change the name of the armature (e.g. 507812352 can become 527812352).
9.0 Run tmpreflight.py
10.0 If all is well, export the mesh.
11.0 Use MED to inject it into the game.

Here is a video tutorial of this process.



I don't see how this could happen, but it did.

There is a scene called "Group Move."  It shows four characters walking along.  At one point, two of the characters make eye contact, then walk on.  I set out to modify this scene by changing two of the characters into half size characters.  I dug out my rescalable dude mesh, shrunk it to half size, then exported it to the game.  I created a copy of the Group Move scene called Group Move with Dwarf and rescaled the walk animation for the half size characters.  Everything worked fine.  Then when I compared the two scenes I noticed something weird.
Eyecontact Level by lefty2016
Here is a screen shot from the original scene when the two actors make eye contact.

Eyecontact Down by lefty2016
Now here is the same moment with the half size characters in the scene.  Notice the full size character is looking down at the half size character, and the half size character is looking up at the full size character.  How did the actors know where to look when they are just dumb algorithms?  Somehow the game did this.  I had nothing to do with it.

I can't find anything in the FLM file that trigger this behavior.  It is a mystery.

This update is to correct a bug in anm_import module which prevents the script from loading an animation if it contains no bone animations.

You can download the zip from my dropbox (I hope) and replace the module anm_import.py in the Blender scripts folder with the one in the zip, or you
can simply correct the error yourself by editing the script you have.

About line 382 in anm_import.py you should find the command raiseIOError "No Bone Animations Loaded."  This should be deleted or commented out.  It was put there by me for debugging purposes and I forgot to remove it.  Sorry about that.

Also, I have added a user note to the readme file.

User Notes:

If you are using the gui, before reloading the Blender default settings, stop the script by hitting escape in the gui.  Failure to do so may lead to Blender crashing when you attempt to execute a tool from the gui.

I have been using tmg_gui for  awhile now, and while it is not ideal for all purposes, I find that it can be a great time saver for many repetitive, routine tasks.  You might be surprised how much time we spend in the file selector navigating through the various folders.





The Vintage Aircraft Package has undergone a complete overhaul.

This package  uses the new JN4 "Jenny" model by Beowulf71 which is optimized for
The Movies Game.  Since this model is incompatible with the old Berringer model,
this is intended as a complete  replacement.  All future scenes for this aircraft
will be based on this model.  All meshes and textures for the old model should be
discarded.

The update is available at lefty2000.com/TheMoviesGame.

From there, go to My Scene Mods to download the complete package (rev 3).



Jenny V00 by lefty2016



This is a follow up to the previous article, "TMG Category Files" in which I had concluded that if you wish to add a new costume to a category, you need the game category file so you can edit same and add your costume to the list.  Unfortunately, no one seems to have those category files;what we have are the category files from the baseline game which do not include the S&E costumes.  One solution is to add the S&E costumes to the list when you add your mod.  That way you will have your mod and not lose any content from the category.  This is easy if you can figure out the costume file names (*.cos) for the corresponding S&E costumes.  There are only two S&E costumes in category_military, and they were easy to identify, f_pilot_us_nam, and m_pilot_us_nam, so it was easy to reconstruct the .ini file for that category. 

Foolishly, I then set out to recreate all of the category_.ini files for all categories so I could add new costumes to any category without losing any S&E costumes.  Also, MED would then be able to recognize those costumes and they could be extracted from the game for editing if so desired.  Alas, it turned out to be a harder task than I was willing to undertake.  Some categories have quite a few S&E costumes and the *.cos files are not so easy to identify.  It's possible, but it would be a lot of work.  It would be nice if someone would do that, but I decided to look for another solution.

One possibility is to avoid messing with the category files would be to create new categories for your modifications, so I decided to try creating a new category called "Fantasy" in which I would place giant and dwarf costumes.  I looked at a couple of examples I had of mods people had made which created new categories and tried to follow the apparent recipe, but for some mysterious reason, the game would not recognize the new category.

I had added the  following to category.ini:

[category_fantasy]
    cat = Fantasy

It took awhile to figure out what was wrong.  What was wrong was that I did not understand what that second line was for.  I had named my category definition file "category_fantasy.ini"  That second line was supposed to tell the god damned game what god damned file to load.  When I finally realized my error, and renamed "category_fantasy.ini" to "Fantasy.ini," the category appeared in the game.

But Lionhead wasn't done with me yet.  After a successful test run, I was prepared to celebrate having learned something, so I started shutting down the game.  Instead of a graceful exit, however, I got that dreaded message from Microsoft: "Your stupid program has stopped working."  That's not supposed to happen!  I could not live with that.  So I  abandoned my attempt to create a new category Fantasy for several months, but finally I decided to try again, with a different category called Aviation which would include Beowulf's new aviator costumes.  The same thing happened, the new category worked fine, but the game crashed on exit.  After some experimenting I found that problem is caused by having a costume appear in more than one category.  I removed Beowulf's costumes from the category military and the crash on exit went away.  I restored my category Fantasy, removed the giant and dwarf costumes from where I had originally installed them, category_future and category_monster (giant gorilla).  No more crash on exit.

We learn from our mistakes if the consequences are serious enough and we can learn from the mistakes of others.  Also, it is a good idea to write down what  you have learned in case you forget it.  That's what this is.

The category files are loaded from the PAK files, if there is no corresponding category file in the game directory.  If you wish to add a new costume to this category, you will need to copy the baseline category file to the game directory and add your new costume to it.  The name of the new costume is the name of the .cos file, without the suffix.  For example, f_pilote.cos would be listed in the category_military.ini file as "f_pilote" and "m_pilot.cos" would be added as "m_pilot." 

If there is no category_military.ini file in the game directory, the game constructs one from the PAK files, but we do not know exactly how it does this.  What we do know, is that if you have "stunts and effects" installed and there is no category_military.ini file in the game directory, there will be 2 new costumes added to the original game, the m_pilot_us_nam costume and the f_pilot_us_nam.  The baseline category_military.ini file does not include these two costumes, so if you add a new costume to this category, you will need to add the S&E pilot costumes to the list as well as your new costume.  If you do not do this, when you add your new costume, the S&E costumes will disappear from the game, but your new costume will appear.

This is probably true for any category, so if you modify any category file, be sure to check to see if all of the S&E costumes are explicitly listed before you copy your new category file to the game directory.

If you use Movies Editor to extract the category files from the PAK files, you will find that the category file extracted does not necessarily include the S&E costumes.  Again, if you need to create a category file for a mod, you MUST explicitly enter the names of the S&E costumes in the new category file in addition to your new costume.

Blah, blah, blah.

More bad news.  The Blender 2.4 manual is no longer listed in Blender Wiki.  I have searched the site for it and have not been able to find it.  The 2.4 blender python API was still there, as of this morning.  I happened to have on my hard drive a PDF version of the manual and you can obtain if here.
I am out of ideas, so I am making the prototype tmg_gui package available for download.



There user will need to modify the code to configure the script for his computer environment, i.e., he will have to enter the locations of mesh files, anm files, and applications into the code.  Hopefully, the enclosed readme file will explain what you need to do to make the script work on your computer with your setup.



Gui Screen by lefty2016

I have added a few more buttons to the Prototype Movies Game Graphical Interface for Blender.  These buttons allow you to run an external application from Blender.  There is a button for The Movies Editor, FLM Reader, and The Movies Game.  These buttons can be handy, but the downside is, you can use only one tool from the GUI at a time.  If you start an application, you have to close it before you can do anything else in Blender.

This afternoon I tried using the GUI to do a real job, something I have been putting off.  The new JN4 airplane model by Beowulf71 is great, but the geometry is slightly different from the old model, which sits closer to the ground.  In order to replace the old model Jenny with the new model, some adjustment to the animation files are necessary, so I decided to update the plane_warmup scene to use Beowulf's model.

To make a long story short, it worked.

You can take my word for it, or, you can watch this rough cut video of the whole process.

It took three tries to get it done, and there were a couple of Blender crashes, but I am used to that so I am not deterred.
Some of us have been kicking around the idea of using Graphical User Interfaces (GUI's) to help structure and improve the work flow (at least in part) of modifying content in the The Movies Game.  Recently, I decided to put some effort into studying the way GUI's can be implemented in Blender (2.49) using python.  This article describes my first attempt to put together a GUI to perform some basic tasks; it is not complete and will probably need to be redone in the future, but it is a work in progress and represents an opportunity to explore some of the capabilities and pitfalls of GUI's in Blender.

The script is called "tmg_gui.py" and you start it by opening the file in the text window and executing it as a python script.  The first screen shot shows the GUI running in an empty scene.

Ss Gui 01 by lefty2016
Figure 1:  The GUI is started in an empty scene.

The GUI script draws a bunch of buttons and labels in the python console window, then sits there waiting for something to happen, such as a mouse or keyboard event.  As you can see, there are currently 10 buttons.  The current blender directory is displayed as text above the buttons.  The first four buttons allow you to choose one of four predefined directories as the current blender directory.  The idea is to save some of the tedium of navigating around your hard drive in the File Selector looking for files.

The remaining buttons are there to perform a function by running some python code.  For example, if you press "Import Mesh" the GUI will run a script to import a movies game mesh file (MSH).  The script used here is virtually identical to msh_import_2009.py, but a few lines of code were changed to make it a module which can be imported into the GUI program.  With the current directory set as shown, if you press "Import Mesh" the file selector window will open in the Blender program directory and you would then have to navigate to the folder where your meshes are stored.  Instead, you can press one of the first two buttons under "Default Folders" to set the Blender directory to one of your default mesh folders.

I have the Game Meshes button pointing to "C:/TMBlender/data/meshes" which is where I keep a copy of all the mesh files extracted from the game.  The Modified Meshes button points to "C:/The Movies/data/meshes" which is where you place your modified meshes to make them available in the game.  Let's import Woody to simulate an action we might take in creating a mod.  First, press "Game Meshes."

Ss Gui 02 by lefty2016
Figure 2: Press Games Meshes sets the Current Directory to folder containing unmodified game meshes

Nothing much happens except the window now indicates the Current Directory is "C:/TMBlender/data/meshes."


Ss Gui 03 by lefty2016
Figure 3: Pressing Import Mesh causes the file selector to open in the current directory.

Let's just type in "woodenman.msh" and get on with it.

Ss Gui 04 by lefty2016
Figure 4: Select the MSH file to import just as you normally would


Ss Gui 05 by lefty2016
Figure 5: It worked!  So far so good.

Now let's try the TM Preflight test.

Ss Gui 06 by lefty2016
Figure 6: TM Preflight Test results displayed in the browser.

This is basically the standard tm_preflight.py script, slightly modified to be run as a module inside the GUI.

Ss Gui 07 by lefty2016
Figure 7: Pressing the "Game animations" button sets the working current blender directory to our animations folder.

Ss Gui 08 by lefty2016
Figure 8: Press "Import ANM" button and the file selector opens in the current directory.

We select the idle_male.anm file for import.

Ss Gui 09 by lefty2016
Figure 9: The idle male animation is imported.

What you have seen is no more than a crude prototype, a test module, intended to illustrate some of the possibilities for use of Blender GUI's for managing and modifying The Movies Game digital assets.  I don't plan to distribute this very early version but I would like to hear from potential users of such a tool and find out what ideas and suggestions they might have for future development.

Thank you for reading.

PS:
I am including a copy of the "gui_example.py" script which demonstrates basic functionality in Blender GUI's such as a toggle button or a text input capability.  This is the template I used in starting the development of the prototype described in this journal article.
#---------beginning of code
import Blender
from Blender import Draw, BGL

mystring = ""
mymsg = ""
toggle = 0

def event(evt, val):    # the function to handle input events
    global mystring, mymsg

    if not val:  # val = 0: it's a key/mbutton release
      if evt in [Draw.LEFTMOUSE, Draw.MIDDLEMOUSE, Draw.RIGHTMOUSE]:
        mymsg = "You released a mouse button."
        Draw.Redraw(1)
      return

    if evt == Draw.ESCKEY:
      Draw.Exit()                 # exit when user presses ESC
      return

    elif Draw.AKEY <= evt <= Draw.ZKEY: mystring += chr(evt)
    elif evt == Draw.SPACEKEY: mystring += ' '
    elif evt == Draw.BACKSPACEKEY and len(mystring):
      mystring = mystring[:-1]
    else: return # no need to redraw if nothing changed

    Draw.Redraw(1)

  def button_event(evt):  # the function to handle Draw Button events
    global mymsg, toggle
    if evt == 1:
      mymsg = "You pressed the toggle button."
      toggle = 1 - toggle
      Draw.Redraw(1)

def gui():              # the function to draw the screen
    global mystring, mymsg, toggle
    if len(mystring) > 90: mystring = ""
    BGL.glClearColor(0,0,1,1)
    BGL.glClear(BGL.GL_COLOR_BUFFER_BIT)
    BGL.glColor3f(1,1,1)
    Draw.Toggle("Toggle", 1, 10, 10, 55, 20, toggle,"A toggle button")
    BGL.glRasterPos2i(72, 16)
    if toggle: toggle_state = "down"
    else: toggle_state = "up"
    Draw.Text("The toggle button is %s." % toggle_state, "small")
    BGL.glRasterPos2i(10, 230)
    Draw.Text("Type letters from a to z, ESC to leave.")
    BGL.glRasterPos2i(20, 200)
    Draw.Text(mystring)
    BGL.glColor3f(1,0.4,0.3)
    BGL.glRasterPos2i(340, 70)
    Draw.Text(mymsg, "tiny")

Draw.Register(gui, event, button_event)  # registering the 3 callbacks
#----------- end of code

Run the script in a text window so see what it does.
KateWilson by lefty2016

"Kate Wilson" is a Blender implementation of one of my "Starmaker" heads.  I used the the head import script from Sexymaria to import the mesh, but all that gives you is the mesh shape and armature; you need to reapply the materials and textures yourself.  The hair is a a separate mesh, which you have to import using the standard mesh import script.  You can find out the mesh for the hair by viewing the starmaker info file that comes with the head in a hex editor and you can look at the star.hd file in your hex editor to find out what texture is used for the face.

I deleted the "eyelids" mesh for the head; no one has figured out how to make that work as far as I know.  The first real problem was the eyebrows because the basic face texture had none.  I found the eyebrows textures in the data/textures/makeup folder, but the starmaker files did not have any reference to a makeup texture, as far as I could see.  The makeup is probably an integer entry in the starmaker file, but the format of the file is not completely been decoded.  However, there is a slider on the "facial features" page that selects the facial hair and eyebrows.  The first position appears to be "no eyebrows" but slider was set for the second slot when I checked it, so that is probably the first of the eyebrows makeup textures, which is named "mup_feyebrow_v00.dds." 

One way to apply the eyebrows in blender is to use texture stacking in which you add an additional texture layer to your material.  The "mup" texture is transparent except where the facial hair goes, so if you apply it over the face texture, you get nice eyebrows.  I tried that and it works fine, but I decided it was easier to just create a texture externally that already had the facial hair applied.  You can do that in "paint.net" rather simply.  The face and mup textures are exactly the same size, so if you open the face texture in paint.net, you can import the mup texture as a second layer.  You then merge the layers and save the result as a single layered texture with the eyebrows applied and use that in blender to texture the face.

The UVW map for the eyes was edited to change the eye color from the default brown to blue.

Finally, I added some lamps to erase unwanted shadows, set up the rotation and exported the animation using AVI CodeC option in the render window.  I used the free version of Camtasia to convert the AVI file into a GIF. 

Good fun for a leisurely Sunday.
When creating an animation in Blender, it is convenient to parent a prop such
as a gun or sword to the hand bone so the prop will automatically move as the pose of
the figure changes.  The Movies Game, however, does not do things that way.  The animation
of the armature and the animation of the carriable prop are separate blocks of data treated
independently and called Bone Animations and Static Animations respectively.  In order to
export your animation from Blender to The Movies game, you must convert your completed
animation to the same structure.

This can be done using a python script I found in the Blender2.4 manual and adapted for this purpose.

A detailed description of the method is available at lefty2000 (The Movies Game)

Click on the link and read the article "Converting a Bone Animation to a Prop Animation."

Acknowledgement:
Thanks to TheMoviesGame and Beowulf71 for their valuable contributions to this development.
Apparently good lighting is crucial to get nice scene renders in Blender.  What I would like to be able to do is produce renders in Blender that are similar to the results you get in The Movies.  This would allow one to mix media between The Movies and Blender without it being too obvious.  One trick that I stumbled on uses the "emit" adjustment for blender materials.  The following images show a similar scene rendered in two ways:  One with the materials for the main figures set to Emit=0 and, using the same lighting, adjusting to Emit in the range .4-.5 for each of the materials in the figures.


Horse Walk.00 by lefty2016
Emit = 0.
The lighting scheme is really simple: there is a single spot light to give a nice solid ground shadow.  The ambient light parameter (Amb) was cranked up to around .5 for each of the materials in the figures, but it seems to have no effect that I can see.  Maybe something else is not set.





Horse Walk by lefty2016

Emit ~ .4 to .5
The other light settings are unchanged, but just cranking up the Emit parameter on each material brightens up the figures and softens the shadows.  No single setting worked best for all materials; the setting varies a little for each material.

This scene was created by importing the movies animation wes_horse_rider_walk.anm using importanm(5.1).py.  This is one of those animation files that imports very easily; it includes an animation for the human actor and the horse prop.  I used the append setting in the ID property browser and imported enough copies to yield about 5 seconds of video at 25 frames per second.  One tricky problem is that the actor costume must be loaded first,followed by the horse prop.  The script processes the armatures in the order they are stored in blender data.  If you import the horse first, the script will try to apply the animation data to the wrong armature.  I need to fix this someday.

The animation produces a "walk in place" but if you look in the ID property browser and look at the "destination" location, it will tell you how far the container empties need to move for each cycle to produce a nice walk with no foot slipping.

I made three clips at different ranges and spliced them together to make a 40 second video of the rider walking her horse through the forest.  The forest texture is from the game; I attached it to a plane for a backdrop.  The texture for the ground plane is also from the game, it is one of the standard grass textures.

The Video

The video was edited together in Camtasia.  I borrowed the forest ambience sound from the game and added a soft Gaelic themed mp3 I had on my hard drive.
I wanted to import my female pilot character into Blender and do some renders, so I imported the costume mesh.  The default texture rendered thus:
Female Pilot Costume 1 by lefty2016

But I wanted to change the color to option 3.  I tried the obvious thing which was swap the texture for the cover-alls.  This is what I got:
Female Pilot Costume 2 by lefty2016

Argh!  Now the coverall is green but so are the boots and her hands!  That's not gonna work.
While fiddling around with the green texture in the UV image editor, I noticed that when I clicked on the image (in object mode) a little box came up which displayed the RGBA values for the selected pixel.   And the pixels for the hands had an alpha value of 0, which is transparent.  It now seemed obvious that The Movies graphic engine is stacking the textures, so I had to find out how to do that in blender to reproduce the costume.

The answer is in the Doc 2.4 manual (wiki.blender.org/index.php/Doc…)

Following the text, I restored the default costume texture, then added a second diffuse texture that was linked to the green texture, on top of the original texture.

Female Pilot Costume 4 by lefty2016

If you look in the texture tab at the lower right of the screen shot, you see two "diffuse" textures.  The green texture is the second one so it is rendered on top of the red one, but the hands and boots show through the transparent portions of the green texture.

It renders thus:

Female Pilot Costume 3 by lefty2016

This is a fairly simple example, but some of the other costumes are more complex.  I am trying to import the cheerleader costume to blender.  That's not hard, but the default texture has long sleeves and I wanted short sleeves.  I am still struggling with that one.