MovieCube
MovieCube is a Open Source Machinima production tool, based on the Cube 2 Engine, known from the game Sauerbraten. MovieCube is part of the Platinum Arts Sandbox Free 3D Game Maker project.
Contents
What is Machinima
"Machinima (pronounced /məˈʃiːnɨmə/ or /məˈʃɪnɨmə/) is the use of real-time three-dimensional (3-D) graphics rendering engines to generate computer animation." Machinima on Wikipedia
Start MovieCube
Windows: Use the Launcher and select the MovieCube tab or click on MovieCube.bat
Linux: change into your PAS folder, ./bin/sandbox_client_32_movie
Quick Overview
As MovieCube is under heavy development, things are in change. So before you post support requests, consult this wiki. All recent changes will be announced here.
In MovieCube you can produce Live Machinima in multiplayer mode as well as working on scripted Machinima projects. You can import various model formats as md2, md3, md5 and obj. As modeling software we recommend blender, which provides exporters for these formats.
As MovieCube is based on the Cube2 Engine, known from the game Sauerbraten, you can create your own movie sets and maps with an powerfull and easy to use ingame editor also in cooperation over the net.
Tutorial on scripting commands
editmode:
- Press "E" to get into the editmode, type:
/newent waypoint
- used as waypoints and spawnpoints for characters
- attr1: character yaw when used as spawnpoint
- attr2: radius/area
/newcharacter [name]
- adds a new character definition, you can now add commands to the characters command queue
/appendactionspawn [name] [state] [waypoint map uid]
- add the spawn command to character definition referenced by param name, param state should be always 0 at the moment, param map uid is the unique identifier of the waypoint you want to spawn your character
(every map entity mapmodels, waypoints ... has a unique id, they cannot changed by users)
/appendactionwait [name] [state] [milliseconds]
- lets a characters wait for certain milliseconds
/appendactionmove [name] [state] [waypoint map uid]
- lets the character walk to a given wayoint
normal mode
/addcharacter [name]
- spawns a new character based on character definition given by name, you can repeat this several times
How to use this
- go into editmode and add some waypoints:
/newent waypoint
- add a new character definiton, a temporary character will spawn in fron of you
/newcharacharacter mychar
- add some actions:
/appendactionwait mychar 0 5000
/appendactionspawn mychar 0 0
/appendactionmove mychar 0 1
/appendactionwait mychar 0 5000
/appendactionmove mychar 0 2
- leave editmode, your temp character will disapear
- spawn a real character
/addcharacter mychar
- and another one
/addcharacter mychar
- let a character action run as loop
/loopchar = (addcharacter mychar); loopcharacter $loopchar
- The "appendaction..." commands starts with the name of the character, the state (we have only state 0 at the moment) and the parameter of the command itself, e.g. waypoint id in spawn or move or the time in milliseconds in the wait command.
- All map entities including waypoints have an unique id, use this id as last parameter in
appendactionspawn
andappendactionmode
to choose the waypoints. You will find these id's in editmode shown on top of the waypoint entities.
Character System
Manage Characters
In MovieCube you can define characters, their appearance and the actions they will do. To make a movie or animation you can spawn different instances of an character.
newcharacter name
- adds a new character to your map. In editmode the new character will spawn in front of you.
Character Commands
After you created a new character you can add commands the character will execute like change model or let the character move to a waypoint.
Character States
(not implemented) All commands you add to an charater where stored in command queue. Every character can hold different commands queues (aka states) and switch between them. The first state is created automatically when you create a new character. In States you can define different types of actions, e.g. use state 0 for configuring the character, state 1 for walk actions, state 2 for talk or interact with others. Spawned characters can receive signals forces them to change their actual state. (this does not work at the moment.)
adding and changing Charactermodels
If MovieCube starts only the default charactermodel is avabiable. To add more character models load them with the preloadplayermodel command.
registercharactermodel [path]
thirdperson 2; registercharactermodel ogre; setplayermodel 1
This will load a new playermodel and registers the animations. You can test this by changing your playermodel:
Overwrite Animation (AO)
(not fully implemented) In MovieCube you can overwrite the exisiting standard animations of an player or charactermodel. You can test this on your playermodel. If your model has an animation 50 (depends on the model you use), you can use this animation to overwrite the standard animation for e.g. swimming by using the following animation overwrite id's:
Animation Overwrites ID's:
AO_DEAD = 0, AO_DYING = 1, AO_IDLE = 2, AO_FORWARD, = 3, AO_BACKWARD = 4,
AO_LEFT =5, AO_RIGHT = 6, AO_HOLD = 7, AO_ACTION = 8, AO_GESTURE = 9, AO_PAIN = 10,
AO_JUMP = 11, AO_SINK = 12, AO_SWIM = 13, AO_EDIT = 14, AO_LAG = 15
setao 13 50
- now animation 50 is used as swimming animation
Future versions of MovieCube will provide a GUI for that.
adding Attachments
MovieCube supports adding various attachments to the player or characters. Keep in mind that the model you use has to support this. The model needs special tags to attach stuff to it. For md5 models you have to define these tags with the md5tag
command in the md5.cfg config file of your model.
md5tag [armature bone] [tag name]
- the armature bone are the existing bones of your model, the tag names are names hardcoded in MovieCube and refers to body parts.
Sample tag configuration of an model:
md5tag Head tag_head
md5tag Arm.L tag_rarm
md5tag Arm.R tag_larm
...
complete list of body parts and their corresponding tag names:
0 "Head" - "tag_head"
1 "Neck" - "tag_neck"
2 "LeftShoulder" - "tag_lshoulder"
3 "RightShoulder", "tag_rshoulder"
4 "LeftArm", "tag_larm"
5 "RightArm", "tag_rarm"
6 "LeftForearm", "tag_lforearm"
7 "RightForearm", "tag_rforearm"
8 "LeftHand", "tag_lhand"
9 "RightHand", "tag_rhand"
10 "Belly", "tag_belly"
11 "Hip", "tag_hip"
12 "LeftThigh", "tag_lthigh"
13 "RightThigh", "tag_rthigh"
14 "LeftShin", "tag_lshin"
15 "RightShin", "tag_rshin"
16 "LeftFoot", "tag_lfoot"
17 "RightFoot", "tag_rfoot"
To attach an other model to playermodel use the following commands:
(this has changed)
Record Movies
using the engine
moview 320
- set the width of your video clipmovieh 240
- set the height of your video clipmovie myclip
- record movie into file myclip.avi- type
movie
again to stop recording
high resolution capture with glc (linux)
capture a sandbox movie with glc
glc-capture --start --out=/path/out.glc --fps=25 bin/sandbox_client_32_movie -t -w1024 -h768
playback
you can use glc-play or mplayer:
glc-play /path/out.glc
glc-play /path/out.glc -y 1 -o - | mplayer -demuxer y4m -
encoding
glc-play /path/out.glc -o - -y 1| mencoder -demuxer y4m - -nosound -ovc x264 -x264encopts qp=18:pass=1 -of avi -o /path/video.avi
you can find more examples at the glc website.