## Stickman
Welcome to the Stickman tutorial. In this tutorial we are going to explore the the animated character __Stickman__ and we will see how we can personalized it to our needs. At the end of the tutorial, we are
going to use a new Plugin to the final project: "A voice over" player to our story
SceneMaker comes by default with an animated character called __Stickman__. This animated character is inspired by the stickmans drawn by Sarah Johnson [www.sarah-johnson.com](www.sarah-johnson.com) in the
Valentine music video from Kina Grannis shot by Ross Ching in 2012.
The __Stickman__ module comes in two flavors:
1. Just the animated character
2. The animated character with an incorporated TTS (It comes with two different TTS)
Since the TTS version is an extended version from the first one, we are going to focus in this tutorial on the second version with the TTS.
__Visual SceneMaker__ comes with a bunch of tutorials with it. In this case we are going to use the tutorial **Mary TTS**, but first lets see the structure from this project. Right click on the name of the tutorial.
This opens the project editor.
###Plugin configuration
On the left side with see all the plugins that are currently used in this project. At the moment there is only one plugin, later we will add a new one.
As we can see, the plugin **stickmanmarytts** has two agents: sussane and patrick. These are our character in the story.
Let's explain a little bit the current configuration:
* __smhost__: The address on which the __Visual SceneMaker__ comunicates with the __Stickman__ via TCP/IP. You should leave this as it is.
* __smport__: The port on which the __Visual SceneMaker__ comunicates with the __Stickman__ via TCP/IP. You should leave this as it is.
* __showstickmanname__: If this is true, then shothe names of each character will be shown in the stage. The default value is false
* __mary.base__: The path where the **MaryTTs** is located.
* __fullscreen__: If this is true, then the stickmans will be shown in __fullscreen__. The default value is false.
* __xStage__, __yStage__: The x and y coordinate where the stage will be shown. This option is usefull when we have more than one stage, and we want to place them in different locations of the screen.
also, if we have two monitors, you can place one stage in one monitor and the second stage in the other monitor. For example if our first monitor has a resolution of 800 x 600 and the second of 1200 * 600
Just set the (xStage,yStage) values on the first stage to (0,0) if you want it on the top left corner and the the (xStage,yStage) from the second stage to (800, 0), so it will be displayed in the second monitor.
These are not the only configuration options that we have available.
If you have a second Sound card or a USB speaker, you can specify from which speaker you want the characters to speak. By setting the property __audio_device__. You just need to write the name of the audio
device. You can check the name of your device in the Sound Configuration panel in your Operative System.
__Visual Scene Maker__ also comes with an older version from the stickman called "StickmanLegacy". By default the it is used the newer version, which makes use of the [JavaFX](http://docs.oracle.com/javase/8/javase-clienttechnologies.htm) technology. In case you want to use the "legacy" version you can specify also in the configuration as:
__stickman__ => StickmanLegacy. Notice that this version will not be supported anymore. At the moment we are working on a 3D version from the __Stickman__, and the idea is that you could select which flavor of the stickman you want to use.
If you are not fully satisfied by the MaryTTs result, you can use another tts that comes in the __Visual SceneMaker__, namely the [Cereproc tts](http://www.cereproc.com).
To change the tts engine, you will need to:
1. Set the property __tts__ to __cereproc__, if you want to change it back, you can write __marytts__ in the __tts__ property.
2. The location from the cereproc library using __cereproc.base__ => the path where cereproc javalib is located.
3. The license file from cereproc using __license__ => the path to the license file.
###Character configuration
Now that we have set how we want the Stickmans to behave, let's give the characters voice on this matter.
The character configuration doesn't have so many options, but since our characters are polyglot we only need to specify which voice should they have an in what language should they speak.
When we click on the specific character in the left panel from the configuration editor, we can specify which voice is the default voice of the character. Notice that you can also specify another language to be used during runtime. We will dig into more detail later.
In this case the default language is english and the voice poppy will be used. For more details on the MaryTts as well as configuration options and different voices, you can check the project under the following [link](http://mary.dfki.de/).
An animated character that can talk! That's pretty cool, but it would be even nicer if somehow we could customize these characters. No worries, that's also possible. If you right click on the plugin stickmanmarytts, there is an option __Edit Stickman__ which opens the following window.
Here are all the stickmans that are present in the project, when you choose a stickman you can go to the left panel, under __Body colour__ and choose different colors for different parts of the body. After you finish editing you can press the button __Save__.
Besides of changing the colors you can see how does the stickman behaves. In the left panel under __Emotion Expression__ you can see all the emotions that the stickman has. For a more detailed explanation of each emotion, you can check our guidance tutorial Emotion Expression in Stickman.
### Adding a __voice over__ plugin.
As a last step let's add a voice over to our example. In order to do this, go to the Editor configuration window and on the left panel click on __Devices__.
On the combo box, select the option __VoiceOverExecutor__. Under the field "Device name" we can write anything meaninful; in this case let's name it "voiceover" and finally press the button __Add Device__.
The minimum configuration for this plugin is the tts to be used, so you can configure it as the first point of this tutorial only the __mary.base__ (if you intend to use __MaryTTS__ as tts) or __tts__, __cereproc.base__ and __license__ (if you want to use __cereproc__ as tts)
.
Now the plugin is added, now we need to create an agent that uses this plugin. You will notice that under devices there is a new item, namely "voiceover". Right click on it and select the option __Add new agent__ and then configure the new agent with the voice it will use.
###Running the project.
Now that we have our stickman customized and a voice over plugin was added, it's time to see everyting working.
Close all the configuration windows and left click the project **Mary TTS**.
For adding our newly created voice over agent, lets create a new __Scene__ (if you don't know how, check our tutorial on Scenes.) like this:
```
voiceover: This is an introduction message. Have fun.
```
and place the __scene__ in the starting node.
One last remark, the line in the __SussaneWelcome__ scene ``` [set voice=de]. ``` what it does is changing the language of the character during runtime to german. For this to work, you should have set first in the configuration of the character the __de__ property to a german voice
Right now everything is set! so just press play and have fun!
Back to Tutorials Index...