NEW RELEASE! FMV-ed: My FMV cut-scene player for blender!

Okay people guess what!! I’ve finished my cut-scene player for blender games!!! It allows you to play REAL movie files (AVI’s, MPEG’s etc.) from any point inside a blender game, which means no more slow, tedious animated-UV-texture-on-plane cut-scenes!! It only works on Windows at the moment but a Linux version is in development.

Its simple for any blender user to use, even those who don’t like to fiddle with python. Once you’ve set it up in your game using the simple step-by-step instructions included, you simply put the name of the movie file you want to play in an object property and run one simple python controller!! Long cut-scenes can be annoying if you can’t skip them, so FMV-ed allows players to skip the cut-scene using the Esc key, or pause it using the space bar.

You can download it from Edit: link changed, see bottom of post

Let me know what you think, and comments, suggestions, problems etc, post them up! :slight_smile:

Thanks xhyldazhk for beta testing it for me!! :smiley:

Keith. 8)

–EDIT–
Download page: http://www.blender4ever.wcj.net/resources.shtml

Wooh! Very nice :smiley: !

Brilliant!!! :wink:

Thank you very much. It’s guyz like you that keep developing tools and improvements for Blender that make it possible for the rest of the artistic community develop their creativity and skill base. Good on you, and i look forward to trying out your FMV cut sceens in my games!!! :wink:

Matt

Blend on, and blend well!!!

nice work gorgy :slight_smile:

Great tool i’ll use it, make more :Z this guys on are side…lol

this is excellent! i didnt think this day would come so soon thank u!
one bug ive found… my res is 1024 x 768, when i save an exe at fullscreen and 640x480, the movie plays in the bottom right corner, mostly cut off, its not playing centered… is there any way you could fix that?

That’s really cool. Thanks for sharing woth us!

Oh man this is brilliant!
You’ve just saved me tons of work :wink: thanks loads

cheers
Piran

Your welcome guys (& girl)! glad you all liked it :smiley:

Yeah this is one problem with it i never thought of - it won’t display properly if the resolution of the movie file is greater than the screen resolution set by the blender exe. I could get my program to change the resolution its self then change it back again, but you’d need to somehow tell it what resolution blender is running at, and I’m not sure how to change the screen resolution in VB anyway. :-? Any1 know how to do this??

Glad you liked the util anyway. :smiley:

Keith. 8)

OOOOOOOOH! I’ve been waiting for somthing like this to come out!
I haven’t used it yet, but I’m sure it’ll work wonderfully.
One question: In the readme, does Blender/Game EXE mean the Blender EXE, the saved runtime EXE, or both?
Thanks again!

it won’t display properly if the resolution of the movie file is greater than the screen resolution set by the blender exe.

the movie im playing is only 320x240, and the res is 640 480 so no real resizing necessary, its just the centering that needs the fixing… is there a way to do that?

thanks again though! :smiley: :smiley:

oh, one more bugger =( again, at full screen play, the movie is not ALWAYS on top… sometimes it sneaks behind the blender game and continues to play… in regular play its always on top though, any way to fix that as well?.. oh if u could fix these 2 bugs, this player would be the ultimate!!! :o

Perhaps this helps :wink:

Option Explicit

Private Declare Function EnumDisplaySettings Lib "user32" _
        Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName _
        As Long, ByVal iModeNum As Long, lpDevMode As Any) _
        As Boolean
        
Private Declare Function ChangeDisplaySettings Lib "user32" _
        Alias "ChangeDisplaySettingsA" (lpDevMode As Any, _
        ByVal dwFlags As Long) As Long

Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Const DM_BITSPERPEL = &H40000
Const DM_PELSWIDTH = &H80000
Const DM_PELSHEIGHT = &H100000
Const CDS_UPDATEREGISTRY = &H1
Const CDS_TEST = &H4
Const DISP_CHANGE_SUCCESSFUL = 0
Const DISP_CHANGE_RESTART = 1
Const ENUM_CURRENT_SETTINGS = &HFFFF - 1

