UltimaForum

Skrypty [XP] - Odtwarzanie Plików .AVI

RtaMag2 - Pon 08 Mar, 2010 21:58
Temat postu: Odtwarzanie Plików .AVI
Wiele osób narzeka na to, że RPGXP jest gorszy, bo nie można w nim odtwarzać filmików avi. Wiecie, kilka osób też to drażniło, i postanowili z tym coś zrobić. Mianowicie napisali kod w ruby, który właśnie umożliwi odtwarzanie plików *.AVI. Mały minus polega na tym, że trzeba się niestety z tym trochę pobawić.

Pierwsze co zrobimy to w głównym folderze naszego projektu tworzymy nowy folder o nazwie ‘Movies’ (tak, z dużej literki, przez v napisane dokładnie jak obok). Każdy projekt ma 3 foldery: Data, Graphics, Audio; No i tam właśnie gdzie widzimy te foldery zakładamy folder o nazwie ‘Movies’. Łatwiej się już nie da wytłumaczyć.

Filmie *.AVI wrzucamy do tego tam stworzonego folderu. Odpalamy RPGXP, wchodzimy do edytora skryptów ruby. Wstawiamy sobie nowy skrypt (klasę, cokolwiek to tam jest i się nazywa) – nazwijmy to Scene_Movie no i wklejamy tam poniższy podany kod:

Spoiler:

Kod:
#### Autor skryptu: Magmar
# Skrypt został znaleziony na stronie RPG Creative [www.rpgcreative.net]
# Jednak jeżeli widzisz tę notatkę, to znaczy że pobrałeś go z Twierdzy RPG Makera
# www.rpgmaker.pl
#################### Ważne!!!!!!
# Teraz daj 'Wywołaj skrypt w zdarzeniu' i napisz to coś:
# Scene_Movie.new("NAZWA TWOJEGO FILMU.avi")
#
# Pamiętaj aby twój filmik znalazł się w folderze o nazwie 'Movies', który będzie
# w folderze twojego projektu.
########################

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
  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)','')
#end code
#koniec kodu


No i w sumie to by było na tyle. A, właśnie jeszcze później jak zrobić, aby wywołać nasz filmik. Robimy sobie jakieś tam zdarzenie, no i w poleceniach zdarzenia istnieje takie coś jak wywołaj skrypt. No to dajmy na to coś, wyskoczy nam jakieś okno z skryptem do napisania. Napiszcie w nim coś takiego:

Kod:
Scene_Movie.new("NAZWA TWOJEGO FILMU.avi")


OK. Koniec. Filmik odtwarza się jeden raz.
Ważna informacja, skrypt został testowany na patchu 1.03, Niestety na wersji 1.00 skrypt na odtwarzanie plików *.AVI - niedziała.

Yoroiookami - Pon 08 Mar, 2010 22:10

www.rpgmaker.pl? xD
No nic, dobrze że to dodałeś, kolego. :P
Nie wiedziałem tylko, że mamy wrzucać skrypty z tak oczywistych stron. xD

Melvin - Wto 09 Mar, 2010 10:40

Cytat:
Ważna informacja, skrypt został testowany na patchu 1.03, Niestety na wersji 1.00 skrypt na odtwarzanie plików *.AVI - niedziała.


Tak... A gdzie można znaleźć ten patch?
Szukałem i znaleźć nie mogę... :mrgreen:

RtaMag2 - Wto 09 Mar, 2010 16:06

Ja też niemogę znaleść :mrgreen:

[ Dodano: Wto 09 Mar, 2010 16:07 ]
Moj kolega to testował :-D

Melvin - Wto 09 Mar, 2010 16:09

Podobno jest na Twierdzy RPG Makera, ale szukałem i nie znalazłem...
Yoroiookami - Wto 09 Mar, 2010 18:21

RtaMag2 - to ciekawe, używam tego skryptu z wersją 1.0 i mi działa...ale ok...męczcie się dalej... xD
Melvin - Wto 09 Mar, 2010 18:22

