Startseite »
Forum »
RPG-Studio.org - Community »
Community-Forum »
Öffentliches Archiv »
RGSS »
Kampfsysteme »
Wideos abspielen
Hallo die erste version läuft bei mir gut, die von disem sphiroth get noch nicht bei mir, (hab unkomprimierte avi´s) bloß blöderweise Funktioniert es nicht im Vollbildmodus man wierd kurzeiteng rausgesmissen und wen man den tab wider anklikt ist das wideo vorbei wierd also garnicht angezeigt, nebenbei bemerkt flackert es immer im Sekundentakt ganz kurz, natürlich nicht im spiel-volbildmodus, ( da get es ja garnicht) vileicht get das dan mit dem animations entrukler.
Übrigens hab isch hier irgendwo gelesen das der Rpg maker von selber garkeine videos abspielen kann aber das stimt nicht wen man ein zB: eine avi
bei den BMG reinkopiert kan der Maker dise Problemlos Abspielen alerdinks öfnet er dafür en separates fenster
Ich habe leider von Skripten nicht sonne Gosse ahnung und ich kann sie auf keinen Fall schreiben bis jetzt zumindest, aber ich hab irgendwo das hier gefunden:
(bei mier läufts nicht)
class Scene_Movie
##Copy this into a new section of your game.
##To play a file, move the avi file into a "movies" subdirectory (yourgame\data,
##yourgame\graphics, yourgame\movies).
##Then call "Scene_Movie.new(filename)" where filename is your movies actual filename
## (minus the .avi). exp Scene_Movie.new("???")
## If you want to play multiple movies in a row
##(for example before the game starts, maybe a "developed by", "produced by", "intro movie"
## set or something... Go to the "main" section of code and find the line "$scene = Scene_Title.new".
##Just after that line add:
##CODE
##Scene_Movie.new("dev_by")
##Scene_Movie.new("pro_by")
##Scene_Movie.new("intro")
##$scene = Scene_Movie.new("intro",8,false)assuming the filename of the intro movie is "intro.avi" and it's 8 seconds long.
##class Scene_Movie
def initialize(movie)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end
status = " " * 255
movie.call("play FILE",0,0,0)
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update
@message.call(@temp.to_i,11,1,0)
Input.update
movie.call("status FILE mode",status,255,0)
true_status = status.unpack("aaaa")
if true_status.to_s != "play"
break
end
if Input.trigger?(Input::B)
Input.update
break
end
end
movie.call("close FILE",0,0,0)
bail
end
def bail
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
Das hies Rm Xp Avi Player mer weis ich leider auchnicht darüber damit soll das nemlich im vollbildmodus ghen aber bei mier leuft es nicht vileicht verstehe ich auch die englische anleitung nicht, wäre nett wen das jemant mal prüfen könte
Übrigens hab isch hier irgendwo gelesen das der Rpg maker von selber garkeine videos abspielen kann aber das stimt nicht wen man ein zB: eine avi
bei den BMG reinkopiert kan der Maker dise Problemlos Abspielen alerdinks öfnet er dafür en separates fenster
Ich habe leider von Skripten nicht sonne Gosse ahnung und ich kann sie auf keinen Fall schreiben bis jetzt zumindest, aber ich hab irgendwo das hier gefunden:
(bei mier läufts nicht)
class Scene_Movie
##Copy this into a new section of your game.
##To play a file, move the avi file into a "movies" subdirectory (yourgame\data,
##yourgame\graphics, yourgame\movies).
##Then call "Scene_Movie.new(filename)" where filename is your movies actual filename
## (minus the .avi). exp Scene_Movie.new("???")
## If you want to play multiple movies in a row
##(for example before the game starts, maybe a "developed by", "produced by", "intro movie"
## set or something... Go to the "main" section of code and find the line "$scene = Scene_Title.new".
##Just after that line add:
##CODE
##Scene_Movie.new("dev_by")
##Scene_Movie.new("pro_by")
##Scene_Movie.new("intro")
##$scene = Scene_Movie.new("intro",8,false)assuming the filename of the intro movie is "intro.avi" and it's 8 seconds long.
##class Scene_Movie
def initialize(movie)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_name,255,".\\Game.ini")
game_name.delete!("\0")
@wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
movie = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w(l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics','%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end
status = " " * 255
movie.call("play FILE",0,0,0)
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update
@message.call(@temp.to_i,11,1,0)
Input.update
movie.call("status FILE mode",status,255,0)
true_status = status.unpack("aaaa")
if true_status.to_s != "play"
break
end
if Input.trigger?(Input::B)
Input.update
break
end
end
movie.call("close FILE",0,0,0)
bail
end
def bail
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w(l,l,l,l)','')
Das hies Rm Xp Avi Player mer weis ich leider auchnicht darüber damit soll das nemlich im vollbildmodus ghen aber bei mier leuft es nicht vileicht verstehe ich auch die englische anleitung nicht, wäre nett wen das jemant mal prüfen könte
Videos abspielen
Und das habe ich auch igendwannmal gefunden:
(da gibt es noch eine technik dabei um dammit videos alz vorspann einzustellen aber funktioniert bei mier alles leider auch nicht)
class Scene_Movie
def initialize(movie,length,exit_to_game=tru e)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
@counter = length*10
@exit_to_game = exit_to_game
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_nam e,255,".\\Game.ini")
game_name.delete!("\0")
Graphics.transition
@wnd = Win32API.new('user32','FindWindowEx','%w (l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
@movie = Win32API.new('winmm','mciSendString','%w (p,p,l,l)','V')
@movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w( l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics' ,'%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Screen::update
sleep(1)
Screen::update
sleep(1)
Screen::update
sleep(1)
end
@movie.call("play FILE",0,0,0)
@counter=10*@counter
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update if @counter%50==0
@message.call(@temp.to_i,11,1,0)
Input.update
if Input.trigger?(Input::B)
break
end
@counter = @counter - 1
if @counter <= 0
break
end
end
@movie.call("close FILE",0,0,0)
if @exit_to_game
$scene = Scene_Map.new
else
$scene = nil
end
Graphics.freeze
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w( l,l,l,l)','')
Und so soll es gehn:
die videos müssen 640x480 groß sein snonst sind sie zu klein oder zu groß.
die movies müssen unter den ordner Movies sein.
das script über Main einfügen und scene_Movie nennen.
Und damit kannst du es im spiel aktivieren
$scene = Scene_Movie.new("Movie name",Movie länge)
Beispiel:
$scene = Scene_Movie.new("intro",8 )
um es vor dem titelmenü erscheinen zu lassen diese script in Main einfügen
begin
$scene = Scene_Movie.new("intro", 8 ,false)
# Èéó¸·çó–™
Graphics.freeze
# ·üóªÖ¸§¯È (¿¤Èë;b) ’\
$scene = Scene_Title.new
end
man kann mehrere hinterereinander laufen lassen
ich weis aber nicht ob .wav funktioniert
die movies können mit der x taste abgebrochen werden
(da gibt es noch eine technik dabei um dammit videos alz vorspann einzustellen aber funktioniert bei mier alles leider auch nicht)
class Scene_Movie
def initialize(movie,length,exit_to_game=tru e)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
@counter = length*10
@exit_to_game = exit_to_game
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_nam e,255,".\\Game.ini")
game_name.delete!("\0")
Graphics.transition
@wnd = Win32API.new('user32','FindWindowEx','%w (l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
@movie = Win32API.new('winmm','mciSendString','%w (p,p,l,l)','V')
@movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w( l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics' ,'%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Screen::update
sleep(1)
Screen::update
sleep(1)
Screen::update
sleep(1)
end
@movie.call("play FILE",0,0,0)
@counter=10*@counter
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update if @counter%50==0
@message.call(@temp.to_i,11,1,0)
Input.update
if Input.trigger?(Input::B)
break
end
@counter = @counter - 1
if @counter <= 0
break
end
end
@movie.call("close FILE",0,0,0)
if @exit_to_game
$scene = Scene_Map.new
else
$scene = nil
end
Graphics.freeze
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w( l,l,l,l)','')
Und so soll es gehn:
die videos müssen 640x480 groß sein snonst sind sie zu klein oder zu groß.
die movies müssen unter den ordner Movies sein.
das script über Main einfügen und scene_Movie nennen.
Und damit kannst du es im spiel aktivieren
$scene = Scene_Movie.new("Movie name",Movie länge)
Beispiel:
$scene = Scene_Movie.new("intro",8 )
um es vor dem titelmenü erscheinen zu lassen diese script in Main einfügen
begin
$scene = Scene_Movie.new("intro", 8 ,false)
# Èéó¸·çó–™
Graphics.freeze
# ·üóªÖ¸§¯È (¿¤Èë;b) ’\
$scene = Scene_Title.new
end
man kann mehrere hinterereinander laufen lassen
ich weis aber nicht ob .wav funktioniert
die movies können mit der x taste abgebrochen werden
Videos abspielen
Das hab ist auchnoch gefunden eine zweite Version die verbessert wurde:
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
class Scene_Movie
def initialize(movie,length,exit_to_game=tru e)
@readini = Win32API.new 'kernel32', 'GetPrivateProfileStringA', %w(p p p p l p), 'l'
@movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi"
@counter = length*10
@exit_to_game = exit_to_game
main
end
def main
game_name = "\0" * 256
@readini.call('Game','Title','',game_nam e,255,".\\Game.ini")
game_name.delete!("\0")
Graphics.transition
@wnd = Win32API.new('user32','FindWindowEx','%w (l,l,p,p)','L')
@temp = @wnd.call(0,0,nil,game_name).to_s
@movie = Win32API.new('winmm','mciSendString','%w (p,p,l,l)','V')
@movie.call("open \""+@movie_name+"\" alias FILE style 1073741824 parent " + @temp.to_s,0,0,0)
@message = Win32API.new('user32','SendMessage','%w( l,l,l,l)','V')
@detector = Win32API.new('user32','GetSystemMetrics' ,'%w(l)','L')
@width = @detector.call(0)
if @width == 640
fullscreen
Graphics.update
sleep(1)
Graphics.update
sleep(1)
Graphics.update
sleep(1)
end
@movie.call("play FILE",0,0,0)
@counter=10*@counter
loop do
sleep(0.1)
@message.call(@temp.to_i,11,0,0)
Graphics.update if @counter%50==0
@message.call(@temp.to_i,11,1,0)
Input.update
if Input.trigger?(Input::B)
break
end
@counter = @counter - 1
if @counter <= 0
break
end
end
@movie.call("close FILE",0,0,0)
if @exit_to_game
$scene = Scene_Map.new
else
$scene = nil
end
Graphics.freeze
if @width == 640
fullscreen
end
end
end
def fullscreen()
$full.call(18,0,0,0)
$full.call(13,0,0,0)
$full.call(18,0,2,0)
$full.call(13,0,2,0)
end
$full = Win32API.new('user32','keybd_event','%w( l,l,l,l)','') |
Also die letzten beiden sind besser als das erste. Zumindest bei mir läuft das Video dann besser.
Aber da ja bloß nich mal was ordentlich funktionieren darf, kommt da natürlich ein Fehler.
Irgendwann, während das Video abgespielt wird, kommt dann der Fehler: "????????"
Das kann man sogar zur Seite schieben und das Video weiter anschauen. Allerdings is dann spätestens nach dem Video Schluss, weil dann nichts mehr passiert.
Drückt man die Box nun weg steht folgendes da:
Die Anweisung in "0x091709d0" verweist auf Speicher in "0x091709d0". Der Vorgang
"read" konnte nicht auf dem Speicher durchgeführt werden.
Ja, so sieht´s aus. Hat das Script mal jemand getestet?
Dass in den Zeilen 3 und 13 jeweils ein Leerzeichen zuviel ist (was zu Syntax-Fehlern führt), habe ich schon selbst rausgefunden.
Ansonsten kenn ich mich damit nu nich grad aus, daher wäre es gut, wenn da jemand Bescheid wüsste.
An einem anderen Script kann´s nich liegen, da das in einem neuen Spiel genauso ist.
Zu Not geht das erste Script auch, aber da läuft das Video nicht so flüssig und außerdem wird der Bildschirm da alle paar Sekunden kurz schwarz, was ja doch stört.
Aber da ja bloß nich mal was ordentlich funktionieren darf, kommt da natürlich ein Fehler.
Irgendwann, während das Video abgespielt wird, kommt dann der Fehler: "????????"
Das kann man sogar zur Seite schieben und das Video weiter anschauen. Allerdings is dann spätestens nach dem Video Schluss, weil dann nichts mehr passiert.
Drückt man die Box nun weg steht folgendes da:
Die Anweisung in "0x091709d0" verweist auf Speicher in "0x091709d0". Der Vorgang
"read" konnte nicht auf dem Speicher durchgeführt werden.
Ja, so sieht´s aus. Hat das Script mal jemand getestet?
Dass in den Zeilen 3 und 13 jeweils ein Leerzeichen zuviel ist (was zu Syntax-Fehlern führt), habe ich schon selbst rausgefunden.
Ansonsten kenn ich mich damit nu nich grad aus, daher wäre es gut, wenn da jemand Bescheid wüsste.
An einem anderen Script kann´s nich liegen, da das in einem neuen Spiel genauso ist.
Zu Not geht das erste Script auch, aber da läuft das Video nicht so flüssig und außerdem wird der Bildschirm da alle paar Sekunden kurz schwarz, was ja doch stört.
Also bei mir geht gar nix! Kein einziges von den allen. Wie gesagt, ich mache in meinem Game-Ordner noch zu den anderen Orndern (Graphics, Audio, Data) den Ornder Movies dazu. Dort kopiere ich meine AVI rein. Ich öffne das Spiel, gehe zu den Skripten, mache über Main ein neues Skript, nenne es Scene_Movie, kopiere das Skript darein, mache ein Event mit dem Befehl "Call Script", bennene den Namen des Videos richtig genau wie auch die Sekunden-länge, starte das Spiel (der Titel geht noch) und schon kommt die Fehlermeldung:
????? 'Game_Actor' ? 97 ??? NoMethodError ????????
undefindes method `/"for nil: Class
????? 'Game_Actor' ? 97 ??? NoMethodError ????????
undefindes method `/"for nil: Class
Ne, das is egal. Dein PC muss das Video nur abspielen können.
Wenn das in irgendeinem Player geht (und das nehme ich mal an, da du das Video ja vorher sicher angeschaut habe wirst), geht das bei korrektem Einbau auch im Maker.
Bei mir habe ich festgestellt, dass z.B. wmv-dateien nicht klappen. Da kommt dann nur der Ton.
Kommt garnichts? Kein Ton und kein Bild?
Das Bild kann eventuell durch Vollbildmodus oder falsche Videogröße nicht klappen, aber sonst muss das eigentlich hinhauen.
Wenn das in irgendeinem Player geht (und das nehme ich mal an, da du das Video ja vorher sicher angeschaut habe wirst), geht das bei korrektem Einbau auch im Maker.
Bei mir habe ich festgestellt, dass z.B. wmv-dateien nicht klappen. Da kommt dann nur der Ton.
Kommt garnichts? Kein Ton und kein Bild?
Das Bild kann eventuell durch Vollbildmodus oder falsche Videogröße nicht klappen, aber sonst muss das eigentlich hinhauen.
Hallo ich wollte nochmal sagen das ich die 3 letzten Scripte hier eingeschrieben habe, die sind aber nicht von mir
ich habe sie zum teil von Enlischen seiten und ich hab nich so di anung wie die funktioniren ( wegen der enlischen anleitung ) bei mier leuft nur das script auf Seite 1 aber mit diesem Bildschirm schwarz werden einmal die Sekunde, allerdings wen man das video auf die nötigen Masse gebracht hat 640 x 480 sieht es trotzdem noch ganz gut aus.( Das von seite 1 wohlbemerkt )
Es wehre nett wen sich mal jemand diese 3 scripte ansehen würde de englich kann.
ich habe sie zum teil von Enlischen seiten und ich hab nich so di anung wie die funktioniren ( wegen der enlischen anleitung ) bei mier leuft nur das script auf Seite 1 aber mit diesem Bildschirm schwarz werden einmal die Sekunde, allerdings wen man das video auf die nötigen Masse gebracht hat 640 x 480 sieht es trotzdem noch ganz gut aus.( Das von seite 1 wohlbemerkt )
Es wehre nett wen sich mal jemand diese 3 scripte ansehen würde de englich kann.
Benutzerinformationen überspringen
Ankömmling
Motto: Der größte Schatz ist nicht aus Gold, er ist nicht Schmuck noch Geld. Und Hände fassen nicht das gute, dass man im Herzen hält. Bei jedem Ding verblasst der Glanz im Jahreszeitenlauf. Doch wahre Freundschaft ewig strahlt, darum gib sie niemals auf.
und wie startet man das video im spiel?
und wie startet man das video im spiel?
Schau mal einen Post über deinem ô.Ô
Im 1. Post steht es ja auch ^^
Skripte:
Animations "Entruckler"
Console
Drunken Mode
Eventskript Debugger
Flat-Events
Impassable Script
Item Shortcut
MSS: Monsta's Shoot System (Neu)
Radius Skript
Random Event Teleport
RMXP Leistungstest
Single Rotate
Split Screen (Beta)
Tutorials:
'alias' Bug beheben
Eigenes RTP
Standard KS komplett Übersetzen
RGSS: Eigener HUD
Programme:
Maker Exchange [ MEX ]
RMXP Skript Explorer
RPGXP Code Converter
Spiele:
[Minispiel] Stampfi V1.5 (Gold)
[Minispiel] Mastermind XP
[Humor] Verfressene Klone
______________________________
[Zukunft] Evil Science
zum Lesen den Text mit der Maus markieren
Benutzerinformationen überspringen
Ankömmling
Motto: Der größte Schatz ist nicht aus Gold, er ist nicht Schmuck noch Geld. Und Hände fassen nicht das gute, dass man im Herzen hält. Bei jedem Ding verblasst der Glanz im Jahreszeitenlauf. Doch wahre Freundschaft ewig strahlt, darum gib sie niemals auf.
Sorry, bin ja anfänger ^^
Soll ich unter Event Script drücken und dann $scene = Scene_Movie.new("getvideo", 750) einfügen?
Wenn ja hab ich ein fehler xD
Soll ich unter Event Script drücken und dann $scene = Scene_Movie.new("getvideo", 750) einfügen?
Wenn ja hab ich ein fehler xD

