Game Development Community

Movie Animation Scripts

by Scott Miller · in General Game Discussion · 06/24/2004 (8:56 am) · 2 replies

I made a perl script to take a collection of files and make a .movie script out of them. If any one's interested, it might save a bit of typing and error checking.
-Scott

=================================================
Make Reaction Engine Animation (mkreanim)
=================================================
#!/usr/bin/perl

$NumberArgs=@ARGV;
if ($NumberArgs < 4)
{
print DAT "mkreanim [files to use] [movie file] [movie name] [speed]\n";
print DAT "outputs a reaction engine movie\n";
exit;
}

$MOVIEFILE=@ARGV[1];
$MOVIENAME=@ARGV[2];
$MOVIESPEED=@ARGV[3];
$MOVIEFRAME=0;

$dirtoget=".";
opendir(IMD, $dirtoget) || die("Cannot open directory");
@dirfiles = readdir(IMD);
closedir(IMD);

$i=0;
foreach $NAME (@dirfiles)
{
if ( $NAME =~ /$ARGV[0]/ )
{
@LISTFILES[$i]=$NAME;
++$i;
}
}

$LISTFILES_LENGTH = @LISTFILES;

if ($LISTFILES_LENGTH == 0)
{
print "no files matched regexp @ARGV[0] \n";
exit;
}

open(DAT,">>$MOVIEFILE") || die("Cannot Open File");
#print DAT DAT @raw_data;
#close(DAT);

print DAT "movie $MOVIENAME =\n";
print DAT "{\n";
print DAT " cast = \n";
print DAT " {\n";

$dirtoget=".";
opendir(IMD, $dirtoget) || die("Cannot open directory");
@dirfiles = readdir(IMD);
closedir(IMD);

$i=0;
foreach $NAME (@dirfiles)
{
if ( $NAME =~ /$ARGV[0]/ )
{
@LISTFILES[$i]=$NAME;
++$i;
}
}

foreach $NAME (@LISTFILES)
{
++$MOVIEFRAME;
$NEWNAME = $MOVIENAME;
$NEWNAME =~ s/$/$MOVIEFRAME/ ;
print DAT " bitmap $NEWNAME = { file = \"$NAME\"; transparency = 255,255,255; }\n";
}

print DAT " }\n";
print DAT " speed = $MOVIESPEED;\n";

$MOVIEFRAME=0;
++$MOVIEFRAME;
$NEWNAME=" frame X \"start\" = \n";
$NEWNAME =~ s/X/$MOVIEFRAME/;

print DAT "$NEWNAME";
print DAT " {\n";

$NEWNAME = $MOVIENAME;
$NEWNAME =~ s/$/$MOVIEFRAME/;

print DAT " keyframe \"$MOVIENAME\" = \n";
print DAT " {\n";
print DAT " layer = 13;\n";
print DAT " actor = $NEWNAME;\n";
print DAT " position = 0,0;\n";
print DAT " scale = 1,1;\n";
print DAT " }\n";
print DAT " }\n";

shift(@LISTFILES);

foreach $NAME (@LISTFILES)
{
++$MOVIEFRAME;
$NEWNAME = $MOVIENAME;
$NEWNAME =~ s/$/$MOVIEFRAME/;
print DAT " frame $MOVIEFRAME = { keyframe \"$MOVIENAME\" = { actor = $NEWNAME; } }\n";
}

++$MOVIEFRAME;
print DAT " frame $MOVIEFRAME = { goto = \"start\"; }\n";
print DAT "}\n";

close(DAT);

#1
06/24/2004 (10:22 am)
Nice to see some activity on the Reaction Engine forum. :) What are you making with it?
#2
06/24/2004 (11:07 am)
Mostly I'm just taking a look at it, but possibly some sort of educational program.