:shock: Mi nie działa... ;-( ;-( ;-( ;-( ;-( :-/ :-? :-| :-(
Yoroiookami - Wto 09 Mar, 2010 18:30

A odpowiednio go użyłeś? Bo należy stworzyć folder "Movies" a potem użyć funkcji "WYWOŁAJ SKRYPT" i wpisać tam np:
Kod:
Scene_Movie.new("NAZWA FILMU.avi")

Melvin - Wto 09 Mar, 2010 18:30

Tak... tak zrobiłem

Działa na v1.2(ANG)!!!!!
Ale tak jakoś lipnie działa..... ;-(

Yoroiookami - Wto 09 Mar, 2010 18:34

Melvin - no na mojej polskiej wersji to działa bez zarzutu.
Melvin - Wto 09 Mar, 2010 18:35

A nie zacina Ci się filmik??
Yoroiookami - Wto 09 Mar, 2010 18:47

XD zacina? Nie...być może chodzi o wydajność twojego komputera. :P spróbuj użyć skryptu "Prędkościozwiększacz", może coś pomoże. ;)
Melvin - Wto 09 Mar, 2010 18:49

Cytat:
Nie...być może chodzi o wydajność twojego komputera


Raczej nie... Na pewno nie...
Nie mam pojęci dlaczego działa na 1.1... :cry:

Yoroiookami - Wto 09 Mar, 2010 18:50

Ja też nie jestem pewien z czym masz problem, skoro ci działa i chodzi tylko o przycinanie się...to nie wiem czy jest co poprawiać. xD Ale ktoś na pewno ci pomoże.

[ Dodano: Czw 11 Mar, 2010 19:27 ]
Ciekawostką jest to, że jeszcze niedawno mi działało, a teraz za nic nie reaguje...

Kolejny EDIT!
Wiecie że ten skrypt kłóci się z anty lagami? o_O
Skasowałem antylag i pięknie działa. O_O

Darkpl3 - Sob 29 Maj, 2010 10:23

a co zrobić by działało na rgss 102 czyli wersji 1.2 ??
wywołałem skrypt do folderu wrzuciłem filmik "AVI" i nic:( help

Yoroiookami - Sob 29 Maj, 2010 10:30

Darkpl3 - niektórym nie działa, bo nie mają odpowiednich kodeków, ale zakładam że tobie działa twój własny filmik. >_>
Może upewnij się czy wszystko zrobiłeś dobrze, a jeżeli tak, to skasuj anty-lag, bo jak napisałem, te dwa skrypciki coś się nie lubią.

Darkpl3 - Sob 29 Maj, 2010 12:04

filmik który zrobiłem "avi" działa masz racje ale nie mam skryptu "anti-lag" czy "anty-lag"
poprostu jak daje na autorun i daje wywoluj scrypt to tam zamiast filmu czarny ekran i nic ..

Flappy - Nie 30 Maj, 2010 15:51

Też miałem ten problem.
Wygląda na to że ten skrypt jest zgodny jedynie z Cinepak Codec.
H.264, H.263 i MPEG-4 testowałem i nie działają.
Ewentualnie może to być kwestia jakiegoś innego parametru zależnego od formatu.
Używam rmxp 1.02a ale rgss 1.03J.

EDIT: Jeśli komuś zacinają się filmy to odkryłem właśnie że pliki kodowane XVID MPEG-4 działają i nawet się nie zacinają.

Warto by jakoś dopracować ten skrypt żeby można było pominąć film naciśnięciem przycisku..

Izaya - Pon 07 Cze, 2010 09:17

Niestety nie działa, a szkoda. :cry:
Agumon - Pon 26 Lip, 2010 18:12

Ej a mam pytanie. Film może być w rozdzielczości większej niż ekran czy nie???
RtaMag2 - Sro 01 Wrz, 2010 18:29

Mógł by być większy, tylko nie wiem czy by przypadkiem nie przecięło ekranu :-/
pw115 - Sro 01 Wrz, 2010 20:21

Maksymalna rozdzielczość w rpg makerze xp to 640 na 480 więc filmy z większą rozdzielczością zostaną jak zauważył RtaMag2 fim utnie albo wogóle go nie wyświetli
eddy_97 - Pią 31 Gru, 2010 22:21

a ja mam taki problem że jak puszcza film to go przyśpiesza i nieda się oglądnąć niezależnie czy film jest krótki czy długi pomóżcie :-(
Yoroiookami - Sob 01 Sty, 2011 18:23

W necie wyczytałem, żeby zastosować formatu MPEG-1, kodeków WMV7, oraz MP2, kodeków WMA. Rozdzielczość najlepiej 640x480, nie opłaca się tego robić w HD. ;)

Sam nie testowałem, ale to nie jest jakieś trudne. Jeżeli ktoś chciałby coś takiego, to zawsze może mnie poprosić, oczywiście mówię o konwersji, nie o tworzeniu filmu XD

fafcioggg - Sro 23 Lut, 2011 16:37

ja mam coś takiego że jak wchodzę w grę i idę to tego ludzika co ma włączyć film
i pokazuje się czarny ekran i wychodzi mi z gry co mam zrobić pomóżcie mi plis :?:

genialnyzolw - Pon 18 Kwi, 2011 22:35

ja mam zupełnie inny problem na .avi nie działa na .mpeg i na .mp2 włącza się tylko muzyka ale obraz się nie pokazuje co robić ???
R.I.P. - Wto 19 Kwi, 2011 15:39

Fajny skrypcik, można go wykorzystać w sytuacji odtworzenia jakiegoś filmu np. do kina iść :-D
genialnyzolw - Nie 24 Kwi, 2011 14:18

Ok problem rozwiązałem
Filmik działa co więcej nie zacina się nawet na twierdzówce
Jakby komuś było potrzebne to używałem programu Any Video Converter
Zastosowałem format .avi z kodekiem mpeg4 ,a w audio kodek pcm

Śliwka - Pią 29 Kwi, 2011 22:24

A co zrobić jak słychać tylko muzykę ?
Yoroiookami - Pią 29 Kwi, 2011 22:28

Sailor Hoshi - lepiej zmienić format filmu, pliku. Bo jeżeli słyszysz samą muzykę, a obrazu nie ma, to znaczy, że brakuje na twoim komputerze odpowiednich kodeków. I żeby ktokolwiek mógł obejrzeć ten filmik z obrazem, musi je ściągnąć. Proponuję przekonwertować filmik na inny format. Mam nadzieję że coś z tego rozumiesz... :I

Do konwersji użyj programu Any Video Converter, niestety jakość będzie nieco gorsza.

Śliwka - Pią 29 Kwi, 2011 22:32

Rozumiem. Akurat mam ten program więc zaraz sprawdzę.
Tenac666 - Czw 21 Lip, 2011 10:42

Hm.. ja powiem tak .. jeżeli ktoś nie chce wklejać skryptu wystarczy że da filmik AVI. do BGM i go odpali jako muzyczkę.. pojawia się wtedy nowe okno ;-)
Melvin - Czw 21 Lip, 2011 11:04

Daniel, co?
Pokaż screena bo nie wieżę... Sam nie sprawdzę bo jestem na tel.

Tenac666 - Czw 21 Lip, 2011 11:25



Plusy :
Nie potrzeba skryptu ..
Odtwarza nie tylko AVI ale MP4 i inne ten na zdjęci to jest MP4 w HD
Filmik może być w max. rozdzielczości twojego kompa
Minusy :
Jesli grasz na pełnym ekranie obraz powraca do trybu okienkowego a obraz w moim przypadku obrócił się o 180 stopni..

Wystarczy dodać filmik do BGM i odtworzyć ..ogarnąłem to jakiś rok temu..fajna sprawa ale moim zdaniem kompletnie się nie przydaje.. może jeśli doda się do tego jakiś mały skrypt żeby nie pojawiały się dwa ekrany i było na Full screen to mogłoby to jakoś wyglądać..

Krashai - Pią 22 Lip, 2011 21:22

A jak w tym srypcie wywołać np więcej filmików ?,.
Feniks - Pią 22 Lip, 2011 21:34

da się tylko 1 ;o
Najwyżej jeden po drugim.

Krashai - Pią 22 Lip, 2011 21:53

Ale jak usunę jeden filmik by dodać kolejny to mi się usunie poprzedni.
Tenac666 - Pią 22 Lip, 2011 21:58

A chciałbym powiedzieć że jeżeli ułatwiłem komuś sprawę z tą o to sprawą albo pomogłem kliknij pomógł...
Krashai - Pią 22 Lip, 2011 22:05

Nie ciekawie dwa ekrany wyglądają xd ?.
CrasheR - Pią 22 Lip, 2011 22:12

Daniel, Punkt "pomógł" może dać tylko autor tematu ...
Tenac666 - Sob 23 Lip, 2011 14:01

a to Peszek..
Falkret - Nie 23 Gru, 2012 20:00

A da się w ogóle jakoś sprawdzic jaką wesję RM'a mam zainstalowana?
Nex - Wto 25 Gru, 2012 16:57

Najłatwiej to wejdź w folder z grą i otwuż w notatniku plik Game.rxproj
Falkret - Sob 23 Lut, 2013 20:46

Cytat:
Najłatwiej to wejdź w folder z grą i otwuż w notatniku plik Game.rxproj

DŹENKI WJELKJE OTFOSZYUEM I DZIAŁA XDDD :PppP

[ Dodano: Sob 23 Lut, 2013 20:46 ]
A tak serio, to idź i "otwuż" słownik ortograficzny


Powered by phpBB modified by Przemo © 2003 phpBB Group