Private Type DEVMODE
  dmDeviceName As String * CCDEVICENAME
  dmSpecVersion As Integer
  dmDriverVersion As Integer
  dmSize As Integer
  dmDriverExtra As Integer
  dmFields As Long
  dmOrientation As Integer
  dmPaperSize As Integer
  dmPaperLength As Integer
  dmPaperWidth As Integer
  dmScale As Integer
  dmCopies As Integer
  dmDefaultSource As Integer
  dmPrintQuality As Integer
  dmColor As Integer
  dmDuplex As Integer
  dmYResolution As Integer
  dmTTOption As Integer
  dmCollate As Integer
  dmFormName As String * CCFORMNAME
  dmUnusedPadding As Integer
  dmBitsPerPel As Integer
  dmPelsWidth As Long
  dmPelsHeight As Long
  dmDisplayFlags As Long
  dmDisplayFrequency As Long
End Type

Private Sub Option1_Click(Index As Integer)
  Dim x&, y&
    Select Case Index
      Case 0: x = 800: y = 600
      Case 1: x = 1024: y = 768
      Case 2: x = 1152: y = 864
    End Select
    Call SetScreen(x, y)
End Sub

Private Sub SetScreen(ByVal x&, ByVal y&)
  Dim Result&
  Dim Dev As DEVMODE

    Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, Dev)
    Dev.dmDisplayFrequency = 90
    Dev.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT
    Dev.dmPelsWidth = x
    Dev.dmPelsHeight = y
   
    Result = ChangeDisplaySettings(Dev, CDS_TEST)
    ChangeDisplaySettings Dev, CDS_UPDATEREGISTRY 
End Sub

Cool and useful little proggy btw! :stuck_out_tongue:

Hmmm… it should center itself automatically, thats what I designed it to do. I haven’t tried it at that resolution tho, so maybe it doesn’t self-center properly at that resolution. :-? As for it ‘sneaking’ into the background, it shouldn’t do that unless you ALT+TAB it. I suppose I should make it appear ‘always on top’ tho. any1 know how to do this? :slight_smile:

Thanks for the code S_W! :slight_smile: Its a bit confusing tho, you seem to declare loads of variables you never end up using. :-? Have you actually got that workin? or is it just somethin you can’n’pasted from a tutorial?

agrif: Sorry for the confusion, the Blender/Game EXE directory means the blender EXE directory if you’re running it through blender, or the games EXE directory if you’ve compiled your game to an EXE. :slight_smile:

Right I’ve got a fair bit of coursework to get done for uni by the end of the week, so i’ll get workin on improving fmv-ed after that.

Have fun people! :smiley:

Keith. 8)

so sorry, but i have another question. When i ty to use your script, it says “A requires .DLL file, MSVBVM60.DLL, was not found”. Do i need this or is my computer just being weird?
Thanks much for the script!

MSVBVM60.DLL is the Visual Basic runtime DLL, I think you can get it from MicroSoft’s website.

So thi sis a movie player gizmo? Cool! Does it take Windows movie Video? Does it work in EXE?

Yeah FMV-ed requires the VB6 runtimes to be installed on your computer. I didn’t include this in the readme file because I assumed that most modern windows systems would already have them. You can download them here (3.5MB):

http://www.freewareweb.com/cgi-bin/archive.cgi?download=1&ID=1539

That should solve your problem.

If you didn’t already have the VB6 runtimes then you might also need to download the Windows Media Player OLE Control which FMV-ed uses. I’ve uploaded it here (378kb):

http://hackmaster177.virtualave.net/blender/msdxm.zip

The 2 files, msdxm.ocx & msdxm.oca need to be placed in C:\WINDOWS\SYSTEM\ if they aren’t already there.

It should all work now :slight_smile:

Keith. 8)

Do you mean WMV’s? Yep it can, it can play anything that Windows Media Player can play. and yep it works with EXE games, just follow the instructions in the readme file.

Keith. 8)

I would love to see a version of Shoot 'em that uses this instead of that slow choppy FMV it has at the start…