hổm rày có bạn hỏi, hôm nay đi dạo thấy bí kíp nên về truyền lại mới thử với file mpg thui, mấy loại khác chưa thử. cách 1: (chôm) vào thư mục chứa project, tạo 1 folder mới chứa movie, name gì tùy, thí dụ là movie. sau đó mở project ra tạo 1 event, trong đó chọn call script (bảng event thứ 3) rùi gõ đoạn code này vào Audio.se_play("tên folder chứa file movie/name_of_your_file.MPG", 100, 100) nhìn hiểu rùi chứ, nếu là Audio.se_play() hoặc Audio.me_play() thì movie sau khi hết sẽ ko lặp lại còn nếu là Audio.bgm_play() hoặc Audio.bgs_play() thì movie sau khi hết sẽ lặp lại. chuyện này là do loại bgm và bgs là nhạc nền, nó sẽ lặp lại hoài, còn se với me là hiệu ứng âm thanh gì đó nên ko lặp lại nhìu lần. tuy nhiên cách này sau khi complie thì file movie ko được bảo vệ, ai muốn xem trước thì xem. ko hay lắm cách 2: (tự chế) thấy làm vậy mắc công wá, làm vầy nhanh hơn nè, lại có thể bảo mật file movie. bây giờ, vào control panel, chọn folder Option (WinXP mấy OS khác ko rành ). bấm qua thể View bỏ chọn hide extention for know file type. Xong việc đầu, bi giờ lôi cái file movie ra, bi giờ nó có dạng *.mpg, đổi cái đuôi mpg thành *.wma (tí nữa sẽ hiểu nãy giờ mình đang làm cái gì). vào Database, chọn Audio/SE hoặc Audio/ME. sau đó import cái file movie hồi này vào. Vì SE và ME chỉ cho phép các dạng file có đuôi *.mid,*.ogg,*.wma,*.mp3,*.wav nên mình ko thể import file movie dzô được, mún import dô phải đổi tên đuôi, hiểu rùi chứ. import xong, tạo New Event, Insert, chọn bảng thứ 2, chọn Play SE hoặc Play ME (tùy hồi nãy bạn import vô chỗ nèo), sau đó chọn tên file movie hồi nãy mới import, xong ok. phần Trigger tùy bạn chọn. vậy là xong có thể play movie rùi đó. tuy nhiên tin đó là tin vui, còn đây là tin bùn: + movie sẽ được play trong 1 window khác --> ::( + sau khi nó play xong, nếu người chơi ko tự tắt window đó đi thì nó còn hoài--> ::( 2 vấn đề đó quả thật khó khăn, ai tìm cách nào giải quyết đựơc xin cho ý kiến
Hướng dẫn vậy thì nói làm gì? T_T muốn play movie thẳng trong game theo kiểu của Rpg 2K3 cơ! T_T ... nếu ông có scrips thì share cho anh em!
ko có cánh nào nữa đâu, tui vặn nát óc rùi, đó là theo ý tui, chắc còn cao nhân khác, vậy chứ nhóm VM chưa làm được à, thế sao này sao mà play phim đây
1. Cái kách của chú ken nó đã thử từ đời tám hoánh nào roài. Nếu được thì không việc gì thiên hạ phải khổ sở nữa. 2. Chú làm ơn tắt cái sig tổ chảng dzùm cái. Quy định nơi này không cho xài đâu.
VM làm được rồi , nhưng ( trong vòng bí mật ) nên ken ko tiết lộ ra ngoài Tất nhiên cách của VoDich cũng là 1 cách , nhưng thế thì có mà ... vái . Ngoài script ra ko có cách nào khác , mà nếu có ( nếu thôi nhé ) là làm cách nào đó phá tung cái 2k3ra rồi kết hợp với xp ( tôi biết 1 ông dở hơi đã thử làm cách này , và rồi thì cái game ổng làm thành movie hết luôn , engine mới tạo thành cũng tan tành ngay sau lần chạy thử đầu tiên T_____T )
i found a script in somewhere for every people class Scene_Movie def initialize(movie,length) @movie_name = Dir.getwd()+"\\Movies\\"+movie+".avi" @counter = length end def main Graphics.transition @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L') @temp = @wnd.call(0,0,nil,"Pokemon").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) @movie.call("play FILE",0,0,0) loop do Graphics.update sleep(1) Input.update if Input.trigger?(Input:: break end @counter = @counter - 1 if @counter == 0 break end end @movie.call("close FILE",0,0,0) $scene = Scene_Map.new Graphics.freeze end end
_Mai mốt Vô_địch nhớ thêm lệnh nhé .Vì nếu không khi copy vào RPGmakerXP hoặc 1 engine khác ứng dụng được .Nó báo sai cấu trúc thì rối mắt lắm. _Cái script kia báo lỗi ở đoạn Ông xem lại đi
[QUOTE\=>VoDich<] @counter = @counter - 1 if @counter == 0 break end end @movie.call("close FILE",0,0,0) $scene = Scene_Map.new Graphics.freeze end end [/QUOTE] Theo tôi thì có thể sai ở câu lệnh hoặc đơn giản hơn là sai ở chỗ tester chưa lập 1 folder Movie trong Project . Ai đó thử lại xem
Thân tặng VM và các mem của box RPG Maker đọan script play movie chú ý: chỉ thành công khi game chạy ở chế độ fullscreen tạo 1 class mới trong script editor đặt tên là Scene_Movie copy đọan script sau #begin class Scene_Movie def initialize(movie,length) @movie_name = Dir.getwd()+"\\Movies\\"+movie+".mpg" # trong đó Movies là folder chứa file phim, phải ở cùng với folder chứa game, ".mpg" là lọai file phim( có thể thay đổi tùy bạn) @counter = length end def main Graphics.transition @wnd = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L') @temp = @wnd.call(0,0,nil,"MovieTest").to_s # MovieTest thay bằng tên game của bạn (hiển thị trên Title bar khi run game) $game_actors[1].name = @temp.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) @movie.call("play FILE",0,0,0) loop do Graphics.update sleep(1) 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) $scene = Scene_Map.new Graphics.freeze end end #end Xong phần script, để play thì call script sau: $scene = Scene_Movie.new("movie",12) với movie là tên file phim, ko được gõ tên đuôi vào, còn 12 là số giây mà bạn muốn file phim play vì vậy trước khi play cần xem kĩ file phim đó play trong bao lâu để mình chỉnh cho đúng. Have Fun! chúc thành công, ken10 + tí EXP nào, wên cho tôi thêm link down game hen đi
Nói chung vấn đề play movie rất là nan giải. Đi theo hướng MCI này là cách dễ nhất. Tuy nhiên, như đã bàn trong phần dùng DLL với RPG maker XP, nếu engine RGSS không gọi hàm Graphics.update trong vòng 3 giây thì nó sẽ tự động kết thúc game để tránh hiện tượng mất texture. Điều này gây khó dễ nếu muốn game đi vào fullscreen. Gọi hàm MCI tuy làm được nhưng không an toàn và đảm bảo cho lắm đối với RPG maker XP. Cách làm hiệu quả nhất bây giờ là dùng FrameGrabber trong DirectShow tách từng frame một rồi lưu dạng bmp. Vừa tách frame mới, vừa xoá frame cũ. Trong khi đó thì engine RGSS kia sẽ load bmp và play. Phần âm thanh thì tách riêng ra một stream khác. Nghe dễ nhưng cũng khoai lắm T__T. @A-lông: đừng có nổ nữa.
-_- Vô_địch mai mốt nhớ thêm lệnh [ QUOTE] và [/ QUOTE] nhé .Để copy cho nó đúng cấu trúc cái. _Tui thử đã,mới vừa ngủ dzậy còn lơ mơ. _Dù sao cũng cám ơn Vô_Địch đã giúp đỡ VM .Để tui thử đã _Không play được lúc nó transition xong rồi màn hình đen lun. _Cái Folder Movies để cùng với cái Game.exe hay trong thư mục Audio vậy.
phải để fullscreen mới play được, lúc test thì bấm alt-Enter để hiển thị fullscreen script này xài hàm API có sẵn hook cửa sổ nào có title là MovieTest (bởi vậy phải đổi tên title của game bạn trong script đó mới được), rùi play movie đã chọn lên cửa sổ đó, nếu thích làm cái này cũng dzui lắm nè chỗ MovieTest gõ Recycle Bin, sau đó bật cửa sổ thùng rác lên, đừng chạy fullscreen, play movie, rùi chuyển wa cửa sổ thùng rác xem phim he he. ai biết thì cùng tìm cách sửa chữa để nó tự stretch và ko cần run ở fullscreen đi. thanks. à, mà theo lời ken đóa, để lệnh [ QUOTE] có tính mp ko nếu ko tính tui ko để đâu nha. theo script folder là "movies" đặt cùng folder với file game.exe tui có gửi kèm theo example, có luôn ATB battle system. (file kèm ko có file phim nhá, mún test thì kiếm đại file *.mpg nèo đó, đặt tên movietest, wăng vô thư mục movies). Mà này battle system game của VM có dạng ra sao vậy, cho xem hình cái được ko.
ủa! cái demo thì xài được nhưng mà cái scpirts gắn vào thì em làm không được, cứ đến even movie thì tự dưng nó thoát ra ngoài!