Moho is an animation application made by Lost Marble. It has now changed its name to "Anime Studio", but I don't have that since Moho serves me well. Moho (and Anime Studio) is a proprietary program, available for Windows, MacOSX and GNU/Linux. It is very simple to set up in Ubuntu.


Moho is completely focused on 2D animation, and it is completely vector based (raster images, for instance those made in the GIMP, can be imported and manipulated, but not as much as the built-in vector system). The only area where it is significantly lacking is frame-by-frame work, but it boasts other features such as bones, which can use dynamic physics and inverse kinematics (if you know what these terms mean then you will know how much easier they make animating!). It also has limited support for 3D objects, and recommends Wings3D if you are interested in using these abilities (Wings3D is in Ubuntu's Universe repository). It has support for particle systems, layer effects like those of the GIMP, "onion skin" viewing and has an easy to use method of lipsynching which can be controlled externally with tools like Papagayo (which is Free Software and programmed in Python, also available from Lost Marble's site).

Getting Moho

Moho changed its name to Anime Studio.

Moho is/was distributed as a download which must be activated with a key to get out of the "demo mode". Demo mode adds a watermark to any rendered frames, and forces SWF output to be black and white.

Running Moho

Moho does not install itself, instead it is run from wherever you extract the zip archive. Once you have extracted it, make sure the path to the folder (and the folder name itself) does not contain any spaces, since this would stop the startup script from working. Then double clicking on the "moho" file should bring up a requester asking if you want to display the file or run it. Choose run, and Moho should come up and ask if you have a key. (If it doesn't work then right click on the moho and moho.donotrunme files in turn, selecting Properties and making sure "execute" is checked)

Making Life A Little Easier

This setup may work, but there are a few things you can do to integrate Moho into your Ubuntu system a little more.

Semi-Installing Moho

If you do want to "install" Moho then, for a single user system, you just need to make a simple shell script which will move into the Moho directory then execute Moho. This can be done by running the command:

gksudo gedit /usr/local/bin/moho

You will need to type your regular password for this command (if it doesn't work you can check RootSudo). In the text editor which appears you should put the following lines, adjusting the second line to point to the directory containing Moho:

cd /the/full/path/to/Moho

Save the file, then run this in a terminal:

sudo chmod 755 /usr/local/bin/moho

This command makes sure the new file is executable and readable by regular users.

If you want multiple users to be able to run Moho then you should put Moho's folder in a suitable location such as /usr/local/lib/moho and create a new group to own it, then put those users to whom you want to give access to Moho into that group. That can then be followed by the commands above (taking into account whichever permissions you wish to implement) to create a system wide program.

Launching Moho Easily

Moho can now be run from a terminal by simply using the command moho. This is nice and easy, but to make it even easier you can open up the Menu Editor by right-clicking on the Ubuntu logo next to "Applications". In there go onto the Graphics menu, then add a new entry. Put its icon as the PNG file included in Moho's archive, put its command as simply moho and give it a name Moho and a suitable comment. After accepting your changes take a look in the Applications->Graphics menu and you should see Moho (if not try running killall gnome-panel). Now Moho will not only appear in the menu, but it will also appear in utilities such as the Deskbar, and remember that you can drag Moho from the menu onto the desktop or panel to create extra launchers.

Moho On Ubuntu - Tips And Tricks

There are a few things to keep in mind when using Moho on Ubuntu (or any GNU/Linux system).

The first one is sound. New versions of Moho no longer rely on Apple's Quicktime to handle sound internally, which is good news since the GNU/Linux version can now at least handle sound. However, it is still not perfect since Moho does not use a sound system capable of utilising ALSA, which means that Moho may need to be run without any other audio program running (the Enlightened Sound Daemon can sometimes sort this out itself, but is hit-and-miss). If you find that Moho doesn't give you sound in your previews then close the program, make sure nothing else is using sound (make sure you do not have a webpage open which uses Flash, since this is often the cause of sound problems) and maybe even stop any ESD processes using the command:

killall esd

Then restart Moho and you should have sound. (This also applies to Papagayo!)

Moho's built-in vector tools can be a little awkward, and it would certainly be a very bad idea to use Moho for static images, when the likes of Inkscape offer better, easier vector drawing abilities, and are Free Software and already in Ubuntu. However, Inkscape cannot animate its SVG images. If you are more comfortable drawing your models and scenes in Inkscape than Moho (which is probably quite likely), then you can save your Inkscape images in Adobe Illustrator format (making sure to save any parts which you want to keep separate in Moho on their own, eg. separate files for left leg, right leg, etc. if you want to animate these independently), then import those files in Moho and they will appear as Moho-native vectors in their own layers. This is not foolproof, since colours can often get mangled, and the resolution of the vectors' control points can be very low, but Moho's tools are adequate at vector manipulation and new points can be added easily.

An important point is to do with rendering and output. Moho cannot assume that your Ubuntu system has programs like Mencoder, VLC, Transcode or other video encoding programs, and this is a good thing too, since Ubuntu doesn't come with these programs by default. The problem comes when you DO install these programs, because they won't be used Sad :( The most useful output formats are SWF (Flash animation) and PNG images. You will have to do a little fiddling with the output, whichever one you choose. If you use PNG then you may want to use MPlayer to combine them into a movie file with a command like:

mplayer mf://*.png -mf type=png:fps=YOUR_FRAME_RATE -vo yuv4mpeg -ao null -nosound

This will build the rendered PNG images, at YOUR_FRAME_RATE per second, into a movie file called stream.yuv (YUV is lossless, so it is a good choice as an intermediate file format) which you can then add sound to and convert to another (much smaller!) format (I would recommend using ffmpeg2theora).

For SWF output I would highly recommend getting your hands on SWFTools. They are Free Software, but are not in Ubuntu yet (I have added them to the package candidates list though).

A useful set of commands for adding a soundtrack to a Flash file (Moho can only output certain types of MP3 in SWFs, so I prefer this method) would be (NOTE: Add the "-d" option in the wav2swf command to make a sound event instead of a sound stream. This makes it work better in Free Software SWF players like Gnash):

wav2swf -r YOUR_FRAME_RATE -o soundtrack.swf -b YOUR_PREFERRED_BITRATE soundtrack.wav
swfcombine -o soundtrack_sized.swf -dX YOUR_MOVIE'S_WIDTH -Y YOUR_MOVIE'S_HEIGHT soundtrack.swf
swfcombine -Tzo movie_with_sound.swf movie.swf soundtrack_sized.swf

And combining multiple scenes into a final movie would be done with a command like:

swfcombine -mo final_movie.swf scene1.swf scene2.swf scene3.swf [...] sceneN.swf

This command can include as many files as you want.

SWFTools obviously have much more power than this, but sadly features like replacing specified movieclips/symbols with other SWF files (useful, for example, with avi2swf if you want to display a movie file on a TV screen in your movie) is useless with Moho, because it uses its own file type and relies on the Ming library for SWF export, which makes giving symbols/movieclips specific names virtually impossible.

Also remember that SWF is still a closed format, and Lost Marble cannot extend its functionality in any way. That means that many of Moho's features (like warping images with bones, for example) cannot be outputted to SWF, since SWF does not support any such capability. Also, many of Moho's features which can be exported to SWF, for example 3D camera movements/rotations, have to be exported on a frame-by-frame basis (unlike, for example, 2D movement, which just needs to tween between a couple of keyframes). This results in huge SWF files (SWF is mainly used on the Web, so this is not desirable) which can be very hard to render on slow machines, so beware. If the worst comes to the worst and your SWF output becomes too large and complex to handle, you can always make it into a regular movie then use avi2swf to embed that into an SWF file similar to the likes of YouTube.

See Also

Moho Forum - The official forum for Moho and Papagayo

Papagayo - A Free Software lip-sync tool for use with Moho

Yolo - A Free Software alternative to Papagayo (but it does not offer any advantages as far as I can tell)

Synfig - A Free Software animation program (not in Ubuntu yet, but it is a candidate)

Ktoon - Ditto, but not quite as powerful/professional

Flash4Linux - An attempt to copy Adobe's interactive slideshow program Flash

SWF Format Specification (PDF) - May be useful to see exactly what SWF can handle

SVG - Scalable Vector Graphics is an open standard for vector graphics. It is already used heavily throughout GNU/Linux systems (for icons, etc.) but also offers animation capabilities which are potentially far more powerful than SWF (however, there are few players for its animation capabilities. Opera is probably the most complete, but Adobe has an old viewer, and KHTML supports it a little). SVG can also be scripted in any programming language, since it is an XML standard. You may want to keep your eye on its adoption and development.

Moho (last edited 2010-04-22 09:17:00 by bilbo)