Tutorial Description

The excellent dvdauthor application includes a tool named 'spumux' which allows DVD menu creation, with custom buttons.
This package, 'DvdAuthor Buttons', is a Script-Fu plugin to the GIMP, and provides some shortcuts for making menu buttons.

This tutorial's goal is to show how to:
Without further ado, here we go!

Tutorial Steps

Note: if you have an actual menu background (eg a frame from an MPEG), load it here instead, so you can align the buttons.



Tearoff Menu

"Create button layers" dialog

For this example, leave all layers checked. 
Note, only ONE layer will be shown at a time!  In my first try, I thought that the 'highlight_bl' layer would be superimposed over the 'image_bl' layer, but this is not the case.

You should now see the following layers in the Layers dialog.   ('bl' stands for button layer, in case you were wondering....)
Layers dialog showing new button layers.

Here is the result with all layers visible. You can't see the yellow, because the red 'select' image is obscuring it.


We have our first button drawn!
At this point, I want to actually define a button.  So, with the ellipse selection still active,
This will take the current selection, and use it's rectangular extents to create a rectangular path.
'Define a Button' dialog

Then, I repeated this procedure (the text, elipses, and define-a-button) for an 'Options' button.
Here is the resulting 'Paths' dialog, showing two button paths:
Paths Dialog

If you click the 'eye' icon, you can see the path in the image (the light rectangles):
Two Buttons with Paths visible

You can go ahead and move or modify these paths if you desire.  In fact, you can create your own, non-rectangular paths, and as long as you name them "button-something" then they will be treated as a button.

NOTE: I do not know what spumux will do if you overlap buttons!!!  To be safe, don't overlap!

When happy with the result:
I saved the file as "~/example/menu.xcf"
This will generate one PNG image per layer, and will generate the spumux xml.
The script takes the image's path (~/example/menu.xcf), removes the extension (~/example/menu) and then uses that as the basename for all the other files.  Therefore, in this case it will generate ~/example/menu_image_bl.png, ~/example/menu_select_bl.png, ~/example/menu_highlight_bl.png, and finally, ~/example/menu_spu.xml


File ~/example/menu_spu.xml:
<subpictures>
  <stream>
    <spu
       force="yes"
       start="00:00:00.00"
       image="menu_image_bl.png"
       highlight="menu_highlight_bl.png"
       select="menu_select_bl.png"
      >
        <button name="Options" x0="111" y0="235" x1="275" y1="337"/>
        <button name="Play" x0="127" y0="77" x1="245" y1="169"/>
    </spu>
  </stream>
</subpictures>

Note that the three images are listed in bold, and the button names have been stripped of the "button-" prefix.  EG., the path "button-Play" became "Play".

You can now use this xml configuration file directly with spumux, for example:
%> cd ~/example
%> spumux menu_spu.xml < Menu.mpg > MenuWithCaption.mpg


Tips:

Layer needs "Merge Down"


Next: On to Creating the DVD