MovieCube

From Platinum Arts Sandbox Free 3D Game Maker
Revision as of 16:30, 17 January 2010 by Mike (Talk | contribs)

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.

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 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.

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

high resolution capture with glc (linux)

glc opengl capture


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.

Record Demos