MovieCube

From Platinum Arts Sandbox Free 3D Game Maker
Jump to: navigation, search

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. As MovieCube is under heavy development, things are always changing. So before you post support requests, please consult this wiki first. All recent changes will be announced here.

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

Starting 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

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
  • this is used as waypoints and spawnpoints for characters
  • attr1: character yaw (vertical position) 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]
  • this adds the spawn command to character definition referenced by param name.
  • param state should be always 0 at the moment
  • param waypoint map uid is the unique identifier of the waypoint you want to spawn your character. Hover over the waypoint in editmode with the mouse to see the uid. Note that every map entity, mapmodel, waypoint, etc, has a unique id and cannot be 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


An Example on How to use These Commands

  • 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 and appendactionmode 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.

preloadplayermodel [path]

thirdperson 2; preloadplayermodel 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:

playerattach 8 "items/flag" 0

or

playerattach (getattachnum LeftHand) "items/flag" 0

this will attach the model stored in packages/models/items/flags onto your players left Hand. the last parameter controls the animation of the attached model. just leave it blank, if it dont have any animation.

Command Reference

Listing of the current character commands available in Moviecube (27-09-2010)

newcharacter [name] - new character template

listcharacters - list character templates

addcharacter [name] - adds a new character based on template [name], returns a local uid

deletecharacter [name] [force] - deletes a character template

store commands in a character template:

appendactionspawn [name] [state] [uid] - set spawn point

appendactiondestroy [name] [state] - destroy character

appendactionwait [name] [state] [duration] - wait, duration in milliseconds

appendactionmove [name] [state] [uid] - move towards a waypoint

appendactionspeed [name] [state] [speed] - set character speed

appendactionmodel [name] [state] [model] - set character model, [model] = number of the model added by preloadplayermodel

appendactionsetao [name] [state] [anim] [ao] - animation overwrite

appendactionsetgesture [name] [state] [anim] - set animation for gesture

appendactionsethold [name] [state] [anim] - set hold animation

appendactiongesture [name] [state] [duration] - trigger gesture, duration in milliseconds

appendactionattach [name] [state] [body] [model] [rule] -

appendactiondetach [name] [state] [body]

appendactioncommand [name] [state] [command]

appendactioncond [name] [state] [condtional] [command]

appendactioncondwait [name] [state] [condtional]

appendactionjump [name] [state]

appendactionface [name] [characterid]

appendactionexpect [name] [characterid] [raduis]

appendactionfollow [name] [characterid] [follow characterid]

loopcharacter [name] [loop]

Special Commands

appendactionproxy [command]

saveactions

clearactions


Cutscenes

See RPG_cutscene for more info.


Record Movies

using the engine

  • moview 320 - set the width of your video clip
  • movieh 240 - set the height of your video clip
  • movie myclip - record movie into file myclip.avi
  • type movie again to stop recording

high resolution capture with glc (linux)

glc website

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.

capture with external Software on Windows

capture with external Software on Mac

Record Demos