Custom In game Movies..how?

In this forum you will find and post information regarding the modding of Star Wars Battlefront 2. DO NOT POST MOD IDEAS/REQUESTS.

Moderator: Moderators

Big_rich

Custom In game Movies..how?

Post by Big_rich »

Ive searched throughout the forums here and can't seem to find a guide on how to make and insert your very own custom in game movie. Any one tired it? And if so, how? I have rad tools and can figure out how to convert the avi's but Have no idea on how to get the game to use it.

*edited*
Last edited by Big_rich on Wed Sep 27, 2006 7:35 am, edited 1 time in total.
Qdin
Old School Staff
Posts: 2059
Joined: Wed Feb 23, 2005 9:54 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set

RE: In game Movies..how?

Post by Qdin »

User avatar
Dohnutt
Hoth Battle Chief
Hoth Battle Chief
Posts: 3248
Joined: Sun Aug 20, 2006 9:25 am
Contact:

RE: In game Movies..how?

Post by Dohnutt »

I'm pretty sure he means how to make movies in SWBF2 in general...
If so, then search on Google for GameCam or Fraps. These are both very good screen recording programs.
Big_rich

RE: In game Movies..how?

Post by Big_rich »

Great Qdin, thanks! But have you figured out how to put your own custom movies in game yet?
Qdin
Old School Staff
Posts: 2059
Joined: Wed Feb 23, 2005 9:54 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set

RE: In game Movies..how?

Post by Qdin »

First of all my problem was that I couldn't find any info AT ALL about making my own movies... I have Rad Tools, and when I convert, it don't converst it into the same file as the rest of the shipped ones... :? So maybe that problem should get fixed first? :D I think I'll ask Fred one of these days if he xan help me or not :) He's awesome at explaining :)
User avatar
Teancum
Jedi Admin
Jedi Admin
Posts: 11080
Joined: Wed Sep 07, 2005 11:42 pm
Projects :: No Mod project currently.
Games I'm Playing :: Destiny
xbox live or psn: No gamertag set
Location: Indiana

RE: In game Movies..how?

Post by Teancum »

Nobody has figured out in-game movies, though we assume it's possible.
Qdin
Old School Staff
Posts: 2059
Joined: Wed Feb 23, 2005 9:54 am
Projects :: No Mod project currently.
Games I'm Playing :: I have not listed any games yet
xbox live or psn: No gamertag set

RE: In game Movies..how?

Post by Qdin »

Yeah: we AER suppossed to use the Rad tools, and it WAS possible for movies in SWBF1.

the ONLY problem is that I don't know how we should get it into .mvs.... :?
Big_rich

RE: In game Movies..how?

Post by Big_rich »

PlayMovieWithTransition(movieFileName, movieIDName, transitionTime) could it be possible to basically tell it to use a diff ingame.mvs and a diff id?
User avatar
Teancum
Jedi Admin
Jedi Admin
Posts: 11080
Joined: Wed Sep 07, 2005 11:42 pm
Projects :: No Mod project currently.
Games I'm Playing :: Destiny
xbox live or psn: No gamertag set
Location: Indiana

RE: In game Movies..how?

Post by Teancum »

Theoretically, yes. This came from the Coruscant Campaign lua:

ScriptCB_PlayInGameMovie("ingame.mvs","cormon01")

So you could probably change ingame.mvs to mylevel.mvs or whatever.

Munging the video would probably be easiest using the SWBF1 Tools and Tutorials found here at GT in the SWBF1 modding seciton
Big_rich

RE: In game Movies..how?

Post by Big_rich »

so when you do munge with the BF1 tools, does it create a .mvs file? That's where I am running into trouble, creating the .mvs file through visual munge. Without any templates it's gonna be impossible(i.e. without knowing what munge needs) I've tried adding a mlst and mcfg files to the movies directory in a test map. But it doesn't seem to reconize these files as things needed to create a munge of movies. I also tried editing a munge.bat, but aprently it needs more commands.
Big_rich

RE: In game Movies..how?

Post by Big_rich »

Code: Select all

@REM ===== Handle files in Shell\Movies\
@set SOURCE_SUBDIR=Shell\movies
@set SOURCE_DIR=
@if not %MUNGE_OVERRIDE_DIR%x==x (
	@for %%a in (%MUNGE_OVERRIDE_DIR%) do @set SOURCE_DIR=!SOURCE_DIR! %MUNGE_ROOT_DIR%\%%a\%SOURCE_SUBDIR%
)
@set SOURCE_DIR=%SOURCE_DIR% %MUNGE_ROOT_DIR%\%SOURCE_SUBDIR%

configmunge -inputfile *.mcfg %MUNGE_ARGS% -sourcedir %SOURCE_DIR% -outputdir %MUNGE_DIR% -hashstrings 2>>%MUNGE_LOG%
@move /y configmunge.log configmunge_mcfg.log
for %%A in (%MUNGE_ROOT_DIR%\%SOURCE_SUBDIR%\%MUNGE_PLATFORM%\*.mlst) do moviemunge -input %%A -output %MUNGE_ROOT_DIR%\_LVL_%MUNGE_PLATFORM%\Movies\%%~nA.mvs -checkdate 2>>%MUNGE_LOG%
That's a section of the shell munge.bat in BF2 visual munge. I placed a .mcfg in the old BF1 format as well as a .bik video to the old BF1 specs. It did create a shell in lvl_pc but no mvs file... Idk?

I think I know where I am getting hung on:

Code: Select all

for %%A in (%MUNGE_ROOT_DIR%\%SOURCE_SUBDIR%\%MUNGE_PLATFORM%\*.mlst) do moviemunge -input %%A -output 
that line right there. In the old BF1 docs it says the .mlst file contains the following line:
..\..\_SOURCE_PC\shell\movies\modidfly.bik

Course we have no _Source_PC folder. Any ideas on what folder it will use? If we get this we can munge these movies. Cause the rest looks on in the munge.bat for the shell.

This is the munge log:
Shell\munge PC
Munging Fi1.mcfg
Munging Shell.req
Notice no .mvs output cause I'm figuring that the line I used:

..\..\_LVL_PC\shell\movies\fi1.bik in the .mlst file isn't right.

Nevermind I did get it right. It doesn't save the .mvs file to shell\movies like I thought. It auctually creates a new folder in _lvl_PC called Movies and puts your new .mvs file into their. Now I got the .mvs file created all I have to do it figure out how to get it in game. I will work on it and post back.
Last edited by Big_rich on Wed Sep 27, 2006 9:41 pm, edited 2 times in total.
User avatar
[RDH]Zerted
Gametoast Staff
Gametoast Staff
Posts: 2982
Joined: Sun Feb 26, 2006 7:36 am
Projects :: Bos Wars AI - a RTS game
Games I'm Playing :: SWBF2 and Bos Wars
xbox live or psn: No gamertag set
Location: USA
Contact:

RE: In game Movies..how?

Post by [RDH]Zerted »

If you got it munged, they we can add them in. Don't forget about ReadDataFile() before trying to use your new movie.
User avatar
Teancum
Jedi Admin
Jedi Admin
Posts: 11080
Joined: Wed Sep 07, 2005 11:42 pm
Projects :: No Mod project currently.
Games I'm Playing :: Destiny
xbox live or psn: No gamertag set
Location: Indiana

RE: In game Movies..how?

Post by Teancum »

I'd just munge it with the BF1 tools and then copy the completed .mvs file over to your BF2 project.
Big_rich

RE: In game Movies..how?

Post by Big_rich »

Well, Zerted, I can't figure out how to get it to play.

I put a new directory in addon\modid\_lvl_PC\Movies then put my .mvs file in it. This is what I added to my lua.

function ScriptPostLoad()
ReadDataFile("dc:movies\\film1.mvs")
ScriptCB_PlayInGameMovie("film1.mvs", "fort")

--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}

Any ideas on how to get the script to run it?
Here is the bf2modtools log (fort is the .bik movie)
Message Severity: 2
.\Source\GameMovie.cpp(399)
Unable to find open movie segment fort

I know the stupid thing is being munged because the mvs file is about the same size as the bnk.
User avatar
[RDH]Zerted
Gametoast Staff
Gametoast Staff
Posts: 2982
Joined: Sun Feb 26, 2006 7:36 am
Projects :: Bos Wars AI - a RTS game
Games I'm Playing :: SWBF2 and Bos Wars
xbox live or psn: No gamertag set
Location: USA
Contact:

RE: In game Movies..how?

Post by [RDH]Zerted »

The error is "Unable to find open movie...". I'm guessing you need to open the movie first. There is a ScriptCB_OpenMovie() function. Try that. I don't have time to look and see how the shell opens movies at the moment. I'll get around to it if OpenMovie() doesn't work.


Some functions of interest:
ReadDataFile()
ReadDataFileInGame()
ScriptCB_AreMoviePropertiesPlaying()
ScriptCB_CloseMovie()
ScriptCB_IsMoviePlaying()
ScriptCB_OpenMovie()
ScriptCB_PlayInGameMovie()
ScriptCB_PlayMovie()
ScriptCB_SetMovieAudioBus()
ScriptCB_StopMovie()

------------------------
Taken from retail scripts:
ScriptCB_OpenMovie("movies\\bonus.mvs", "")
ScriptCB_OpenMovie("movies\\bonuspal.mvs", "")
ScriptCB_OpenMovie("movies\\fly.mvs", "")
ScriptCB_OpenMovie("movies\\his.mvs", "")
ScriptCB_OpenMovie("movies\\hispal.mvs", "")
ScriptCB_OpenMovie("movies\\meta.mvs", "")
ScriptCB_OpenMovie(dcPrefix .. "movies\\" .. movieFile .. pal .. ".mvs", "")
ScriptCB_OpenMovie(gMovieStream, "")
ScriptCB_OpenMovie(gMovieStream, "");
ScriptCB_OpenMovie(mission.intro[1], "") -- was gMovieStream
ScriptCB_OpenMovie(mission.transition[1], "")
ScriptCB_OpenMovie(movieFile, "")
ScriptCB_OpenMovie(movieFile, "");
ScriptCB_OpenMovie(movie_file, "")
ScriptCB_OpenMovie(movie_name, "")
Big_rich

RE: In game Movies..how?

Post by Big_rich »

ScriptCB_OpenMovie("dc:movies\\film1.mvs","")


OpenMovie causes the map to crash(with and without dc:) with this error in the BF2modtools log:

Message Severity: 3
.\Memory\RedMemory.cpp(561)
attempted to allocate from invalid heap -1

Message Severity: 3
.\Memory\RedMemory.cpp(538)
Allocating 107 bytes failed - no free blocks left in Heap -1 ()


I even tried to steal artist heap in script int, but movies are loaded in postload so I kinda figured that wouldn't work.
Last edited by Big_rich on Thu Sep 28, 2006 12:14 am, edited 1 time in total.
User avatar
Teancum
Jedi Admin
Jedi Admin
Posts: 11080
Joined: Wed Sep 07, 2005 11:42 pm
Projects :: No Mod project currently.
Games I'm Playing :: Destiny
xbox live or psn: No gamertag set
Location: Indiana

RE: In game Movies..how?

Post by Teancum »

Dunno if this will make a difference, but ReadDataFile("dc:movies\\film1.mvs") Should go under function ScriptInit() and not function ScriptPostLoad()
Big_rich

RE: In game Movies..how?

Post by Big_rich »

I tried that tean, but still no luck. You have experiance adding movies to BF1, did you have to script them into the old system? Or did it just work? I checked out some of the old scripts and diddn't find any entries on movies, kinda makes me wonder how BF1 use to do it.
User avatar
Teancum
Jedi Admin
Jedi Admin
Posts: 11080
Joined: Wed Sep 07, 2005 11:42 pm
Projects :: No Mod project currently.
Games I'm Playing :: Destiny
xbox live or psn: No gamertag set
Location: Indiana

RE: In game Movies..how?

Post by Teancum »

post your mcfg
Big_rich

Post by Big_rich »

shell1.mcfg:

Code: Select all

// transition times used by all movies
MovieProperties()
{
    Name("transition_template");
    FadeInTime(0.0);
    FadeOutTime(0.2);
}

MovieProperties()
{
    Name("screen_template");
    FadeInTime(0.1);
    FadeOutTime(0.5);
}

MovieProperties()
{
    Name("flythrough_template");
    FadeInTime(1.0);
    FadeOutTime(1.0);
}

//-----------------------------------------------------------------------------
//- Shell screen background movies

// Pandemic Logo
//MovieProperties()
//{
//     Name("pandemic_logo");
//     Inherit("transition_template");
//     Movie("shell");
//     SegmentList()
//     {
//        Segment("pandemic_logo", 1.0, 0);
//     }
//}

//MovieProperties()
//{
//     Name("temp_shell");
//     Inherit("screen_template");
//     Movie("shell");
//     SegmentList()
//     {
//        Segment("temp_shell", 1.0, -1);
//     }
//}

//MovieProperties()
//{
//     Name("shell_main");
//     Inherit("screen_template");
//     Movie("shell");
//     SegmentList()
//     {
//        Segment("shell_main1", 1.0, -1);
//        Segment("shell_main2", 1.0, -1);
//     }
//}
//
//MovieProperties()
//{
//     Name("shell_sub_left");
//     Inherit("screen_template");
//     Movie("shell");
//     CyclePlayback(1)
//     SegmentList()
//     {
//        Segment("shell_suball1", 1.0, 0);
//--        Segment("shell_suball2", 1.0, 0);
//        Segment("shell_subcis1", 1.0, 0);
//        Segment("shell_subcis2", 1.0, 0);
//        Segment("shell_subimp1", 1.0, 0);
//        Segment("shell_subimp2", 1.0, 0);
//        Segment("shell_subrep1", 1.0, 0);
//        Segment("shell_subrep2", 1.0, 0);
//     }
//}

// Crawls

MovieProperties()
{
     Name("fort");
     Inherit("screen_template");
     Movie("film1");
     SegmentList()
     {
        Segment("fort", 1.0, 0);
     }
}

Film1.mlst:

Code: Select all

..\..\shell\movies\fort.bik 
bik file is called fort.bik

Shell.req:

Code: Select all

ucft
{
    REQN
    {
        "config"
       "shell1"
    }
}
I get the transition, the black pause once the map is loaded.. it just goes straight to the choose sides phase(skipping the movie). That with just adding the:ScriptCB_PlayInGameMovie("dc:movies\\film1.mvs", "fort") in the.lua
Post Reply